ニコニコチャンネルメニュー

ブロマガ - ニコニコチャンネル

いみひとのブロマガ

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

2016/09/02 21:20 投稿

  • タグ:
  • VBA
  • PowerPoint
  • MSOffice
  • プログラミング
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オブジェクトでも同様のことが出来ます。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事