マクロからPowerPointでフォントを「本文の~」に戻す
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

マクロからPowerPointでフォントを「本文の~」に戻す

2016-09-02 21:20
    PowerPointの図形のフォントを「本文のフォント」や「見出しのフォント」にする方法の備忘録です。

    結論

    With [PowerPoint.Shape].TextFrame.TextRange.Font
      .NameAscii = "+mn-lt"
      .NameFarEast = "+mn-ea"
    End With
    斜体部は表記されている型の任意のオブジェクトを示します。

    解説

    変更したいテキスト(TextRangeオブジェクト)のフォント(Fontオブジェクト)に対して
    使いたいフォント名を設定することでフォントを変更することができます。

    Fontオブジェクトの場合は
     英数字用のフォントに影響するのが"NameAscii"プロパティ
     日本語用のフォントに影響するのが"NameFaeEast"プロパティ
    です。

    特定のフォントにしたい場合はフォント名を直接設定しますが
    +本文のフォント」「+本文のフォント - 日本語」のようにテーマなどに依存させたい場合は上記の文字列を設定することで可能となります。

    以下は結果からの推測となりますが
    先頭の"+mn"はマイナーの略で本文。
    後ろの"-lt"、”-ea”はラテン語、東アジア語で英数字と漢字類を表していると思われます。

    なお「+見出しのフォント~」にしたい場合は先頭の"+mn~"を"+mj~"にします。
    "+mj"はメジャーの略で見出しを表しているようです。

    サンプル

    最後に簡単なサンプルを用意しました。
    PowerPoint上で選択している形状のフォントを、英数字・日本語ともに本文のフォントにするマクロとなります。
    単体のテキストボックスなどなら問題なく動作するはずです。

    PowerPointの標準モジュールに貼り付けて"選択している形状のフォントを本文のフォントにする"プロシージャを起動してください。

    こちらからもダウンロードできます
    https://1drv.ms/u/s!AnwcLuebK5DRgYomCI2IPxsikyd_8g

    Sub 選択している形状のフォントを本文のフォントにする()
    If PowerPoint.ActiveWindow.Selection.Type = ppSelectionShapes Then
     Dim tmpShp As PowerPoint.Shape 'スライド上の形状
     For Each tmpShp In PowerPoint.ActiveWindow.Selection.ShapeRange
      Select Case tmpShp.Type
       Case msoTable, msoGroup '要別処理
       Case Else
        If tmpShp.TextFrame.HasText Then
         Call 本文フォントにする(tmpShp)
        End If
      End Select
     Next tmpShp
    End If
    End Sub

    Private Sub 本文フォントにする(iShp As PowerPoint.Shape)
     With iShp.TextFrame.TextRange.Font
      .NameAscii = "+mn-lt"
      .NameFarEast = "+mn-ea"
     End With 'iShp.TextFrame.TextRange.Font
    End Sub

    今回はTextRangeオブジェクトで例を示しましたが、TextRange2オブジェクトのFont2オブジェクトでも同様のことが出来ます。

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。