「excel2010 サンプルがほしい selection.shaperange.fill.forecolor.rgb」
という検索キーワードが、このサイト・インストラクターのネタ帳のアクセスログにありましたので、
そんなExcel VBA(Visual Basic for Applications)のプロシージャを作ってみました。
選択されている図形の、塗りつぶし色を
変更するExcelマクロです。
選択されている図形の塗りつぶし色を変更するサンプルマクロ
図形を選択しておいて以下のSubプロシージャを実行すると、選択されていた図形の塗りつぶし色が赤色になります。
Dim shp As ShapeRange
On Error Resume Next
Set shp = Selection.ShapeRange
On Error GoTo 0
If shp Is Nothing Then
MsgBox "図形が選択されていません。"
Exit Sub
End If
End Sub
サンプルマクロの解説
「excel2010 サンプルがほしい selection.shaperange.fill.forecolor.rgb」
という検索をなさった方が、躓いていた可能性があるのは、2箇所だろうと想像しています。
一つは選択されているのが、ShapeRangeオブジェクトではなかった場合の処理。
もう一つがColorFormatオブジェクトのRGBプロパティの指定方法です。
Excel VBAでは、Word VBAやPowerPoint VBAとは違って、Selectionオブジェクトは存在せず、Selectionプロパティは選択されている何らかのオブジェクトを返します。
ですから、選択されていたのが図形ではなかった処理を考えざるを得ません。
その解決方法として上記のマクロでは、
On Error Resume Next
Set shp = Selection.ShapeRange
On Error GoTo 0
If shp Is Nothing Then
MsgBox "図形が選択されていません。"
Exit Sub
End If
というコードで対処しています。
選択されているのが図形でなければ、
Set shp = Selection.ShapeRange
は何もセットされないので、
If shp Is Nothing Then
という判定を行っています。
ColorFormatオブジェクトのRGBプロパティを、どう設定すればいいのかで躓いてらしたのであれば、
shp.Fill.ForeColor.RGB = RGB(255, 0, 0)
のとおり、VBAのRGB関数を使いましょう。
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjectsオブジェクト » 選択図形の塗りつぶし色を変更するExcelマクロ
TrackBack:0
- TrackBack URL