Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » 選択図形の塗りつぶし色を変更するExcelマクロ

選択図形の塗りつぶし色を変更するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel2010 サンプルがほしい selection.shaperange.fill.forecolor.rgb」
という検索キーワードが、このサイト・インストラクターのネタ帳のアクセスログにありましたので、
そんなExcel VBA(Visual Basic for Applications)のプロシージャを作ってみました。

選択されている図形の、塗りつぶし色を

選択図形の塗りつぶし色を変更するExcelマクロ

変更するExcelマクロです。

[スポンサード リンク]

選択されている図形の塗りつぶし色を変更するサンプルマクロ

図形を選択しておいて以下のSubプロシージャを実行すると、選択されていた図形の塗りつぶし色が赤色になります。


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

 shp.Fill.ForeColor.RGB = RGB(255, 0, 0)
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関数を使いましょう。

▼オブジェクトブラウザーの使い方と共に、VBAのオブジェクト式の文法・オブジェクト変数について解説する、マクロ経験者向けセミナー『Excel VBA講座 オブジェクト式解説編』の開催時に、案内を希望される方はメールアドレスをご登録ください。
オブジェクト式解説編

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » 選択図形の塗りつぶし色を変更するExcelマクロ

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » 選択図形の塗りつぶし色を変更するExcelマクロ

「Shapeオブジェクト」の記事一覧

検索

最近じっくりと読まれている記事

.