このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

2023年5月28日

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

VBAが難しいと感じたら
自分で作るのが難しいと感じたらご相談ください。
ココナラにて、VBAの作成を受け付けています。
ご相談はこちらから

セルの色を変える方法

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

Posted by やろまい