グラデーション(Pattern プロパティ・Gradient プロパティ)
2015/08/26
セルの背景ににグラデーションを設定する
Pattern プロパティを使用するとセルの背景にグラデーション(線形グラデーションまたは、四角形グラデーション)を設定することができます。
グラデーションを構成する色の設定には、ColorStops オブジェクトを使用します。
線形グラデーションで、色の角度を指定するには、Gradient オブジェクトの Degree プロパティを使用します。四角形グラデーションで、グラデーションの上下左右それぞれの位置を指定するには、Gradient オブジェクトの RectangleLeft・RectangleRight・RectangleTop・RectangleBottom プロパティを使用します。
Pattern プロパティ
object.Pattern = { xlPatternLinearGradient | xlPatternRectangularGradient }
引数・戻り値
- object ・・・ 対象となる Interior オブジェクトを指定します。
- xlPatternLinearGradient(4000) ・・・ 線形グラデーションを指定します。
- xlPatternRectangularGradient(4001) ・・・ 四角形グラデーションを指定します。
グラデーションを設定できるのは、Excel 2007 以降です。
Gradient オブジェクト
Interior.Gradient.Degree = angle
Interior.Gradient.RectangleLeft = d_left
Interior.Gradient.RectangleRight = d_right
Interior.Gradient.RectangleTop = d_top
Interior.Gradient.RectangleBottom = d_bottom
Gradient オブジェクトの説明
Degree プロパティ
線形グラデーションで、色が変化する角度を指定するために使用します。
RectangleLeft プロパティ 他
四角形グラデーションで、上下左右の位置を指定するために使用します。
引数・戻り値
- angle ・・・ 色が変化する方向の角度(0 ~ 360)を指定します。
設定する角度 内容 0 1 番目の色が左
90 1 番目の色が上
180 1 番目の色が右
360 1 番目の色が下 - d_left ・・・ 四角形のグラデーションを設定した時の左位置( 0 ~ 1 )を指定します。
- d_right ・・・ 四角形のグラデーションを設定した時の右位置( 0 ~ 1 )を指定します。
- d_top ・・・ 四角形のグラデーションを設定した時の上位置( 0 ~ 1 )を指定します。
- d_bottom ・・・ 四角形のグラデーションを設定した時の下位置( 0 ~ 1 )を指定します。
「1 番目の色」とは、ColorStops オブジェクトで最初に追加する色のことです。
(例)
Range(“A1”).Interior.Gradient.Degree = 90
‘↓ここで追加した色が上になる
Range(“A1”).Interior.Gradient.ColorStops.Add(0).Color = RGB(255,0,0)
Range(“A1”).Interior.Gradient.ColorStops.Add(1).Color = RGB(0,255,0)
ColorsStops オブジェクト(Count プロパティ)
object.Interior.Gradient.ColorStops.Count
プロパティの説明
作業中のセルにおける ColorStops の数(グラデーションを構成している色の数)を取得します。Count プロパティは、取得のみで、設定することはできません。
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
ColorsStops オブジェクト(メソッド)
object.Interior.Gradient.ColorStops.Add ( position ).Color = rgb
object.Interior.Gradient.ColorStops.Add ( position ).ThemeColor = index
object.Interior.Gradient.ColorStops.Clear
メソッドの説明
Add メソッド
ColorStops を追加します。Color プロパティやThemeColor プロパティ・TintAndShade プロパティで、グラデーションの色を指定します。ただし、ColorIndex プロパティは使用できません。
Clear メソッド
現在の ColorStops をクリアします。つまり、グラデーションを構成している色をすべて削除します。
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- position ・・・ グラデーションを構成している色を追加する位置を倍精度浮動小数点型(Double)で指定します。( 0:最初の色、1:最後の色、3色以上を指定する場合は、0 より大きく 1 未満の値を指定します。
- rgb ・・・ RGB 値を指定します。RGB 関数を使用することも可能です( 色の設定 を参照 )。
- index ・・・ テーマカラーの基本色を表すMsoThemeColorSchemeindex 列挙型の定数または値(1 ~ 12)を指定します。( ThemeColor プロパティ・TintAndShade プロパティ を参照 )
グラデーションの設定 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
Sub Sample_Gradient() Worksheets("Sheet3").Activate With Range("C2").Interior '線形グラデーション .Pattern = xlPatternLinearGradient '色が変化する方向の角度を90度に設定 .Gradient.Degree = 90 '色情報をクリア .Gradient.ColorStops.Clear 'グラデーションで使用する色を設定 .Gradient.ColorStops.Add(0).Color = rgbDarkBlue .Gradient.ColorStops.Add(1).Color = rgbAzure End With With Range("E2").Interior '線形グラデーション .Pattern = xlPatternLinearGradient '色が変化する方向の角度を30度に設定 .Gradient.Degree = 30 '色情報をクリア .Gradient.ColorStops.Clear 'グラデーションで使用する色を設定 .Gradient.ColorStops.Add(0).Color = rgbRed .Gradient.ColorStops.Add(0.3).Color = rgbOrange .Gradient.ColorStops.Add(0.8).Color = rgbYellow .Gradient.ColorStops.Add(1).Color = rgbGreen End With With Range("C5").Interior '四角形グラデーション .Pattern = xlPatternRectangularGradient '位置を設定 .Gradient.RectangleLeft = 0.5 .Gradient.RectangleRight = 0.5 .Gradient.RectangleTop = 0.5 .Gradient.RectangleBottom = 0.5 '色情報をクリア .Gradient.ColorStops.Clear 'グラデーションで使用する色を設定 .Gradient.ColorStops.Add(0).Color = RGB(255, 0, 0) .Gradient.ColorStops.Add(0.5).Color = RGB(0, 0, 255) .Gradient.ColorStops.Add(1).Color = RGB(255, 255, 0) End With With Range("E5").Interior '四角形グラデーション .Pattern = xlPatternRectangularGradient '位置を設定 .Gradient.RectangleLeft = 0 .Gradient.RectangleRight = 1 .Gradient.RectangleTop = 0.5 .Gradient.RectangleBottom = 0.5 '色情報をクリア .Gradient.ColorStops.Clear 'グラデーションで使用する色を設定(テーマカラー使用) .Gradient.ColorStops.Add(0).ThemeColor = msoThemeAccent2 .Gradient.ColorStops.Add(0).TintAndShade = 0.4 .Gradient.ColorStops.Add(1).ThemeColor = msoThemeAccent6 .Gradient.ColorStops.Add(1).TintAndShade = -0.6 End With End Sub |
実行結果
関連記事
-
A1参照形式、R1C1参照形式の設定・取得(ReferenceStyle プロパティ)
ReferenceStyle プロパティ ReferenceStyle プロパテ …
-
2つ以上のセル範囲を1つにまとめて参照(Union メソッド)
Union メソッド Union メソッドは、2つ以上のセル範囲を1つにまとめて …
-
セル範囲を結合・結合を解除(Merge メソッド・UnMerge メソッド)
Merge メソッド・UnMerge メソッド セルを結合するには、指定したセル …
-
網かけ(パターン)の取得・設定(Pattern プロパティ)
網かけ(パターン)を取得・設定する セルの背景に網かけ(パターン)を設定したり、 …
-
数式を設定・取得する(Formula プロパティ・FormulaR1C1 プロパティ)
Formula プロパティ(FormulaR1C1 プロパティ) Formula …
-
引数に指定したセル範囲の共通のセル範囲を取得(Intersect メソッド)
Intersect メソッド Intersect メソッドは、引数に指定したセル …
-
セルが選択されているか確認する(TypeName 関数)
セルが選択されているか確認する方法と使用例 TypeName 関数の引数に、Se …
-
配列数式を取得または設定する(FormulaArray プロパティ)
FormulaArray プロパティ FormulaArray プロパティは、対 …
-
重複するデータを削除(RemoveDuplicates メソッド)
RemoveDuplicates メソッド 指定したセル範囲から重複データを含む …
-
外枠罫線の設定(BorderAround メソッド)
外枠罫線の設定 罫線の設定には、Borders プロパティを使用しますが、範囲内 …