「vba パワーポイント 文字の色」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが、時折あります。
文字色を変更する、PowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索キーワードです。
「vba パワーポイント 文字の色」
という検索では、どの文字の色を変更したいのかが、まったくわかりませんので、参考になるかもしれないマクロを3つご紹介しておきます。
選択されている文字列の色を変更するサンプルマクロ
一つ目は、色を変更したい文字列が選択されているときのマクロです。
ActiveWindow.Selection.TextRange _
.Font.Color.RGB = RGB(0, 0, 255)
上記のマクロを実行すると、選択されていた文字列が、青色に変更されます。
TextRangeオブジェクトの、Fontオブジェクトの、Colorオブジェクトの、RGBプロパティに値を指定することで、文字色を変更しています。
選択されている図形の文字色を変更するサンプルマクロ
以下のようなマクロにすれば、選択されている図形内の文字色が、緑色になります。
ActiveWindow.Selection.ShapeRange _
.TextFrame.TextRange _
.Font.Color.RGB = RGB(0, 255, 0)
TextRangeオブジェクトの、Fontオブジェクトの、Colorオブジェクトの、RGBプロパティに値を指定しているのは、先の選択されている文字列の色を変更するマクロと同じです。
変更したい文字列を指定するところが、先のマクロでは、
ActiveWindow.Selection.TextRange _
となっていましたが、このマクロでは
ActiveWindow.Selection.ShapeRange _
.TextFrame.TextRange _
となっているところが違います。
アクティブスライドの一つ目の図形の文字色を変更するサンプルマクロ
以下のようなマクロにすれば、アクティブなスライドの、一つ目の図形内の文字色を赤色にすることができます。
ActiveWindow.Selection.SlideRange.Shapes(1) _
.TextFrame.TextRange _
.Font.Color.RGB = RGB(255, 0, 0)
TextRangeオブジェクトの、Fontオブジェクトの、Colorオブジェクトの、RGBプロパティに値を指定しているのは、先の選択されている文字列の色を変更するマクロとやっぱり同じです。
変更したい文字列を指定するところが、
ActiveWindow.Selection.SlideRange.Shapes(1) _
.TextFrame.TextRange _
となっているところが違います。
PowerPointのマクロを作れるようになるには
2007以降のPowerPointではマクロ記録機能がなくなってしまっていること、そもそもPowerPointのオブジェクトモデルは、ExcelやWordと比べるとグローバルメンバーが少ないという特徴があるために、PowerPointのマクロを自力で作れるようになるためには、学習のいずれかの段階で、最低限のオブジェクトの階層関係を理解する必要があります。
Excelマクロの場合、オブジェクトの階層関係がそれほど深くないために、強く意識しなくてもマクロを何度も作っている間に、なんとなく階層関係が頭に入ってしまうということがあり得ます。これに対してPowerPointはExcelよりも階層関係が深いのが一般的ですから、どこかの段階でしっかりと意識して階層関係を理解しようとしない限り、PowerPointマクロがなんとなく作れるようになるという状態にはならないと、私は感じています。
- Newer:Findメソッドの引数・Afterの使い方
- Older:イミディエイトウィンドウから関数を呼んで戻り値を出力する
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字色を変更するPowerPoint VBA