パワーポイントのタイトル一覧を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」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す