4. 文字色とセルの塗りつぶし設定  

フォントの色設定とセルの塗りつぶしは、それぞれ別のオブジェクトが担当します。
色の値は、あらかじめ「カラーインデックス」という設定された色番号で指定する場合と、関数を使ってRGB3色の値を指定する方法があります。
 

@ 文字色の変更−ColorIndexプロパティ 書式 使用例
FontオブジェクトのColorIndexプロパティは、フォントの文字色を設定するプロパティです。設定値はあらかじめ色に割り当てられている番号で指定します。代表的な色番号は次の通りですが、詳しくはオンラインヘルプを参照してください。

色番号         色         色番号       色
-----------------------------------
1                 黒             7         マゼンタ
2                 白             8         シアン
3                 赤             9         茶
4        明るい緑           10         緑
5                 青           11         紺
6     明るい黄色           12         うぐいす
ColorIndex = 色番号

【属性】                       プロパティ
【所属オブジェクト】        Font
【操作対象オブジェクト】 Font

<記述例>
Range("A1:B4").Font.ColorIndex = 6

 

<使用例 セル「A1」のフォントを青色にする>
Worksheets("Sheet1").Range("A1").Font.ColorIndex = 5

もちろん、対象のRangeオブジェクトにセル範囲を指定したり、Charactersオブジェクトで特定の文字を指定して色を設定することができます。

<使用例 セルA1の先頭から3文字目から4文字分をマゼンタで塗りつぶす>
Worksheets("Sheet1").Range("A1") _
.Characters(3, 4).Font.ColorIndex = 7

 

A 文字色の変更−Colorプロパティ 書式 使用例
Fontオブジェクトで文字色を設定するプロパティがもう1つあります。それが、Colorプロパティです。
このプロパティは、設定値に16進数による色の値を設定することができます。ColorIndexプロパティとの違いは、ColorIndexプロパティがあらかじめ決められた番号で色を指定するのに対し、Colorプロパティは1670万色から任意の色を選んで指定することができることです。
Colorプロパティに値を指定するには、プロパティに「&H」で始まる16進数表記の色番号を指定します。
ただし、この指定方法だと、どの色が16進数でどういう値になるのか、とても分かりづらくなっています。
そこで、RGB関数の戻り値を、Colorプロパティに渡してあげる方法が用意されています。
Color = 設定値(16進数またはRGB関数の戻り値)

【属性】                       プロパティ
【所属オブジェクト】        Font
【操作対象オブジェクト】 Font

<記述例>
Range("A1").Font.Color = &HFFF
Range("A1").Font.Color = RGB(0, 255, 0)

 

<使用例 セル「A1」のフォントを赤色にする>
Worksheets("Sheet1").Range("A1").Font.Color = &HFFF

 

B RGB関数 書式 使用例
RGB関数は、3つに引数にそれぞれRed、Green、Blueの値を0〜255の整数で指定すると、3色の組み合わせによって生まれる色のRGB値を返す関数です。
この関数の戻り値を、Colorプロパティにセットすれば、1670万色中の任意の色を作り出して、文字色として使うことができるようになります。
関数の各引数の組み合わせと、作成される色の代表的なものは次の通りです。

色           Red Green  Blue
------------------------------------
黒               0      0       0
青               0      0    255
緑               0  255       0
シアン          0  255    255
赤            255      0       0
マゼンタ    255      0   255
黄色         255  255       0
白            255  255   255
 
RGB(Red, Green, Blue)

【属性】 関数
【所属オブジェクト】 なし
【操作対象オブジェクト】 なし
【戻り値】 色のRGB値

<記述例>
RGB(0, 255, 0)

<使用例 セル「A1」のフォントをサーモン色に設定する>
Worksheets("Sheet1").Range("A1") _
                                  .Font.Color = RGB(250, 80, 160)

 

 

C セルの塗りつぶしオブジェクトの取得 書式 使用例
オブジェクトの塗りつぶし属性を表すのは、Interiorオブジェクトです。そして、そのオブジェクトを参照するプロパティが「Interior」プロパティです。セルの場合は、Rangeオブジェクトが保有するInteriorプロパティを使用します。
Interiorオブジェクトには、塗りつぶし属性を設定するための各プロパティが用意されており、これらのプロパティを組み合わせることで、塗りつぶし色やパターンの模様を設定します。
Interior

【属性】 プロパティ
【所属オブジェクト】 Range
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior

 

 

