Excel VBA(マクロ)で図形の色を変更する方法/ForeColorプロパティの使い方

building IT

図形の枠線の色はLine.ForeColor、塗りつぶしの色はFill.ForeColorから変更します。図形に対しShapeRangeまたはRangeプロパティを使い、ShapeRangeコレクションを取得することで変更可能です。

スポンサーリンク

線の色の変更

図形の線の色を変更
Shapeオブジェクト(またはShapeRangeコレクション).Line.ForeColor.RGB = RGB(R,G,B)
Shapeオブジェクト(またはShapeRangeコレクション).Line.ForeColor.SchemeColor = 色番号
vba forecolor 図形の色1
図形「maru」の線の色を変えてみたいと思います。
' vba
' 方法1
ActiveSheet.Shapes(1).Line.ForeColor.RGB = RGB(255, 0, 0)
' 方法2
ActiveSheet.Shapes.Range("maru").Select
Selection.ShapeRange.Line.ForeColor.RGB = RGB(255, 0, 0)
色を変更するには、Line.ForeColor.RGBから直接値を指定します。
プロパティを変更したいので、Shapesコレクションからは行えません。Shapeオブジェクトを取得するか、一度図形を選択して、Selection.ShapeRangeから指定するか、
' vba
' 方法3
ActiveSheet.Shapes.Range(Array("maru")).Line.ForeColor.RGB = RGB(255, 0, 0)

Range(Array())の中で図形を指定して色を変更します。
図形の選択について詳しくは別記事参照。
vba forecolor 図形の色2
実行結果です。
' vba
ActiveSheet.Shapes.Range(Array("maru")).Line.ForeColor.SchemeColor = 3
色はSchemeColorというプロパティを使って変更することもできます。セルの色変更で使うColorIndexとはまた別の色規格となります。どの番号が何色に当たるかは後述

塗りつぶしの色の変更

図形の塗りつぶしの色を変更
Shapeオブジェクト(またはShapeRangeコレクション).Fill.ForeColor.RGB = RGB(R,G,B)
Shapeオブジェクト(またはShapeRangeコレクション).Fill.ForeColor.SchemeColor = 色番号
' vba
ActiveSheet.Shapes.Range(Array("maru")).Fill.ForeColor.RGB = RGB(0, 255, 0)
線色変更のLineFillに差し替えれば、図形の塗りつぶしをするコードになります。

複数図形を指定

' vba
ActiveSheet.Shapes.SelectAll
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 255, 0)
図形全部の色をまとめて変更するには、Shapesコレクションを取得してから選択範囲の色を変えます。
' vba
ActiveSheet.Shapes.Range(Array(1, 2)).Fill.ForeColor.RGB = RGB(0, 255, 0)
複数図形をまとめて変更する場合は、Range内で色を変更する図形を個別に指定します。

SchemeColorの色見本

' vba
For i = 1 To 80
With ActiveSheet.Shapes.AddLine(60, Cells(i, 1).Top + 7, 100, Cells(i, 1).Top + 7).Line
    .Weight = 10
    .ForeColor.SchemeColor = i
End With
Cells(i, 1).Value = i
Next
SchemeColorは1から80まであります。とりあえずコードで全部出力してみると、
schemecolor vba shape 1
色がワーッと出るので、
schemecolor vba shape 2
並べ替えた表がこちらになります。
schemecolor vba shape 3
1~7と9~15がまったく同じだったり、
schemecolor vba shape 4
その後も色被りが頻出するので見た目より使える色少ないですが、それなりの色数があります。
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。 図形作成・操作...
Excel(エクセル):色、塗りつぶし、スタイル
Excelのセルや文字などの色を変える方法、スタイルを規定する方法のまとめです。 色の変更 セル・文字の色を変更する方法です。基本的にこれ知っとけば応用がききます。パレットにない色の作り方、グラデーションにも言及しています。...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント