みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
初心者向けPowerPoint VBAの使い方ということで、プレゼンテーションの全ての描画オブジェクトについてフォントを変更するマクロの作成を目指しています。
前回の記事はコチラ。
描画オブジェクトのテキストの取得の方法をお伝えしました。
それで、テキストを取得する対象となるテキスト範囲を表すTextRangeオブジェクトにも言及したわけですが、このTextRangeオブジェクトからフォントを操作するFontオブジェクトにアクセスが可能です。
ということで、今回はPowerPoint VBAでフォントを設定するFontオブジェクトを取得する方法についてお伝えします。
では、行ってみましょう!
前回のおさらい
題材としているプレゼンテーションはコチラです。
それで、前回紹介したコードがコチラですね。
Sub Shapesコレクションのループでテキストを表示()
Dim shp As Shape
For Each shp In ActivePresentation.Slides(1).Shapes
Debug.Print shp.TextFrame.TextRange.Text
Next shp
End Sub
これで、1枚目のスライドの全てのShapeオブジェクトのテキストについて、デバッグ出力により確認することができました。
今回は、Shapeオブジェクトのフォントについて操作をしていきましょう。
フォント設定を表すFontオブジェクト
Shapeオブジェクトのフォント設定は、Fontオブジェクトというオブジェクトが司っていて、Fontオブジェクトに用意されているプロパティにより
- フォントの種類(英数字用/日本語用)
- サイズ
- 太字/イタリック/下線
- フォントの色
などを設定できます。
ちょうど、描画オブジェクトを選択状態でリボン「」をクリックで開く、以下の「フォント」ダイアログでの設定が該当しています。
FontオブジェクトはTextRangeオブジェクトのFontプロパティで取得できます。
すべてのシェイプのフォント名を取得するプロシージャ
前述のコードの5行目に「TextRange」というプロパティがありますね。
このプロパティでTextRangeオブジェクトが取得できているので、これに対してFontプロパティを使えばOKということになります。
Fontオブジェクトが取得できているか確認するために、以下のようなプロシージャを作ってみました。
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
実行すると…
はい、游ゴシック祭りですね。
Fontオブジェクトはちゃんと取得できているようです。
Nameプロパティの役割を含めて、実際のフォント設定については次回以降の記事でお伝えしていきますね。
なお、Debug.Print文で使っているカンマは、二つの値をタブ区切りで表示するときに使用するものです。
まとめ
以上、PowerPoint VBAでフォント設定をするためのオブジェクト、Fontオブジェクトを取得する方法について解説をしました。
このFontオブジェクトを使えば、テキストについて様々なフォント設定を行うことができます。
次回、解説していきますね。
どうぞお楽しみに!
連載目次:初心者向けPowerPoint VBAのはじめの一歩
PowerPointはお仕事で非常によく使うプレゼンテーション作成ソフトですよね。実は、PowerPointでもVBAでプログラミングができるんです。本シリーズでは、初心者向けにPowerPoint VBAの初め方についてお伝えしていきます。- 初心者向けPowerPoint VBAを始める際にはじめにやっておくべきセッティングと手順
- 【初心者向け】はじめてのPowerPoint VBAを作成して実行してみよう
- 【初心者向けPowerPoint VBA】オブジェクト・プロパティ・メソッドって何?
- PowerPoint VBAでアクティブなプレゼンテーションを取得する方法
- 【初心者向けPowerPoint VBA】SlidesコレクションとSlideオブジェクトを取得する
- PowerPoint VBAでShapeコレクションについてFor Eachループを回す方法
- 【初心者向けPowerPoint VBA】Shapeオブジェクトのテキストを取得する方法
- PowerPoint VBAでフォント設定をするFontオブジェクトを取得する
- PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめ
- PowerPoint VBAのFor Each文とFor文によるループとその使い分けについて