D セルを塗りつぶす−ColorIndexプロパティ 書式 使用例
実際にセルの内部を塗りつぶすのは、InteriorオブジェクトのColorIndexプロパティが行います。プロパティの値は、FontオブジェクトのColorIndexプロパティと同じで、設定されているカラーインデックス番号をプロパティに代入します。 ColorIndex = 色番号

【属性】 プロパティ
【所属オブジェクト】 Interior
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior.ColorIndex = 6

<使用例 セル「A1」をマジェンタで塗りつぶす>
Worksheets("Sheet1").Range("A1") _
                                       .Interior.ColorIndex = 7

 

E セルを塗りつぶす−Colorプロパティ 書式 使用例
Interiorオブジェクトも、Fontオブジェクトと同様に、ColorIndexとColorという色の設定のためのプロパティを2つ持っています。
Colorプロパティの設定方法も、Fontオブジェクトのそれとまったく同じで、色を16進数で指定するか、RGB関数の戻り値をプロパティに代入します。
Color = 設定値(16進数またはRGB関数の戻り値)

【属性】 プロパティ
【所属オブジェクト】 Interior
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior.Color = RGB(255, 255, 0)

<使用例 セル「A1」を黄色で塗りつぶす>
Worksheets("Sheet1").Range("A1") _
                              .Interior.Color = RGB(255, 255, 0)

 

F パターンを使ったセルの塗りつぶし
                −Patternプロパティ
書式 使用例
セルの塗りつぶしにパターンを摘要する場合は、InteriorオブジェクトのPatternプロパティに、パターンの種類を以下の定数で設定します。

<定数>
xlPatternAutomatic xlPatternChecker
xlPatternCrissCross xlPatternDown
xlPatternGray16 xlPatternGray25
xlPatternGray50 xlPatternGray75
xlPatternGray8 xlPatternGrid
xlPatternHorizontal xlPatternLightDown
xlPatternLightHorizontal xlPatternLightUp
xlPatternLightVertical xlPatternNone
xlPatternSemiGray75 xlPatternSolid
xlPatternUp xlPatternVertical

パターンは、次に紹介する「PatternColorIndex」プロパティを設定しなければ、「自動」に設定された色で塗られます。
また、定数「xlPatternNone」を設定すると、パターンによる塗りつぶしは解除されます。
Pattern = 設定値(定数)

【属性】 プロパティ
【所属オブジェクト】 Interior
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior.Pattern = xlChecker

 

<使用例 選択されたセルを黄色で塗りつぶし、黒色でチェッカー模様のパターンを設定する>
With Selection.Interior
    .ColorIndex = 22
    .Pattern = xlChecker
End With

 

 

G パターンを使ったセルの塗りつぶし
             −PatternColorIndex
書式 使用例
Interiorオブジェクトの「PatternColorIndex」または「PatternColor」プロパティを使用すると、塗りつぶし色とは別にパターンの色を設定することができます。
設定値は、それぞれこれまで説明してきた「Color」「ColorIndex」プロパティと同じで、「PatternColorIndex」プロパティではカラーインデックス番号を、「PatternColor」プロパティでは16進数またはRGB関数の戻り値を代入して色を設定します。
Interiorオブジェクトの「Color」または「ColorIndex」プロパティと組み合わせることで、たとえば黄色地に青色の網掛け模様を施す、ということが可能になります。
PatternColorIndex = 色番号

【属性】 プロパティ
【所属オブジェクト】 Interior
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior.PatternColorIndex = 6

PatternColor = 設定値(16進数またはRGB関数の戻り値)

【属性】 プロパティ
【所属オブジェクト】 Interior
【操作対象オブジェクト】 Interior

<記述例>
Range("A1").Interior.PatternColor = &HFF
Range("A1").Interior.PatternColor = RGB(255, 255, 0)

<使用例 パターンで塗りつぶしたあとに塗りつぶしを解除する>
Sub パターンで塗りつぶし()
    With Selection.Interior
        .ColorIndex = 22
        .Pattern = xlChecker
        .PatternColorIndex = 7
    End With

    MsgBox "塗りつぶしを戻します"
    With Selection.Interior
        .ColorIndex = xlNone
        .Pattern = xlPatternNone
        .PatternColorIndex = xlNone
    End With
End Sub

 

著作・制作   瀬戸 遥   2004/04.