【VBAリファレンス|実務向け】第4回 花びらにグラデーションをつける 1/3

スポンサーリンク

皆さん、こんにちは。VBA講師の山崎です。前回までは図形の基本的な配置や色付けを学びましたが、今回は一歩進んで「VBAでグラデーションを制御する」という、少し贅沢なテクニックを解説します。

なぜグラデーションをVBAで扱うのか

実務において、単純な単色塗りつぶしだけでは「視覚的な優先順位」を表現しきれないことがあります。例えば、売上目標達成率をヒートマップのように図形で表現する場合、グラデーションを使うことで、達成度合いを直感的に伝えることが可能です。今回は「花びら」という柔らかいモチーフを題材に、プログラムで色の階調を操るロジックを学んでいきましょう。

Fill.ForeColorとFill.GradientColor

Excel VBAで図形にグラデーションを適用するには、ShapeオブジェクトのFillプロパティを操作します。ここで最も重要なのは、単に色を指定するだけでなく、「塗りつぶしの種類(PresetGradient)」を指定することです。

以下のコードは、選択した図形に「夕焼け」をイメージしたグラデーションを適用する基本形です。

Sub ApplyGradient()
Dim shp As Shape
Set shp = Selection.ShapeRange(1)

With shp.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 100, 0)
.OneColorGradient msoGradientHorizontal, 1, 0.5
End With
End Sub

グラデーションの「深み」を出すコツ

実務でデザインを扱う際、最も避けたいのが「安っぽい配色」です。VBAでグラデーションを作る際は、RGB値の差分を計算して段階的に色を変化させる手法が有効です。

例えば、花びらの根元から先にかけて色を薄くしていく場合、単純なプリセットを使うのではなく、ループ処理を用いてRGBの各数値を少しずつ加算することで、より自然で高級感のあるグラデーションを実現できます。

次回は、この「RGB値の演算によるグラデーション生成」の具体的な計算ロジックについて深掘りしていきます。単なる装飾を超えた、データに基づいた「美しい図形描画」を目指しましょう。

タイトルとURLをコピーしました