エクセルVBA最速理解です。セルの背景色にグラデーション(塗りつぶし効果)を設定します。
線型と四角形型をInterior.Patternプロパティで記述します。
こんにちは じゅんぱ店長 (@junpa33) です。
今回はセルの書式設定の「塗りつぶし」の「グラデーション」をエクセルVBAで記述する方法です。
「塗りつぶしの効果」とは「グラデーション」のことです。
「グラデーション」を設定すると、同時使用で背景色や網掛けを利用することは出来なくなります。
今回はこれをVBAコード化しての利用方法を説明します。
コンテンツ
塗りつぶしの効果「グラデーション」設定はこれです
グラデーションのタイプとして、「線形グラデーション」と「方形グラデーション」を設定することが出来ます。
グラデーションの設定は網掛けの場合と同様、「Patternプロパティ」を利用することになります。
グラデーション設定のVBAコード
セルにグラデーションを設定する場合は、Patternプロパティを使用します。
Rangeオブジェクト.Interior.Pattern = グラデーションの定数
グラデーション種 | 定数 |
---|---|
線形グラデーション | xlPatternLinearGradient |
方形グラデーション | xlPatternRectangularGradient |
この構文によるコード記述で、グラデーションのタイプを指定したことになります。
その後に、
Gradientプロパティで取得したGradientオブジェクトに詳細を設定するプロパティを当てていきます。
Rangeオブジェクト.Interior.Gradient.関連プロパティ
グラデーション種 | 関連プロパティ | 設定値 | 説明 |
---|---|---|---|
線形グラデーション | Degree | 傾斜角 | 傾斜角度を指定する |
方形グラデーション | RectangLeft | 0から1 | セル内の左の収束ポイントを指定 |
RectangRigth | セル内の右の収束ポイントを指定 | ||
RectangTop | セル内の上の収束ポイントを指定 | ||
RectangBottom | セル内の下の収束ポイントを指定 | ||
線形・方形グラデーション | ColorStops | (数値) または .Add(位置) | ◎Clearプロパティで色をクリアー ◎ColorStopsで2つの色を表すコレクションが取得できる。 ColorStops(1):始点 ColorStops(2):終点 ◎セル内での変化位置を指定したい場合は、 .Add(位置)として数値をセット 0:始点、1:終点 0から1の範囲で指定 ◎Colorプロパティ、ThemeColor プロパティ・TintAndShade プロパティで色を指定 |
「線形グラデーション」には、Patternプロパティの定数「xlPatternLinearGradient」を利用します。
傾斜角-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
すこしグラデーションの感じが分かりづらいかもしれません。
傾斜角20○ 、赤色から白色へのグラデーションをセットします。
傾斜角度20°、左上角「色色」スタートで右下角「赤色」収束
最初に色設定をリセットしておく。
色設定は始点は白、中間点で中間色、終点で赤 3点を指定
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
個人の嗜好ですが、指数関数のグラフ的な色の変化をさせた方がキレイです。
方形グラデーションは、Patternプロパティの定数「xlPatternRectangularGradient」を利用します。
「白」から「青」への方形グラデーションです。
色設定ポイントは始点と終点の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
色の設定ポイントを少し増やしてみます。
「白」から「赤」へのグラデーションです。
色の設定ポイントの中間点を3つ増やしました
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
色のポイントを増やせば、当然グラデーションも滑らかにすることだ出来ます。
コード作成においては、仕上がりに対する許容で判断してください。
セルのグラデーションのVBA設定のまとめ
セルの塗りつぶしをグラデーションに設定するためのVBAコードの説明を行ってきました。
一番簡単に済ませるには、「塗りつぶし効果」から「グラデーション」設定窓で操作することですが、操作感の無い硬直したグラデーションになってしまうのは仕方のないことです。
セルにマクロボタンとしてセットする時などには、背景色でやはり ” ボタン風なグラデーション ” 設定したいです。
なれればそうそう難しくないVBAですので、チャレンジしてみてください。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。