通常、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」と入力したテキストボックスを配置しています。
テキストボックス内の文字列と検索ワードが一致すると、上記のようにスライド番号と共にメッセージボックスで通知してくれます。