
通常、PowerPointでは1度の検索につき1つの文字列しか検索できません。
そこで、PowerPoint VBAとExcelを連携し、複数の文字列を同時に検索できるマクロを作りました。
Excelを更新するだけで検索ワードの変更ができるので便利です。
Excelに入力した文字列でパワポ内を検索するマクロ
コード
Sub SearchTextBox()
'Excelオブジェクトの宣言
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
'PowerPointオブジェクトの宣言
Dim ppt As Presentation
Dim sld As Slide
Dim shp As Shape
'その他の変数の宣言
Dim i As Integer
Dim strSearch As String
'Excelファイルを開く
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Users\ユーザー名\Desktop\searchword.xlsm") 'ここにExcelファイルのパスを入力してください
Set xlSheet = xlBook.Worksheets(1)
'PowerPointプレゼンテーションを設定
Set ppt = ActivePresentation
'すべてのスライドをループ
For Each sld In ppt.Slides
'すべてのシェイプをループ
For Each shp In sld.Shapes
'テキストボックスの場合
If shp.HasTextFrame Then
'すべての行をループ
For i = 1 To xlSheet.Cells(xlSheet.Rows.Count, 1).End(-4162).Row
'Excelファイルの検索文字列を取得
strSearch = xlSheet.Cells(i, 1).Value
'テキストボックスのテキストに検索文字列が含まれているか確認
If InStr(shp.TextFrame.TextRange.Text, strSearch) > 0 Then
'メッセージボックスで通知
MsgBox "Found '" & strSearch & "' in slide " & sld.SlideIndex
End If
Next i
End If
Next shp
Next sld
'Excelファイルを閉じる
xlBook.Close
Set xlSheet = Nothing
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub「Set xlBook = xlApp.Workbooks.Open(“C:\Users\ユーザー名\Desktop\searchword.xlsm”) 」には、次で作成するExcelファイルまでのパスを入力してください。
Excelファイルの作成
検索ワードを入力したExcelファイルを作成します。

A列の1行目から順に検索したい文字列を入力しましょう。作例の場合、「aaa」「bbb」「ccc」の3つの文字列を検索します。

ファイル名を「searchword」とし、デスクトップに保存して準備完了です。
実行結果

検索したいPowerPointファイルを開き、マクロを実行します。作例の場合、スライド1に「aaa」、スライド2に「bbb」、スライド3に「ccc」と入力したテキストボックスを配置しています。



テキストボックス内の文字列と検索ワードが一致すると、上記のようにスライド番号と共にメッセージボックスで通知してくれます。






















