「グラデーションの塗りつぶし」のセルを設定する

vbacellspaint_gradteyecatch

エクセルVBA最速理解です。セルの背景色にグラデーション(塗りつぶし効果)を設定します。
線型と四角形型をInterior.Patternプロパティで記述します。

こんにちは じゅんぱ店長 (@junpa33) です。

今回はセルの書式設定の「塗りつぶし」の「グラデーション」をエクセルVBAで記述する方法です。

「塗りつぶしの効果」とは「グラデーション」のことです。

「グラデーション」を設定すると、同時使用で背景色や網掛けを利用することは出来なくなります。

今回はこれをVBAコード化しての利用方法を説明します。

塗りつぶしの効果「グラデーション」設定はこれです

vbacellspaint_gradationp008
vbacellspaint_gradationp001

グラデーションのタイプとして、「線形グラデーション」と「方形グラデーション」を設定することが出来ます。

グラデーションの設定は網掛けの場合と同様、「Patternプロパティ」を利用することになります。

グラデーション設定のVBAコード

vbacellspaint_gradationp009
VBAコードで作成する利点

グラデーションをVBAで作成すると、エクセルシートからの書式設定でグラデーションを作る場合と比べて、

仕上がりに対する柔軟性が全く違います。

線形グラデーションの傾斜角度、方形グラデーションの方形サイズの可変化など、

もっとも違うのが、色の収束ポイントを増やすことが出来る事であったりと、利点しかありません。

(VBAコード作りは面倒ですが・・・)

セルにグラデーションを設定する場合は、Patternプロパティを使用します。

構文

Rangeオブジェクト.Interior.Pattern = グラデーションの定数

グラデーション種定数
線形グラデーションxlPatternLinearGradient
方形グラデーションxlPatternRectangularGradient

この構文によるコード記述で、グラデーションのタイプを指定したことになります。

その後に、

Gradientプロパティで取得したGradientオブジェクトに詳細を設定するプロパティを当てていきます。

構文

Rangeオブジェクト.Interior.Gradient.関連プロパティ

グラデーション種関連プロパティ設定値説明
線形グラデーションDegree傾斜角傾斜角度を指定する
方形グラデーションRectangLeft0から1セル内の左の収束ポイントを指定
RectangRigthセル内の右の収束ポイントを指定
RectangTopセル内の上の収束ポイントを指定
RectangBottomセル内の下の収束ポイントを指定
線形・方形グラデーションColorStops(数値)
または
.Add(位置)
◎Clearプロパティで色をクリアー
◎ColorStopsで2つの色を表すコレクションが取得できる。
ColorStops(1):始点
ColorStops(2):終点
◎セル内での変化位置を指定したい場合は、
.Add(位置)として数値をセット
0:始点、1:終点
0から1の範囲で指定
◎Colorプロパティ、ThemeColor プロパティ・TintAndShade プロパティで色を指定

線形グラデーション

「線形グラデーション」には、Patternプロパティの定数「xlPatternLinearGradient」を利用します。

線形グラデーション サンプル1

傾斜角-30°

グラデーションの始点に「白色」と終点に「緑色」を設定

線形グラデーション-30°
Sub グラデーションサンプル1()
    With Range("B3").Interior
        .Pattern = xlPatternLinearGradient
        With .Gradient
            .Degree = -30
            .ColorStops(1).Color = RGB(255, 255, 255)
            .ColorStops(2).Color = RGB(0, 255, 0)
        End With
    End With
End Sub
vbacellspaint_gradationp003

すこしグラデーションの感じが分かりづらいかもしれません。

傾斜角20 、赤色から白色へのグラデーションをセットします。

線形グラデーション サンプル2

傾斜角度20°、左上角「色色」スタートで右下角「赤色」収束

最初に色設定をリセットしておく。

色設定は始点は白、中間点で中間色、終点で赤 3点を指定

線形グラデーション20°
Sub グラデーションサンプル2()
    With Range("B3").Interior
        .Pattern = xlPatternLinearGradient
        With .Gradient
            .Degree = 20
            .ColorStops.Clear
            .ColorStops.Add(0).Color = RGB(255, 255, 255)
            .ColorStops.Add(0.7).Color = RGB(255, 125, 125)
            .ColorStops.Add(1).Color = RGB(255, 0, 0)
        End With
    End With
End Sub
vbacellspaint_gradationp002

個人の嗜好ですが、指数関数のグラフ的な色の変化をさせた方がキレイです。

方形グラデーション

方形グラデーションは、Patternプロパティの定数「xlPatternRectangularGradient」を利用します。

方形グラデーション サンプル3

「白」から「青」への方形グラデーションです。

色設定ポイントは始点と終点の2か所になります。

方形グラデーション色ポイント2つ
Sub グラデーションサンプル3()
    With Range("B3").Interior
        .Pattern = xlPatternRectangularGradient
        With .Gradient
            .RectangleLeft = 0.3
            .RectangleRight = 0.7
            .RectangleTop = 0.3
            .RectangleBottom = 0.7
            .ColorStops(1).Color = RGB(255, 255, 255)
            .ColorStops(2).Color = RGB(0, 0, 255)
        End With
    End With
End Sub
vbacellspaint_gradationp004

色の設定ポイントを少し増やしてみます。

方形グラデーション サンプル4

「白」から「赤」へのグラデーションです。

色の設定ポイントの中間点を3つ増やしました

方形グラデーション色ポイント5つ
Sub グラデーションサンプル4()
    With Range("C4").Interior
        .Pattern = xlPatternRectangularGradient
        With .Gradient
            .RectangleLeft = 0.3
            .RectangleRight = 0.7
            .RectangleTop = 0.3
            .RectangleBottom = 0.7
            .ColorStops.Clear
            .ColorStops.Add(0).Color = RGB(255, 255, 255)
            .ColorStops.Add(0.8).Color = RGB(255, 105, 105)
            .ColorStops.Add(0.9).Color = RGB(255, 85, 85)
            .ColorStops.Add(0.96).Color = RGB(255, 35, 35)
            .ColorStops.Add(1).Color = RGB(255, 0, 0)
        End With
    End With
End Sub
vbacellspaint_gradationp005

色のポイントを増やせば、当然グラデーションも滑らかにすることだ出来ます。

コード作成においては、仕上がりに対する許容で判断してください。

セルのグラデーションのVBA設定のまとめ

セルの塗りつぶしをグラデーションに設定するためのVBAコードの説明を行ってきました。

一番簡単に済ませるには、「塗りつぶし効果」から「グラデーション」設定窓で操作することですが、操作感の無い硬直したグラデーションになってしまうのは仕方のないことです。

セルにマクロボタンとしてセットする時などには、背景色でやはり ” ボタン風なグラデーション ” 設定したいです。

なれればそうそう難しくないVBAですので、チャレンジしてみてください。

vbacellspaint_gradationp006
vbacellspaint_gradationp007

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min