今回はExcel VBAでフォントの色を変更する方法について解説します。なお、関連する項目として、セルの塗りつぶしの色を変更する方法は以下の記事を参照ください。
今回は以下の表を使います。
Fontプロパティ
フォントの色は、Fontプロパティを使って設定できます。
Cells(1, 1).Font.Color = 3
詳しくは以下で解説します。
プロパティとは何か
プロパティ(Property)は日本語では”属性”と訳されます。属性というのは、共通して備わっている特徴のことです。人間は共通して”目”を持っていて、鯨は共通してヒレを持っています。人間の属性の一つが”目”であり、鯨の属性の一つが”ヒレ”です。人間の属性には他にも”髪”、”腕”、”脊椎”、”肺”などがあります。
同様に、Excelのセルにも属性があります。例えばセルの値、数式、フォント、フォントの色、塗りつぶしの色、罫線の有無、セルの幅、セルの高さなど、多岐にわたります。これらのExcelのセルの属性を指定してあげるコードを書くことで、様々な操作が可能になるのです。
例えば”セルのフォントの色のプロパティを赤色にする”とか”セルの罫線のプロパティを”太線で囲む”にする”といったことが可能になります。
Fontプロパティ
Fontプロパティは、セルのフォントの状態を設定するプロパティです。上で紹介したコードをもう1度見てみましょう。
Cells(1, 1).Interior.ColorIndex = 3
A1セルのフォントの色のプロパティについて、詳しくは後述しますがカラーインデックスの3番の色(赤色)で塗るように設定しています。
フォントの色変更
では具体的にどのように色を指定するのか、ColorIndexプロパティとColorプロパティの2つの指定方法を紹介します。
ColorIndexプロパティを使う
カラーインデックスは、特定の色に以下のように番号が振られています。特にこだわりがなければこの中から必要な色を選び、そのカラーインデックス番号を指定することでフォントの色を変更できます。
Colorプロパティを使う
Colorプロパティを使った色の指定方法には、2つの方法があります。
カラー定数
特定の色については、カラー定数を使うことができます。
- 黒:vbBlack
- 青:vbBlue
- 赤:vbRed
- 紫:vbMagenta
- 白:vbWhite
- 黄色:vbYellow
- 黄緑:vbGreen
- 水色:vbCyan
例えばカラー定数を使ってA1セルのフォントを赤くするには、以下のコードで実行できます。
Cells(1, 1).Interior.Color = vbRed
RGB値
もう1つの方法は、RGB値を使う方法です。RGB値は、既に使われている色と全く同じ色を指定したい時に使用します。例えば以下のようにA1セルのフォントの色が何なのか、ColorIndexのどれに該当するのかわからない状態で、この色と同じ色を使って2行目のラベルもを塗りつぶすことを想定してください。
実際に使われている色であれば、どんな色であってもColorプロパティのRGB値が存在します。試しに上の色のRGB値を確認してみましょう。以下のようにVBE上のイミディエイトウィンドウに、知りたい情報の前に”?”をつけてEnterを押すと、このセルのColorプロパティが”15189684”であることを確認できます。
これを利用して、A2セルを、同じ色で塗ってみましょう。コードは以下の通りです。
Cells(2,1).Interior.Color = 15189684
実行結果は以下の通りです。
上の処理について、変数を用いることで、RGB値を打ち込まなくともA2セルのフォントの色を変えることができます。コードは以下の通りです。
Dim color_code As Variant
color_code = Cells(1, 1).Font.color
Cells(2, 1).Font.color = color_code
実行結果は以下の通りです。
変数については以下で説明します。
変数
変数というのは、データを格納するための箱です。整数、文字列など、ある特定の1つのデータを格納することができます。
上のColorプロパティというのは、”Variant型”で取得できます。”Varinat”は、何でもアリの箱というイメージです。
ショートカット
上で紹介したフォントの色を変更するコードに対してキーボード入力によるショートカットを設定することができます。例えば実務でフォントを赤くする作業を頻繁に行う人は、”Shift + Ctrl + r” でフォントを赤くできるようになります。非常に便利ですので是非以下の記事を参照ください。
コメント