VBAで図形(オートシェイプ)の塗りつぶしの色を変更する方法をご説明します。
デフォルトの色のままでは視覚的にも微妙なので、位置の指定やサイズの変更に併せて、ぜひ塗りつぶしの色は変更方法を覚えてみてください。
その他の図形の操作については次の記事をご覧ください。
- 図形(オートシェイプ)一覧と作成/追加する方法
- 図形(オートシェイプ)の位置やサイズを変更する
- 図形(オートシェイプ)を取得する方法
- 図形(オートシェイプ)を反転、回転させる方法
- 図形(オートシェイプ)の枠線の色や種類と太さを変更する方法
- 図形(オートシェイプ)にテキスト・文字列の入力方法
- 図形(オートシェイプ)にマクロを登録する方法
1.図形の塗りつぶしを変更する
図形の塗りつぶしを変更する方法です。
図形の塗りつぶしは、「Fillプロパティ」で操作します。
次のように記述します。
ActiveSheet.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
「RGB(255, 0, 0)」は赤色です。
RGBとは「赤」「緑」「青」の組み合わせで色を設定する関数です。
それぞれ0~255の数値で指定します。
塗りつぶしをするにはこれだけですが、明確に説明すると少し複雑になります。
「Shapeオブジェクト」の「FillFormatオブジェクト」の「ColorFormatオブジェクト」を使うと、塗りつぶし色を変更できます。
「Fillプロパティ」で「FillFormatオブジェクト」を取得し、「ForeColorプロパティ」で「ColorFormatオブジェクト」を取得しています。
上記の記述方法には出てこないオブジェクトが多数出てきますので、オブジェクト式をしっかり理解していないと混乱します。
2.図形の塗りつぶしのサンプルコード
ワークシートに次の3つように図形を操作します。
図形を直接指定して変更する
上記の3つある図形の色をそれぞれ「赤、黄色、青」に変更します。
Sub Sample1()
With ActiveSheet
.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
.Shapes(2).Fill.ForeColor.RGB = RGB(255, 255, 0)
.Shapes(3).Fill.ForeColor.RGB = RGB(0, 112, 192)
End With
End Sub
ループで図形を取得して変更する
上記の3つの図形をループして全て赤色に変更します。
ワークシート上の図形の数は「Shapes.Count」で取得出来ます。
Sub Sample2()
Dim i As Long
With ActiveSheet
For i = 1 To .Shapes.Count
.Shapes(i).Fill.ForeColor.RGB = RGB(255, 0, 0)
Next i
End With
End Sub