【VBA】セルの文字色と背景色を変える方法

今回はセルの文字色と背景色を変える方法を紹介します。

ちなみに、色の変更でColorIndexプロパティを使うのはあまりおすすめしません。理由は最後に紹介するので、そこだけ知りたい方は下の方へスクロールしてください。

セルの文字色を変える方法

Sub ChangeFontColor()
    Cells(1, 1).Font.Color = vbRed '文字を赤色に変える
End Sub

セルの文字色を変えたい場合は、まずFontプロパティを取得して、その中のColorプロパティを変更します。

いきなりセルの文字色を変えるのではなく、一旦文字のフォント情報を取得して、その中の文字色を変更しているのだとイメージしてください。

このコードではA1セルの文字色を赤色に変えています。
(vbRedという定数についても下の方で説明します)

セルの背景色を変える方法

Sub ChangeInteriorColor()
    Cells(1, 1).Interior.Color = vbRed '背景を赤色に変える
End Sub

セルの背景色を変えたい場合は、まずInteriorプロパティを取得して、その中のColorプロパティを変更します。

文字色の場合と同じで、いきなり背景色を変えるのでなく、一旦背景情報を取得しているとイメージしてください。

Colorプロパティに使う定数について

ここまでのコードでは、ColorプロパティにvbRedという定数を入れました。

定数
vbBlack
vbRed
vbGreen
vbYellow
vbBlue
vbMagentaマゼンタ
vbCyanシアン
vbWhite

VBAには色を決めるために8種類の定数が用意されています。

基本的にはこの8種類を使用して、もっと違う色が使いたいとなったらrgbから始まる定数がたくさん用意されているので、選んでみてください。(rgbから始まる定数は下記リンク先を参照)

Sub ChangeInteriorColor()
    Cells(1, 1).Interior.Color = RGB(0,0,0)
End Sub

また、RGB関数を用いて(赤,緑,青)を自分で細かく設定することもできます。

ColorIndexプロパティの使用は避けよう

Sub ChangeInteriorColor2()
    Cells(1, 1).Interior.ColorIndex = 3'背景を赤色に変える
End Sub

色の指定はColorプロパティでなく、ColorIndexプロパティでも行うことができます。
上のコードのように、数値で色を指定します。

ただし、ColorIndexプロパティで指定する色はエクセルの設定を変えると変わってしまいます。

エクセルで「ファイル→オプション→保存→色」と進むと上の画像のような色のパレットが表示されます。

このパレット上の色を変更していると、ColorIndexプロパティで数値を指定していても、想定したのとは違う色となってしまうかもしれません。

特に、マクロを他の人に配布することを考えている場合は、ColorIndexプロパティではなくColorプロパティの使用をおすすめします。

《VBA初心者におすすめの本》
VBA初心者には、株式会社すごい改善さんの本が分かりやすくておすすめです。

created by Rinker
技術評論社
¥2,178 (2021/12/01 14:22:42時点 Amazon調べ-詳細)

動画で学びたい人には、すごい改善さんのUdemy講座をおすすめします。
【累計36万部著者が教える】たった1日で!まったくの初心者でも最短でExcel VBAを仕事で活用できるようになる講座

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい