おすすめパワポ本12選!プロから学ぶ資料作成術

【パワポVBA】複数の文字列を一括で検索置換するマクロ

PowerPoint VBAを使い、複数の文字列を一括で検索置換するマクロをご紹介します。

通常の検索置換では1つの文字列に対してのみ有効ですが、マクロを使うと複数の文字列に対して一括で実行することが可能です。

コードは神AI「ChatGPT」で開発しました。ChatGPTについては、次の記事で解説しています。

神AI「ChatGPT」でパワポVBAを開発【始め方から解説】
ChatGPTとは、質問を投げると人工知能が回答してくれるチャットサービスです。Excelでの数式や…
スポンサーリンク
スポンサーリンク

複数の文字列を一括で検索置換するマクロ

Sub ReplaceText()

    Dim sld As Slide
    Dim shp As shape
    Dim arrA As Variant
    Dim arrB As Variant
    Dim i As Integer

    '変換前の文字列と変換後の文字列を配列で指定
    arrA = Array("変換前の文字列1", "変換前の文字列2", "変換前の文字列3")
    arrB = Array("変換後の文字列1", "変換後の文字列2", "変換後の文字列3")

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.HasTextFrame Then
                For i = 0 To UBound(arrA)
                    '文字列Aを文字列Bに置換
                    shp.TextFrame.TextRange.Text = Replace(shp.TextFrame.TextRange.Text, arrA(i), arrB(i))
                Next i
            End If
        Next shp
    Next sld
    
End Sub

Array関数を使用して複数の文字列を置換します。変換する前の文字列と変換後の文字列を、それぞれ「arrA」と「arrB」という配列に格納しています。

そして、Forループを使い「arrA」と「arrB」の要素を1つずつ取り出して置換を行います。配列の数は検索置換したい文字列の数によって調整が必要です。

マクロの使い方は、次の記事で解説しています。

PowerPointマクロ入門 | コピペで始める楽々コース
PowerPointでマクロを始めたいけど、難しそうでよく分からないという方向けの入門編です。PPD…

実行結果

検索置換したいファイルを開いてマクロを実行します。

変更後の文字列に置換されました。