Excel VBA 図形の塗りつぶしを設定するプロパティやメソッド 

スポンサーリンク
スポンサーリンク

図形の塗りつぶしを設定する方法

図形の塗りつぶしの設定をするには
Shapeオブジェクトまたは、ShapeRangeコレクション
Fill【フィル】プロパティを使用して
FillFormat【フィルフォーマット】オブジェクトを取得します。
FillFormat【フィルフォーマット】オブジェクトは、図形の塗りつぶしの書式設定を
行うためのオブジェクトで、色、グラデーション、画像、テクスチャーなど
いろいろな種類の設定を行うプロパティやメソッドを持っています。

ちなみに、Fill【フィル】は、満たすや充填するなどの意味があります。

Fill【フィル】プロパティ

塗りつぶしの書式設定を行う
FillFormat【フィルフォーマット】オブジェクトを取得するには
Fill【フィル】プロパティを使用します。

Fill【フィル】プロパティの書式

オブジェクト.Fill


設定値の説明

  • オブジェクト(必須)
    Shapeオブジェクトまたは、ShapeRengeコレクションを指定します。

※Fillプロパティは、直線やコネクターには使用できません。
直線の書式設定はLineFormatオブジェクトを使用してください。


FillFormatオブジェクトのプロパティ一覧

  • ForeColor【フォアカラー】プロパティ
    色の書式を設定する
    ColorFormat【カラーフォーマット】オブジェクトを取得します。
  • Transparency【トランスパレンシィ】プロパティ
    図形に透明度を設定します。
  • Visible【ビジブル】プロパティ
    図形の塗りつぶしの表示、非表示の設定をします。

FillFormatオブジェクトのメソッド一覧

  • OneColorGradient【ワンカラーグラディエント】メソッド
    1色のグラデーションで塗りつぶします。
  • TwoColorGradient【トゥカラーグラディエント】メソッド
    2色のグラデーションで塗りつぶします。
  • PresetGradient【プリセットグラディエント】メソッド
    既定のグラディーションを図形に設定します。
  • PresetTextured【プリセットテクスチャード】メソッド
    図形の塗りつぶしにテクスチャーを設定します。
  • Patterned【パターンドゥ】メソッド
    図形の塗りつぶしに網かけなどのパターンを設定します。

以上のプロパティやメソッドについての解説をしていきます。

ForeColor【フォアカラー】プロパティ

図形に色を設定するには
FillFormat【フィルフォーマット】オブジェクト
ForeColor【フォアカラー】プロパティを使用して
ColorFormat【カラーフォーマット】オブジェクトを取得します。
ColorFormat【カラーフォーマット】オブジェクトは色を
RGBプロパティのRGB関数で指定したり
SchemeColor【スキームカラー】プロパティを使用して
色番号で指定します。

ForeColor【フォアカラー】プロパティの書式

オブジェクト.ForeColor


設定値の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。

※SchemeColor【スキームカラー】プロパティの色番号は
ColorIndex【カラーインデックス】プロパティのインデックス番号とは
異なります。
ColorIndexプロパティのインデックス番号に7を加算した値が
Schemcolorプロパティの色番号と同じになります。
例として黒の場合
ColorIndexプロパティは1
Schemcolorプロパティは8


Transparency【トランスパレンシィ】プロパティ

図形の塗りつぶしの透明度を設定または、取得するには
Transparency【トランスパレンシィ】プロパティを使用します。

Transparency【トランスパレンシィ】プロパティの書式

【設定】
オブジェクト.Transparency = 設定値
【戻り値】倍精度浮動小数点型(Single)の値


設定値の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • 設定値(必須)
    透明度を0.0(不透明)~1.0(透明)の範囲の数値で指定します。

Visible【ビジブル】プロパティ

図形の塗りつぶしの表示、非表示を設定または取得するには
Visible【ビジブル】プロパティを使用します。

Visible【ビジブル】プロパティの書式

【設定】
オブジェクト.Visible = 設定値
【戻り値】ブール型 (Boolean) の値


設定値の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • 設定値(必須)
    塗りつぶし色を表示する場合は「True」(既定値)
    塗りつぶし色を非表示(透明色)にする場合は「False」
    を指定します。

四角形を青で塗りつぶし透明度を50%に設定するコード例

Sub 図形塗りつぶし()
Dim R As Range
Set R = Range("B2:C5")
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height).Fill
.ForeColor.RGB = RGB(0, 0, 255)
.Transparency = 0.5
End With
End Sub

実行結果


OneColorGradient【ワンカラーグラディエント】メソッド

図形を1色のグラデーションで塗りつぶすには
OneColorGradient【ワンカラーグラディエント】メソッドを使用します。
ForeColorプロパティで指定した色と、明度によって指定した
黒から白の間の色によりグラデーションを表現します。

OneColorGradient【ワンカラーグラディエント】メソッドの書式

