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 アドイン

    [Office用アプリ]Office ストアが新しくなりました。

    Office 用アプリやSharePoint 用アプリを配信しているO…

  2. Office関連

    Excel REST APIをPowerShellから呼び出す方法

    以前Excel REST APIをVBAから呼び出す方法を紹介しました…

  3. アイコン一覧

    Office 2013 アイコン一覧(J)

    ・Office 2013 アイコン一覧 NUM…

  4. Office関連

    Microsoft MVP for Outlook を初受賞しました。

    2010年7月から「Office System」分野でMicrosof…

  5. Excel

    Internet Explorer用OneNoteアドオンを利用して指定したWebページをOneNo…

    「Evernote Webクリッパーで指定したWebページをEvern…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP