パワーポイントのタイトル一覧をExcelに出力する方法!目次楽々作成!

パワーポイントのタイトル一覧をExcelに出力する方法!目次楽々作成!

パワーポイントのタイトル一覧をExcelに出力する方法を知りたいときはないでしょうか。

けど、そんな中で悩むことは、

・パワーポイントのタイトル一覧をExcelに出力する方法がわからない
・VBAでパワーポイントのタイトル一覧をExcelに出力する方法がわからない

ですよね。

今回はそんなお悩みを解決する

・VBAでパワーポイントのタイトル一覧をExcelに出力する方法

についてまとめます!

パワーポイントのタイトル一覧をExcelに出力するイメージ

パワーポイントのタイトル一覧をExcelに出力するイメージについて説明をします。

まずはタイトル出力先となるExcelシートを用意します。

次にタイトルを取得したいパワーポイントを開きます。

マクロを実行すると、

Excelのセルへパワーポイントのタイトルの一覧が出力されます!

ページ番号もつきますので、どのスライドのタイトルかもわかります!

それでは早速実装してためしてみましょう!

タカヒロ
タカヒロ
パワポの目次作成の時に便利ですね!

パワーポイントのタイトル一覧をExcelに出力するための下準備

パワーポイントのタイトル一覧をExcelに出力するための下準備をしていきましょう。

パワーポイントファイルを準備する

パワーポイントファイルを準備しましょう。

サンプルでは以下のタイトルがあるスライドが入っています。

目次
背景/導入-変更
目標-変更
方法/アプローチ
スケジュール
予算
成果物
評価/効果
リスク/課題
実績
おわりに

 

Excel台帳ファイルを準備する

タイトルが書き込まれるExcelシートを用意します。

各セルの構成は以下の通りです。

A列 B列
タイトル名 ページ番号

またこのExcel側にVBAのコードを実装していきます。

Excelからパワーポイントを操作できるよう設定する

ExcelからパワーポイントをVBAで操作できるよう設定をしていきましょう。

①Excelを起動し、「開発」タブをクリックします。

②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。

③「Microsoft PowerPoint XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。

タカヒロ
タカヒロ
この設定がないと、マクロ実行後にエラーとなる場合がありますので、設定するようお願いします。

パワーポイントのタイトル一覧をExcelに出力する方法

サンプルコード

パワーポイントのタイトル一覧をExcelに出力するサンプルコードは以下の通りです。

Sub パワーポイントのタイトル一覧取得()
    Dim appPPT As Object
    Dim objPPTPres As Object
    Dim objPPTSlide As Object
    Dim strPPTTitle As String
    Dim intRowCount As Integer
    Dim intPPTPageNum As Integer
    
    ' PowerPointが起動しているかチェックします。
    On Error Resume Next
    Set appPPT = GetObject(, "PowerPoint.Application")
    On Error GoTo 0
    
    ' PowerPointが起動していない場合メッセージを表示します。
    If appPPT Is Nothing Then
        MsgBox "PowerPointが起動していません。"
        Exit Sub
    End If
    
    ' アクティブなプレゼンテーションを取得します。
    Set objPPTPres = appPPT.ActivePresentation
    
    ' タイトルを取得してExcelに出力します。
    If Not objPPTPres Is Nothing Then
        ' 出力するExcelの行番号を指定します。
        intRowCount = 1
        
        'Excelの1シート目を対象にします。
        With ThisWorkbook.Sheets(1)
            
            'A,B列の値をクリアします。
            .Range("A:B").Clear
        
            ' タイトルを出力します。
            For Each objPPTSlide In objPPTPres.Slides
                strPPTTitle = objPPTSlide.Shapes.Title.TextFrame.TextRange.Text
                intPPTPageNum = objPPTSlide.SlideNumber
                
                ' タイトルが存在する場合のみ出力します。
                If Len(strPPTTitle) > 0 Then
                    .Cells(intRowCount, 1).Value = strPPTTitle
                    .Cells(intRowCount, 2).Value = intPPTPageNum
                    intRowCount = intRowCount + 1
                End If
            Next objPPTSlide
        End With
        
        MsgBox "PowerPointのタイトルを取得し、Excelに出力しました。"
    Else
        MsgBox "アクティブなプレゼンテーションがありません。"
    End If
    
    ' PowerPointオブジェクトを解放します。
    Set objPPTSlide = Nothing
    Set objPPTPres = Nothing
    Set appPPT = Nothing
End Sub

VBAを設定する

VBAを設定していきましょう。

出力するExcelの行番号を指定します。2行目からにしたい場合は2を指定してください。

intRowCount = 1

Excelの1シート目を対象にしますが、シート番号やシート名を変えると別のシートを参照することができます。

With ThisWorkbook.Sheets(1)

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

マクロの実行ボタンを追加する場合は、

「開発」タブの「挿入」>「フォームコントロール」からボタンを選択してください。

ボタンが配置されたら右クリックし「マクロの登録」からマクロを選択してください。

実行する

VBAを実行しましょう。

「PowerPointのタイトルを取得し、Excelに出力しました。」が表示されたら完了です。

パワーポイントをみてみましょう。

はい!パワーポイントのタイトル一覧がExcelに出力されましたね!

パワーポイントのタイトルを変更し、再度タイトル一覧をExcelに出力する

パワーポイントのタイトルを変更し、再度タイトル一覧をExcelに出力してみましょう。

一部のスライドのタイトルを「-変更」という形で変更しました。

実行する

VBAを実行しましょう。

はい!パワーポイントの変更したタイトル一覧がExcelに出力されましたね!!

パワーポイントのタイトル一覧をExcelに出力するVBAの説明

パワーポイントのタイトル一覧をExcelに出力するVBAについて説明をします。

PowerPointが起動しているかチェックします。

On Error Resume Next
Set appPPT = GetObject(, "PowerPoint.Application")
On Error GoTo 0

PowerPointが起動していない場合メッセージを表示します。

If appPPT Is Nothing Then
MsgBox "PowerPointが起動していません。"
Exit Sub
End If

アクティブなプレゼンテーションを取得します。

Set objPPTPres = appPPT.ActivePresentation

タイトルを取得してExcelに出力します。

If Not objPPTPres Is Nothing Then

出力するExcelの行番号を指定します。

intRowCount = 1

Excelの1シート目を対象にします。

With ThisWorkbook.Sheets(1)

A,B列の値をクリアします。

.Range("A:B").Clear

タイトルとページ番号を変数に代入します。

strPPTTitle = objPPTSlide.Shapes.Title.TextFrame.TextRange.Text
intPPTPageNum = objPPTSlide.SlideNumber

タイトルが存在する場合のみ出力します。

If Len(strPPTTitle) > 0 Then
.Cells(intRowCount, 1).Value = strPPTTitle
.Cells(intRowCount, 2).Value = intPPTPageNum
intRowCount = intRowCount + 1
End If

PowerPointオブジェクトを解放します。

Set objPPTSlide = Nothing
Set objPPTPres = Nothing
Set appPPT = Nothing

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAでパワーポイントのタイトル一覧をExcelに出力する方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です