Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjectsオブジェクト » 選択図形の塗りつぶし色を変更する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関数を使いましょう。

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.