オブジェクト.OneColorGradient GradientStyle, Variant, Degree


設定値(引数)の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • GradientStyle【グラディエントスタイル】(必須)
    グラデーションの種類をMsoGradientStyle列挙型の定数または値で指定します。
  • Variant【バリアント】(必須)
    グラデーションのバリエーションを1~4までの整数で指定します。
  • Degree【ディグリー】(必須)
    グラデーションの明度を0.0(暗い)~1.0(明るい)の間の値で指定します。

MsoGradientStyle列挙型の定数とVariantの値


TwoColorGradient【トゥカラーグラディエント】メソッド

図形を2色のグラデーションで塗りつぶすには
TwoColorGradient【トゥカラーグラディエント】メソッドを使用します。
1色目をForeColorプロパティで指定し
2色目をBackColorプロパティで指定します。

TwoColorGradient【トゥカラーグラディエント】メソッドの書式

オブジェクト.TwoColorGradient GradientStyle, Variant


設定値(引数)の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • GradientStyle【グラディエントスタイル】(必須)
    グラデーションの種類をMsoGradientStyle列挙型の定数または値で指定します。
  • Variant【バリアント】(必須)
    グラデーションのバリエーションを1~4までの整数で指定します。

赤と黄色の2色のグラデーションのバリエーションをセルに合わせて表示するコード例

Sub グラディション2色()
Dim R As Range
Dim i As Long
Dim j As Long
For i = 1 To 7
For j = 1 To 4
Set R = Cells(i, j)
On Error Resume Next
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 1
.Fill.TwoColorGradient i, j
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Fill.BackColor.RGB = RGB(255, 255, 0)
End With
Next j
Next i
End Sub

実行結果


PresetGradient【プリセットグラディエント】メソッド

あらかじめ用意されている規定のグラデーションを
図形に設定するには
PresetGradient【プリセットグラディエント】メソッドを使用します。

PresetGradient【プリセットグラディエント】メソッドの書式

オブジェクト.PresetGradient Style, Variant, PersetGradientType


設定値(引数)の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • Style【スタイル】(必須)
    上記のMsoGradientStyle列挙型の定数で指定します。
  • Variant【バリアント】(必須)
    上記のVariantの値 グラデーションの種類を1~4の整数で指定します。
  • PersetGradientType【プリセットグラディエントタイプ】(必須)
    MsoPersetGradientTypeクラスの定数または値で指定します。

MsoPersetGradientTypeクラスの定数

Style 1 の場合


既定のグラデーションをセルに合わせた図形に表示するコート例

Sub 既定グラディション()
Dim R As Range
Dim i As Long
Dim j As Long
For i = 1 To 24
For j = 1 To 4
Set R = Cells(i, j)
On Error Resume Next
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 1
.Fill.PresetGradient 1, j, i
End With
Next j
Next i
End Sub

PresetTextured【プリセットテクスチャード】メソッド

図形の塗りつぶしにテクスチャーを設定するには
PresetTextured【プリセットテクスチャード】メソッドを使用します。

PresetTextured【プリセットテクスチャード】メソッドの書式

オブジェクト.PresetTextured PresetTexture


設定値(引数)の説明

  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • PresetTexture【プリセットテクスチャー】(必須)
    テクスチャーの種類をMsoPresetTexture列挙型の定数または値で指定します。

MsoPresetTexture列挙型の定数


セルに合わせた図にすべてのテクスチャーを表示するコート例

Sub 既定テクスチャー()
Dim R As Range
Dim i As Long
For i = 1 To 24
Set R = Cells(i, 1)
On Error Resume Next
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 1
.Fill.PresetTextured i
End With
Next i
End Sub

Patterned【パターンドゥ】メソッド

図形の塗りつぶしに網かけなどのパターンを設定するには
Patterned【パターンドゥ】メソッドメソッドを使用します。
パターン色をForeColorプロパティで指定し
背景色をBackColorプロパティで指定ます。

Patterned【パターンドゥ】メソッドの書式

オブジェクト.Patterned Pattern


  • オブジェクト(必須)
    FillFormatオブジェクトを指定します。
  • Pattern【パターン】(必須)
    パターンをMsoPatternType列挙型の定数または値で指定します。

MsoPatternType列挙型の定数


セルに合わせた図形に54種類のパターンを表示するコード例

Sub パターン()
Dim R As Range
Dim i As Long
For i = 1 To 54
Set R = Cells(i, 1)
On Error Resume Next
With ActiveSheet.Shapes.AddShape(1, R.Left, R.Top, R.Width, R.Height)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 1
.Fill.Patterned i
.Fill.ForeColor.RGB = RGB(0, 0, 0)
.Fill.BackColor.RGB = RGB(255, 255, 255)
End With
Next i
End Sub

以上で
図形の塗りつぶしを設定するプロパティやメソッド
についての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク