【PowerPointVBA】図形の塗りつぶし色と文字色を反転させる方法

PowerPointVBA

図形の塗りつぶし色と文字色をワンクリックで反転させる方法をご紹介します。

さっそくやってみましょう!

手順① プログラムを貼り付ける画面を表示

まずはこちらの記事の手順を実行して、プログラムを貼り付ける画面を表示します。

【ExcelVBA】プログラミングする方法
Excelには業務効率化のための強力プログラミング言語が搭載されています。この記事ではそのプログラミング言語を使用するための方法を分かりやすく丁寧にご紹介します。

※Excelの例ですがPowerPointでも全く同じ手順となります。

手順② プログラムのコピー

次にこちらのプログラムをコピーしましょう。

解説 ※必要ない方は次の手順に進みましょう!

ひとつひとつ解説していきます。

With ActiveWindow.Selection.ShapeRange

作業中のスライド(ActiveWindow)の 選択中(Selection)の図形(ShapeRange) を表しています。

‘ 図形の塗りつぶし色を取得
fore_color = .Fill.ForeColor.RGB

選択中の図形の塗りつぶし色を取得しています。

‘ GRBの値に変換
font_R = font_color Mod 256
font_G = Int(font_color / 256) Mod 256
font_B = Int(font_color / 256 / 256)

取得したRGB値は (R, G, B) の形に変換しなければなりません。※各値は0~255の範囲内

なぜなら取得した塗りつぶしの色は以下のとおり、1つの値で表現されているからです。

取得したRGB値は 12874308 となっています。

これは の数値 + の数値 × 256 + の数値 × 256 × 256 で計算されます。

ここから の数値 を取り出すにはどうすればいいのでしょうか?

まず各色の数値は 0~255 のいずれかの値です。

の数値 を取り出すには 256で割った余りになります。

なぜなら次のように、の数値 の後ろの部分は必ず256の倍数だからです。

の数値 は 0~255 のいずれかですので、256より小さいです。つまり256で割った余りの部分です。

font_R = font_color Mod 256

これがその計算部分です。 Mod 256 という部分が 256で割った余りを算出してくれます。

次に の数値 を取り出すにはどうしたらいいのでしょうか。

まずは全体を 256 で割ります。すると次のようになります。

この数値を Int() で囲むことで、整数部分を取り出しています

の数値 ÷ 256 は必ず小数点以下になるのでここで除外され、残った値は次のようになります。

ここから256で割った余りの数値 となります。

これは の数値 を取り出した場合と同じで、 の数値 は256の倍数で の数値 は256より小さいからです。

font_G = Int(font_color / 256) Mod 256

これがその計算部分です。

256で割って Int() で整数部分を取り出して、Modで 256で割った余りを算出しています。

の数値 は 256 で 2回割って整数部分を取り出します。

なぜなら 256 で 2回 割ると次のようになり、の数値の数値 は必ず少数点以下となるからです。

font_B = Int(font_color / 256 / 256)

これがその計算部分です。

256で2回割って Int() で整数部分を取り出しています。

‘ 図形の文字色を取得
font_color = .TextFrame.TextRange.Font.Color.RGB

‘ GRBの値に変換
font_R = font_color Mod 256
font_G = Int(font_color / 256) Mod 256
font_B = Int(font_color / 256 / 256)

先ほどは図形の塗りつぶしの色でしたが、ここでは図形の文字色のRGB値を算出しています。

‘ 図形の塗りつぶし色を文字色に変更
.Fill.ForeColor.RGB = RGB(font_R, font_G, font_B)

ここでは図形の塗りつぶし色に文字色を設定しています。

‘ 図形の文字色を塗りつぶし色に変更
.TextFrame.TextRange.Font.Color.RGB = RGB(fore_R, fore_G, fore_B)

ここでは図形の文字色に塗りつぶし色を設定しています。

実行結果

では実行結果を見てみましょう!

図形を選択してからをクリックしましょう。

文字の色が塗りつぶし色になり、塗りつぶし色が文字色になりました!!

さいごに

いかがだったでしょうか。

今回はPowerPointVBAを用いて、図形の色を操作しました。

最終的にはこういった部品のようなプログラムを集めてアドイン化することで業務の時短につながるのではないかと思います。

今後もみなさんの業務を時短できるようなプログラムをご紹介していきますので、よろしくお願いいたします。

コメント

タイトルとURLをコピーしました