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

【パワポVBA】同じフォントや文字サイズのテキストを全選択するマクロ

PowerPoint VBAを使い、選択中のテキストボックスと同じフォントやフォントサイズのテキストボックスを全選択するマクロをご紹介します。

特定のテキストボックスのフォントやフォントサイズ、書式などを一括で変更したいときに有効です。

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

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

選択中のテキストボックスと同じフォントを全選択するマクロ

コード

Sub SelectTextBoxesWithSameFont()

  'スライド内の全てのシェイプを取得
  Dim shp As shape
  For Each shp In ActiveWindow.Selection.SlideRange.Shapes
    'シェイプがテキストボックスかつフォントが同じかどうかを判定
    If shp.HasTextFrame And shp.TextFrame.HasText And _
       shp.TextFrame.TextRange.Font.Name = ActiveWindow.Selection.TextRange.Font.Name Then
      '選択状態にする
      shp.Select msoFalse
    End If
  Next shp
  
End Sub

Shape.Selectメソッドの引数に「msoFalse」を指定することで、選択中のテキストボックスに追加して該当するテキストボックスが選択されます。「Shift」キーを押しながら順番に選択する動作と同じです。

  • 最初に選択するテキストボックスに複数のフォントが使われている場合は機能しません。

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

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

実行結果

全選択したいフォントが設定されたテキストボックスを選択します。ここでは「MS ゴシック」が設定されたテキストボックスを選択しました。

マクロを実行すると、スライド内の「MS ゴシック」で設定されたテキストボックスが全て選択された状態になります。

選択中のテキストボックスと同じフォントサイズを全選択するマクロ

コード

Sub SelectTextBoxesWithSameFontSize()

  'スライド内の全てのシェイプを取得
  Dim shp As shape
  For Each shp In ActiveWindow.Selection.SlideRange.Shapes
    'シェイプがテキストボックスかつフォントサイズが同じかどうかを判定
    If shp.HasTextFrame And shp.TextFrame.HasText And _
       shp.TextFrame.TextRange.Font.Size = ActiveWindow.Selection.TextRange.Font.Size Then
      '選択状態にする
      shp.Select msoFalse
    End If
  Next shp
  
End Sub

実行結果

全選択したいフォントサイズが設定されたテキストボックスを選択します。ここでは「MS ゴシック」の「32pt」が設定されたテキストボックスを選択しました。

マクロを実行すると、スライド内の「32pt」で設定されたテキストボックスが全て選択された状態になります。