OneColorGradientメソッド解説(Excel VBA)

OneColorGradient メソッド

OneColorGradientメソッドは、FillFormatオブジェクトのメソッドで、指定された塗りつぶしに1色のグラデーションを設定するために使用されます。このメソッドは、次の構文で使用されます: objFillFormat.OneColorGradient (Style, Variant, Degree)

  • Style引数は、MsoGradientStyle列挙型によって指定されるグラデーション塗りつぶしスタイルを指定します。
    • msoGradientHorizontal : グラデーションは左から右にかけて変化します(値:1)。
    • msoGradientVertical : グラデーションは上から下にかけて変化します(値:2)。
    • msoGradientDiagonalUp : グラデーションは左下から右上にかけて変化します(値:3)。
    • msoGradientDiagonalDown : グラデーションは左上から右下にかけて変化します(値:4)。
    • msoGradientFromCorner : グラデーションは左上角から変化します(値:5)。
    • msoGradientFromTitle : グラデーションはタイトルから変化します(値:6).
    • msoGradientFromCenter : グラデーションは中心から変化します(値:7).
  • Variant引数は、塗りつぶしのグラデーションのバリエーションを指定します。[塗りつぶし効果]ダイアログボックスの[グラデーション]タブの4つのバリエーションに対応する1~4の値が使用できます。
  • Degree引数は、塗りつぶしのグラデーションの明度を指定します。使用できる範囲は、0.0(暗)~1.0(明)の値です。

サンプルコード

指定された名称の図形(この場合は「正方形/長方形 1」)に対してグラデーション塗りつぶしを適用するコードです。

Sub ApplyOneColorGradientToShape()
    Dim shp As Shape
    '指定された名前の図形を取得
    Set shp = ActiveSheet.Shapes("正方形/長方形 1")
    'シェイプに一色グラデーションを適用
    With shp.Fill
        .OneColorGradient Style:=msoGradientHorizontal, Variant:=1, Degree:=0.9
    End With
End Sub

注意: 図形名 “正方形/長方形 1” は既存の図形に対して適切な名前でなければならず、存在しない場合はエラーになります。また、図形に塗りつぶしを適用できない場合(例えば、テキストボックスやラインなど)もエラーになります。