今回はExcel VBAでセルの塗りつぶしの色を変更する方法について解説します。なお、関連する項目として、今後フォントの色を変更する方法についても掲載します。少々お待ちください。
今回は以下の表を使います。
Interiorプロパティ
セルの塗りつぶしの色は、Interiorプロパティを使って設定できます。例えば以下のコードで、A3セルを黄色く塗りつぶすことができます。
Cells(3, 1).Interior.ColorIndex = 6
詳しくは以下で解説します。
プロパティとは何か
プロパティ(Property)は日本語では”属性”と訳されます。属性というのは、共通して備わっている特徴のことです。人間は共通して”目”を持っていて、鯨は共通してヒレを持っています。人間の属性の一つが”目”であり、鯨の属性の一つが”ヒレ”です。人間の属性には他にも”髪”、”腕”、”脊椎”、”肺”などがあります。
同様に、Excelのセルにも属性があります。例えばセルの値、数式、フォント、フォントの色、塗りつぶしの色、罫線の有無、セルの幅、セルの高さなど、多岐にわたります。これらのExcelのセルの属性を指定してあげるコードを書くことで、様々な操作が可能になるのです。
例えば”セルのフォントの色のプロパティを赤色にする”とか”セルの罫線のプロパティを”太線で囲む”にする”といったことが可能になります。
Interiorプロパティ
Interiorプロパティは、セルの塗りつぶしの状態を設定するプロパティです。この時塗りつぶしの状態というのはどんな色で塗りつぶすか、という色の情報以外に、網掛け・グラデーションなど塗り方の情報も含みます。上で紹介したコードをもう1度見てみましょう。
Cells(3, 1).Interior.ColorIndex = 6
A3セルの塗りつぶしのプロパティについて、詳しくは後述しますがカラーインデックスの6番の色(黄色)で塗るように設定しています。
セルの塗りつぶし
では具体的にどのように色を指定するのか、ColorIndexプロパティとColorプロパティの2つの指定方法を紹介します。
ColorIndexプロパティを使う
カラーインデックスは、特定の色に以下のように番号が振られています。特にこだわりがなければこの中から必要な色を選び、そのカラーインデックス番号を指定することで塗りつぶしの色を変更できます。
Colorプロパティを使う
Colorプロパティは、既に使われている色と全く同じ色を指定したい時に使用します。例えば以下のようにA3セルが何かの色で塗られているか、それがColorIndex上では指定できない状態で、この色と同じ色を使ってA列が”バナナ”のセルを塗りつぶすことを想定してください。
実際に使われている色であれば、どんな色であってもColorプロパティが存在します。試しに上の色のColorプロパティを確認してみましょう。以下のようにVBE上のイミディエイトウィンドウに、知りたい情報の前に”?”をつけてEnterを押すと、このセルのColorプロパティが”13431551”であることを確認できます。なお、この値はRGB値と呼ばれます。
これを利用して、A8セルの”バナナ”を、同じ色で塗ってみましょう。コードは以下の通りです。
Cells(1, 8).Interior.Color = 13431551
実行結果は以下の通りです。
これを利用して、「A3セルのColorプロパティを取得して変数に格納し、A列が”バナナ”のセルを同じ色で塗りつぶす」という処理を実行してみます。コードは以下の通りです。
Dim i As Integer, color_code As Variant
color_code = Cells(3, 1).Interior.color
For i = 3 To 24
If Cells(i, 1).Value = “バナナ” Then
Cells(i, 1).Interior.color = color_code
End If
Next
実行結果は以下の通りです。
上のコードではColorプロパティ以外にも、For文による繰り返し処理やIf文による条件分岐が含まれます。それぞれ今後開設の記事を掲載しますので、少々お待ちください。
変数については以下で説明します。
変数
変数というのは、データを格納するための箱です。整数、文字列など、ある特定の1つのデータを格納することができます。
上のColorプロパティというのは、”Variant型”で取得できます。”Varinat”は、何でもアリの箱というイメージです。
ショートカットを設定する
上で紹介した塗りつぶしの色を変更するコードに対してキーボード入力によるショートカットを設定することができます。例えば実務でセルを黄色くする作業を頻繁に行う人は、”Shift + Ctrl + y” でセルを黄色くできるようになります。非常に便利ですので是非以下の記事を参照ください。
コメント