【VBA】セルの背景色&文字色を変更する方法!RGB概念から解説!

f:id:yshgs_elec:20201219223430j:plain

この記事では、エクセルシート内の指定したセルの背景色と文字色を、VBAを使って変更する方法をご紹介します。

 

色の概念から、実際のVBAコードまで、詳細に紹介していきますので、ぜひ最後までご覧ください。

 

それでは早速やっていきます!

スポンサーリンク

色の概念説明

基本的に色というのは赤、緑、青の3つの色を組み合わせることによって表現することが出来ます。

 

これをそれぞれの色の頭文字をとって

RED(赤)

GREEN(緑)

BLUE(青)

RGBカラーモデルと言っています。

この3つの要素は0から255までの度合で指定してあげるルールになっています。

 

この度合いをうまく組み合わせることで、白、黒、紫、黄色、オレンジなどの様々な色を表現することが可能です。

※RGBカラーモデルについての詳細を知りたい方は以下をご確認ください。

RGB – Wikipedia

エクセルVBA上にもこのRGBの概念が用いられておりますので、セルの背景色や文字色を変更する際は、このRGBの3要素がそれぞれどのくらいかを指定してあげれば色を変更することが可能です。

 

というわけで、ここからは実際にVBA上でセルの背景や文字色を変更する方法をご紹介していきます。

スポンサーリンク

VBAでセルの背景色を変更する方法

まずはセルの背景色を変更する方法です。

 

◆VBAでセルの背景色を変更する方法
Cells(行数, 列数).Interior.color = RGB(*, *, *)

 

基本的には背景色を変更したいセルを【Cells(*,*)】で指定し、その後に【.Interior.color】を付け、最後に【=RGB(*,*,*) 】で指定したい色のRGB値を入力してあげるだけです。

 

ここの【=RGB(*,*,*) 】に先ほど詳細したように赤、緑、青のそれぞれの度合いを入力していくことになります。

※実際の使用例は後程ご紹介します。

スポンサーリンク

VBAでセルの文字色を変更する方法

次はセルの文字色を変更する方法です。

 

◆VBAでセルの文字色を変更する方法
Cells(行数, 列数).Font.color = RGB(*, *, *)

 

基本的には先ほどの背景色とほとんど同じです。

 

変更したいセルを【Cells(*,*)】で指定し、その後に【.Font.color】を付け、最後に【=RGB(*,*,*) 】で指定したい色のRGB値を入力してあげるだけです。

 

ここでも先ほど詳細したように【=RGB(*,*,*) 】の * の部分に赤、緑、青のそれぞれの度合いを入力していくことになります。

スポンサーリンク

実際の使用例

今回はRGBの概念もわかるように以下のような状態から

f:id:yshgs_elec:20210204194109j:plain

以下の画像のような状態に一括変更してみようと思います。

f:id:yshgs_elec:20210204194126j:plain

※A列、K列の数字はRGBカラーモデルのそれぞれの要素の数値を表しています。

 

本来max値は255ですが、今回は都合上250までにしています。

 

それでは早速VBAコードを記述していきましょう。

◆セルの背景、文字色を変更するVBAコードサンプル

Sub color_change()
    Dim i As Integer
    '背景色の変更
    For i = 0 To 255 Step 10
        Cells(i / 10 + 4, 2).Interior.Color = RGB(i, 0, 0)
        Cells(i / 10 + 4, 3).Interior.Color = RGB(0, i, 0)
        Cells(i / 10 + 4, 4).Interior.Color = RGB(0, 0, i)
        Cells(i / 10 + 4, 5).Interior.Color = RGB(i, i, 0)
        Cells(i / 10 + 4, 6).Interior.Color = RGB(0, i, i)
        Cells(i / 10 + 4, 7).Interior.Color = RGB(i, 0, i)
        Cells(i / 10 + 4, 8).Interior.Color = RGB(i, i, i)
    Next
    '文字色の変更
    For i = 0 To 255 Step 10
        Cells(i / 10 + 4, 12).Font.Color = RGB(i, 0, 0)
        Cells(i / 10 + 4, 13).Font.Color = RGB(0, i, 0)
        Cells(i / 10 + 4, 14).Font.Color = RGB(0, 0, i)
        Cells(i / 10 + 4, 15).Font.Color = RGB(i, i, 0)
        Cells(i / 10 + 4, 16).Font.Color = RGB(0, i, i)
        Cells(i / 10 + 4, 17).Font.Color = RGB(i, 0, i)
        Cells(i / 10 + 4, 18).Font.Color = RGB(i, i, i)
    Next
End Sub

今回はこのようにiをFor Next(ステップ数=10)で繰り返し処理を実施し、そのiに応じてRGBを変化させています。

 

以下の画像は先ほどの結果に、RGBのON, OFFスイッチも表示しておきました。

 

これを見ればRGBの3要素に対して、色がどう変化していくのかわかりやすいと思います。

f:id:yshgs_elec:20210204194144j:plain

いかがでしたでしょうか。

 

VBAでの色の変更方法から、RGBカラーモデルの概念まで、理解いただけたのではないでしょうか。

スポンサーリンク

おわりに

というわけでVBAでセルの背景色、文字色を変更する方法についてご紹介しました。

 

VBAでデータまとめ⇒手作業で装飾して見やすく

という一連の流れを毎回行っているひとは、この記事を参考に、最後の装飾部分も自動化しておきましょう。

 

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました