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

2022年7月18日

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

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

セルの色を変える方法

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

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

いきなりセルの色を変えるのではなく、一旦セルの背景情報を取得して、色を変更しているのだとイメージしてください。

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

文字の色を変える方法

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

文字の色を変えたい場合は、まずFontプロパティを取得して、その中の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プロパティの使用をおすすめします。

例外:「塗りつぶしなし」はColorIndexプロパティを使う

塗りつぶしなし

セルの色には「塗りつぶしなし」があるのですが、これだけはColorプロパティでは指定することができません。

Sub NoColor()
    Cells(1, 1).Interior.ColorIndex = xlNone
End Sub

そのため、この場合のみColorIndexプロパティを使うようにしましょう。

上のプログラムのように、ColorIndexプロパティをxlNoneにすると「塗りつぶしなし」となります。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
こちらの記事でおすすめのプログラマーを紹介しています

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2022/10/01 13:30:59時点 Amazon調べ-詳細)

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

VBA

Posted by やろまい