「Selection.ShapeRange.Fill」
「With Selection.ShapeRange.Fill」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へ時折アクセスがあります。
Excel VBAで選択されている図形に対して、塗りつぶしの設定を行う際に使用するコードの意味を調べていた方による検索でしょうか。
Selection.ShapeRange.Fillは選択図形の塗りつぶし設定で使用
「Selection.ShapeRange.Fill」は、選択されている図形の塗りつぶしを設定する際に使用するコードです。
コード「Selection.ShapeRange.Fill」を実行すると、選択されている図形の塗りつぶし書式を表すFillFormatオブジェクトを取得できます。
Selection.ShapeRange.Fillのサンプル
例えば、塗りつぶしの設定されている四角形や楕円を選択しておいてから、
Selection.ShapeRange.Fill.Visible = msoFalse
を実行すると、選択されていた図形が塗りつぶしなしの状態に設定されます。
また、
Selection.ShapeRange.Fill.Transparency = 0.8
を実行した場合には、選択されている図形の塗りつぶしの透過度が80%になります。
Selection.ShapeRange.Fillの読解
拙著『いちばんやさしいExcel VBAの教本』の、「Lesson 52 プロパティは2種類あることを知っておきましょう」で、プロパティには、
- 単なるデータを習得するためのプロパティ
- オブジェクトを取得するためのプロパティ
の2種類があることを、お伝えしています。「Selection.ShapeRange.Fill」で使われている3つのプロパティは、いずれもオブジェクトを取得するためのプロパティです。
コード「Selection.ShapeRange.Fill」で使われている各プロパティが、具体的にどのようなオブジェクトを取得するプロパティなのか、読解しておきましょう。
Selectionプロパティ
最初の「Selection」は、Excel上で選択されている操作対象を取得するためのプロパティです。オブジェクトブラウザー詳細ペインに「As Object」と表示されているとおり、何が選択されているのかによって取得できるオブジェクトが変化します。
図形が選択されている状態では、Rectangle・Oval・DrawingObjectsといったオブジェクトを取得できます。
ShapeRangeプロパティ
「Selection」につづく、「.ShapeRange」は、これらRectangle・Oval・DrawingObjectsといったオブジェクトに用意されているShapeRangeプロパティで、戻り値はプロパティ名と同じくShapeRangeオブジェクトです。
Fillプロパティ
「Selection.ShapeRange」につづく、「.Fill」は、ShapeRangeオブジェクトに用意されているFillプロパティです。
ShapeRange.Fillプロパティの戻り値はFillFormatで、プロパティと返されるオブジェクトの名前が微妙に異なる点には注意が必要でしょうか。
最終更新日時:2021-12-09 05:40
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » Selection.ShapeRange.Fillとは