Office関連

スライドマスターのフォントを一括変更するPowerPointマクロ

PowerPointでスライドを作成中、マスターのフォントをまとめて変更したくなったのですが、手作業でやるには地味に面倒な作業です。

自分でマクロを書こうかとも思ったのですが、検索したら出てきました↓
さすがは伊藤さん!

このマクロで気になったのは“フォント名を決め打ち”しているところ。

面倒くさがり屋な私的には、正しいフォント名を調べるのも、フォントを変えるたびに一々コードを書き換えるのも面倒です。

そこで、一時的にコンボボックス(コマンドバー)を作成して、フォントの一覧から選択できるよう、マクロを改造することにしました。

Option Explicit

Public Sub ExecChangeSlideMasterFonts()
  Dim cbo As CommandBarControl
  Dim itm As Object
  Const CSIDL_FONTS = 20
  
  With Application.CommandBars.Add(Position:=msoBarPopup, Temporary:=True)
    Set cbo = .Controls.Add(Type:=msoControlComboBox, Temporary:=True)
    With cbo
      .Caption = "フォント"
      .Text = "メイリオ"
      With CreateObject("Shell.Application").Namespace(CSIDL_FONTS)
        For Each itm In .Items
          cbo.AddItem .GetDetailsOf(itm, 8)
        Next
      End With
      .OnAction = "ChangeSlideMasterFonts"
    End With
    .ShowPopup
    .Delete
  End With
End Sub

Public Sub ChangeSlideMasterFonts(Optional ByVal dummy As Long = 0)
'スライドマスターのフォント変更
'https://www.relief.jp/docs/powerpoint-vba-setting-slide-master-fonts.html 参考
  Dim shp As PowerPoint.Shape
  Dim s As String
  
  On Error Resume Next
  s = Application.CommandBars.ActionControl.Text
  If Len(Trim(s)) < 1 Then Exit Sub
  With ActivePresentation.SlideMaster.Shapes
    For Each shp In .Placeholders
      With shp.TextFrame2.TextRange.Font
        .NameFarEast = s
        .Name = s
      End With
    Next
  End With
  On Error GoTo 0
  MsgBox "処理が終了しました。"
End Sub

エラーの処理は手抜きですが、これならばフォントを自由に選択できるので、使い勝手が良くなったのではないかと思います。

ちなみに、フォントの取得部分の処理は下記記事のコードを流用しています。

【アイカツフレンズ!】ベストフレンズ認定会(ピュアパレット)に参加しました。前のページ

[Google Apps Script]Microsoft Graph APIを使ってMicrosoftのサービスと連携する方法次のページ

関連記事

  1. Office関連

    オデッセイ コミュニケーションズ主催のExcel VBA入門セミナーに参加しました。

    今月19日に開催されたオデッセイ コミュニケーションズさん主催の「Ex…

  2. Office関連

    フォルダ(サブフォルダ含む)内の特定の拡張子のファイルに処理を行うVBAマクロ

    「Wordマクロ サブフォルダ ファイル処理」といったキーワードでのア…

  3. アイコン一覧

    Office 365アイコン(imageMso)一覧(A)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  4. Office関連

    GetSpellingSuggestionsメソッドで文法上の誤りの修正候補は取得できない?

    前回と前々回の記事でスペルチェック、文章校正に関するWordマクロを扱…

  5. アイコン一覧

    Office 2013 アイコン一覧(Q)

    ・Office 2013 アイコン一覧 NUM…

  6. アイコン一覧

    Office 2013 アイコン一覧(U)

    ・Office 2013 アイコン一覧 NUM…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

PAGE TOP