PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめ

font

photo credit: Daniel Ari Friedman каприз via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

PowerPoint VBA入門編ということで、図形やテキストボックスのフォントを変更するマクロの作り方をお伝えしています。

前回の記事はこちらです。

PowerPoint VBAでフォント設定をするFontオブジェクトを取得する
初心者向けPowerPoint VBAのシリーズとして、全てのシェイプについてフォントを変更するマクロの作成を目指しています。今回はフォントを設定するFontオブジェクトを取得する方法をお伝えします。

Shapeオブジェクトのフォント設定をするFontオブジェクトの取得についてお伝えしました。

Fontオブジェクトさえ取得できてしまえば…あとは、設定していくだけじゃないですか!?

ということで、PowerPoint VBAでテキストのフォントを変更するいろいろなプロパティまとめをお伝えします。

では、行ってみましょう!

スポンサーリンク

前回のおさらい

題材としているプレゼンテーションはこちら。

プレゼンテーションの例

それで、前回作成したコードがコチラですね。

Sub Shapesコレクションのループでフォント名を取得()

Dim shp As Shape
For Each shp In ActivePresentation.Slides(1).Shapes
    Debug.Print shp.Name, shp.TextFrame.TextRange.Font.Name
Next shp

End Sub

1ページ目のスライドの各Shapeオブジェクトについて、Fontオブジェクトを取得してそのフォント名を表示するというものですね。

あとは設定していくだけ…!

5行目で紹介しているNameプロパティ含めて、フォントを設定するいろいろなプロパティを紹介していきます。

PowerPoint VBAで設定できるFontオブジェクトの主なプロパティまとめ

フォント名

まず、真っ先にShapeオブジェクトのフォントの種類を変更したいのですが、PowerPointでは

  • 英数字用のフォント
  • 日本語用のフォント

の二種類のフォント種類を設定できます。というか、両方の設定を念頭に置いておかないといけません。

以下の「フォント」ダイアログを見てみればわかりますよね。

PowerPointのフォントダイアログ

英数字用のフォントを変更するにはNameプロパティ日本語用のフォントを変更するにはNameFarEastプロパティを使います。

Fontオブジェクト.Name
Fontオブジェクト.NameFarEast

フォントのスタイル

強調、イタリック、アンダーライン、影付き、エンボスなど、フォントのスタイルを変更するには、以下のプロパティで設定します。

プロパティ 説明
Bold 強調
Italic イタリック
Underline 下線
Shadow 影付き
Emboss 浮き出し

これらのプロパティに設定する項目は、Enum msoTriStateで列挙されている値を設定します。

定数
msoTrue -1
msoFalse 0

msoTrueまたは-1を設定すれば各スタイルが「有効」になりますし、msoFalseまたは0を設定すれば「無効」になります。

フォントのサイズ

フォントのサイズを設定するにはSizeプロパティを使います。

Fontオブジェクト.Size

Sizeプロパティに設定する値として、ポイントを表す整数を代入すればOKです。

フォント色

フォントの色を設定するにはColorプロパティを設定します。

Fontオブジェクト.Color

色の設定としては、RGB関数を使うのが一般的でしょう。

RGB関数の書式は以下の通りです。

RGB(red, green, blue)

red,green,blueの値を0から255の間の整数で指定することで、色を表現します。

シェイプのフォントを設定するプロシージャ

以上を踏まえて、1ページのスライドについて、フォントを設定するプロシージャを作成しました。

Sub Shapesコレクションのループでフォントを設定()

Dim shp As Shape
For Each shp In ActivePresentation.Slides(1).Shapes
    With shp.TextFrame.TextRange.Font
        .Name = "Meiryo UI"
        .NameFarEast = "Meiryo UI"
        .Color = RGB(89, 89, 89)
    End With
Next shp

実行すると1ページ目のスライドの各シェイプのテキストのフォントを、以下のように設定することができます。

  • 英数字用のフォント: Meiryo UI
  • 日本語用のフォント: Meiryo UI
  • フォント色: 黒に近いグレー

実行結果はこちらです。

PowerPoint VBAでフォント設定をした

うまくフォントの設定を変更できていますね。

Withステートメントでオブジェクトを省略する

ちょっと補足しておきますね。

5~9行目ですが、Withステートメントという構文を使っています。

書式は以下の通りです。

With オブジェクト
 ’処理
End With

WithとEnd Withに挟まれた部分(Withブロックといいます)では、指定したオブジェクトの表記を省略できるというものです。

そのオブジェクトに対するメソッドやプロパティは、Withブロック内ではピリオドから書き始めることができます。

今回の例では「shp.TextFrame.TextRange.Font」を省略しています。

まぁ、なげーっすもんね。省略したほうが良いです。

まとめ

以上、PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめについてお伝えしました。

今回のプロシージャでは、1枚目のスライドしか対象にならないので、全部のスライドに対応させたいですよね。

次回は、その点について解説を進めていきます。

PowerPoint VBAのFor Each文とFor文によるループとその使い分けについて
PowerPoint VBA初心者向けに、プレゼンテーションの全ての描画オブジェクトのフォントを変更するマクロをお伝えしています。今回はFor Each文とFor文のループの作り方、またその使い分けについてです。

どうぞお楽しみに!

連載目次:初心者向けPowerPoint VBAのはじめの一歩

PowerPointはお仕事で非常によく使うプレゼンテーション作成ソフトですよね。実は、PowerPointでもVBAでプログラミングができるんです。本シリーズでは、初心者向けにPowerPoint VBAの初め方についてお伝えしていきます。
  1. 初心者向けPowerPoint VBAを始める際にはじめにやっておくべきセッティングと手順
  2. 【初心者向け】はじめてのPowerPoint VBAを作成して実行してみよう
  3. 【初心者向けPowerPoint VBA】オブジェクト・プロパティ・メソッドって何?
  4. PowerPoint VBAでアクティブなプレゼンテーションを取得する方法
  5. 【初心者向けPowerPoint VBA】SlidesコレクションとSlideオブジェクトを取得する
  6. PowerPoint VBAでShapeコレクションについてFor Eachループを回す方法
  7. 【初心者向けPowerPoint VBA】Shapeオブジェクトのテキストを取得する方法
  8. PowerPoint VBAでフォント設定をするFontオブジェクトを取得する
  9. PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめ
  10. PowerPoint VBAのFor Each文とFor文によるループとその使い分けについて
タイトルとURLをコピーしました