みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
PowerPoint VBA入門編ということで、図形やテキストボックスのフォントを変更するマクロの作り方をお伝えしています。
前回の記事はこちらです。
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では
- 英数字用のフォント
- 日本語用のフォント
の二種類のフォント種類を設定できます。というか、両方の設定を念頭に置いておかないといけません。
以下の「フォント」ダイアログを見てみればわかりますよね。
英数字用のフォントを変更するにはNameプロパティ、日本語用のフォントを変更するにはNameFarEastプロパティを使います。
フォントのスタイル
強調、イタリック、アンダーライン、影付き、エンボスなど、フォントのスタイルを変更するには、以下のプロパティで設定します。
プロパティ | 説明 |
---|---|
Bold | 強調 |
Italic | イタリック |
Underline | 下線 |
Shadow | 影付き |
Emboss | 浮き出し |
これらのプロパティに設定する項目は、Enum msoTriStateで列挙されている値を設定します。
定数 | 値 |
---|---|
msoTrue | -1 |
msoFalse | 0 |
msoTrueまたは-1を設定すれば各スタイルが「有効」になりますし、msoFalseまたは0を設定すれば「無効」になります。
フォントのサイズ
フォントのサイズを設定するにはSizeプロパティを使います。
Sizeプロパティに設定する値として、ポイントを表す整数を代入すればOKです。
フォント色
フォントの色を設定するにはColorプロパティを設定します。
色の設定としては、RGB関数を使うのが一般的でしょう。
RGB関数の書式は以下の通りです。
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
- フォント色: 黒に近いグレー
実行結果はこちらです。
うまくフォントの設定を変更できていますね。
Withステートメントでオブジェクトを省略する
ちょっと補足しておきますね。
5~9行目ですが、Withステートメントという構文を使っています。
書式は以下の通りです。
’処理
End With
WithとEnd Withに挟まれた部分(Withブロックといいます)では、指定したオブジェクトの表記を省略できるというものです。
そのオブジェクトに対するメソッドやプロパティは、Withブロック内ではピリオドから書き始めることができます。
今回の例では「shp.TextFrame.TextRange.Font」を省略しています。
まぁ、なげーっすもんね。省略したほうが良いです。
まとめ
以上、PowerPoint VBAでシェイプのフォント設定をする色々なプロパティまとめについてお伝えしました。
今回のプロシージャでは、1枚目のスライドしか対象にならないので、全部のスライドに対応させたいですよね。
次回は、その点について解説を進めていきます。
どうぞお楽しみに!
連載目次:初心者向け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文によるループとその使い分けについて