VBAによる色の操作【 色の変更を自動処理~サンプルを使って紹介~ 】
Excel業務でテキストの色の操作やセルの塗りつぶしの色の操作を効率的に使えていますか
色を操作する作業は意外と時間がかかるうえに条件が多い作業だと精神的にも疲れますよね!そんなときに便利なのがVBAによる色の操作です。
VBAを使えばいろんな項目の色の操作を一瞬で処理することができ、さらに関数IFやFor~Nextと組み合わせて使えばいろんな業務に応用することも可能。
そんな、単純だけど精神的に疲れる作業である色の操作のVBAを紹介します。
関数IFやFor~Nextの使い方下記の記事で紹介しています。
目次
色の操作とは
色の操作とはテキストの色を変える、セルの塗りつぶしの色を変えるなどのことで単純な作業だけれど、業務上とても重要な作業 です。
色を操作する効果・目立たせる
・区別する
・印をつける
スケジュール表や会議の資料など、色の操作をすることで見やすい資料を作ることが可能に。
良い例がカレンダーの祝日や休日は赤や青で色分けされていて、とても見やすくなっていますよね。資料を作るときは色の使い方を意識してみましょう
4項目の色の操作・セルの塗り潰し
・文字の色
・罫線の色
・図形の色
色の操作には4つもの項目があるので、適切な場面で適切な項目での色の操作を行いましょう。よく見かけるのが、罫線の色の操作と図形の色の操作(棒線)の区別が曖昧なもの
経験上、罫線の色の操作をした方がキレイな資料が作れます。

豆父ちゃん
色を操作するVBAの紹介
作成したプログラムは果物の色を各項目で表示するというもの
・セルの塗りつぶし
・フォントの色
・罫線の色
・図形(〇)の色
手作業でやるとかなり時間がかかる作業もExcel VBAで一旦プログラムを作ってしまえば一瞬で作業完了
仕事に応用すればいろんな作業の効率化を行うことができます。
なお、当ブログでは紹介しているVBAをアレンジして提供するVBA作成の受注を行っています。
色を操作するVBAを導入してみたいという方はチェックしてみてください。
セルの塗りつぶしを操作
セルの塗りつぶしはInteriorプロパティを使用します。
Range.Interior.プロパティ = 設定値
プロパティ | プロパティと設定値の関係性 |
Color | RGB値を使用 |
ColorIndex | 色定数を使用 |
RGB値を使った色の操作
Range.Interior.Color=RGB(red,green,blue)
カッコの中のredとgreenとblueにそれぞれ0~255の数字を入れて色を調整します。
Range(“A1").Interior.Color = RGB(255,0,0) :A1セルが赤
Range(“A1").Interior.Color = RGB(0,255,0) :A1セルが緑
Range(“A1").Interior.Color = RGB(0,0,255) :A1セルが青
ExcelのツールでRGBの数値を調べる方法
色の設定で下に出てくのがRGBの数値なので、ここで色を調べてプログラムに書き込むというやり方がおすすめです。
色定数を使った色の操作
Range.Interioe.Color=色定数
黒 | vbBlack |
白 | vbWhite |
赤 | vbRed |
青 | vbBlue |
緑 | vbGreen |
黄 | vbTellow |
Range(“A1").Interior.Color = vbRed :A1セルが赤
Range(“A1").Interior.Color = vbGreen :A1セルが緑
Range(“A1").Interior.Color = vbBlue :A1セルが青
色定数よりもRGB値を使った方が幅広い色の調整ができるので、私はRGB値をよく使用しています。

豆父ちゃん
テキストの色の操作
テキストの色の操作はFontプロパティを使用します。
Range.Font.プロパティ = 設定値
プロパティと設定値については上記(セルの塗りつぶし)で説明したものと同じです。

豆父ちゃん
RGB値を使ったテキストの色の操作
Range(“A1").Font.Color = RGB(255,0,0) :A1セルが赤
Range(“A1").Font.Color = RGB(0,255,0) :A1セルが緑
Range(“A1").Font.Color = RGB(0,0,255) :A1セルが青
色の定数を使ったテキストの色の操作
Range(“A1").Font.Color = vbRed :A1セルが赤
Range(“A1").Font.Color = vbGreen :A1セルが緑
Range(“A1").Font.Color = vbBlue :A1セルが青
罫線の色の操作
罫線の色の操作はBordersプロパティを使用します。
Range.Borders.プロパティ = 設定値
プロパティと設定値については上記(セルの塗りつぶし)で説明したものと同じです。
RGB値を使った罫線の色の操作
Range(“A1").Borders.Color = RGB(255,0,0) :A1セル4辺が赤
Range(“A1").Borders(xlEdgeTop).Color = RGB(255,0,0) :A1セル上辺が赤
Range(“A1").Borders(xlEdgeBottom).Color = RGB(255,0,0) :A1セル下辺が赤
Range(“A1").Borders(xlEdgeRight).Color = RGB(255,0,0):A1セル右辺が赤
Range(“A1").Borders(xlEdgeLeft).Color = RGB(255,0,0) :A1セルの左辺が赤
色の定数を使ったテキストの色の操作
Range(“A1").Borders.Color = vbRed :A1セル4辺が赤
Range(“A1").Borders(xlEdgeTop).Color = vbRed :A1セル上辺が赤
Range(“A1").Borders(xlEdgeBottom).Color = vbRed :A1セル下辺が赤
Range(“A1").Borders(xlEdgeRight).Color = vbRed :A1セル右辺が赤
Range(“A1").Borders(xlEdgeLeft).Color = vbRed :A1セルの左辺が赤
図形の色の操作
図形の色の操作は図形の挿入とセットでプログラムを作成
図形の挿入について下記の記事で詳しく紹介しているので参考にして下さい。
With構文を使って図形の挿入と色の操作を行うプログラム
1 | With ActiveSheet.Shapes.AddShape(msoShapeOval, 10, 10, 10, 10) |
2 | .Fill.Visible = msoFalse |
3 | .Line.Weight = 1 |
4 | .Line.ForeColor.RGB = RGB(255, 255, 255) |
5 | End With |
上記プログラムの意味を下記に記載
1 | 図形(円)を挿入 |
2 | 塗りつぶしなし |
3 | 線の太さを調整 |
4 | 線の色の操作 |
5 |

豆父ちゃん
おわりに
色の操作をするプログラムを作れるようになると、いろんな仕事に応用することが可能に
私の職場ではいろんなExcelデータに色を操作するVBAを設定しています。
・名簿
・注文書
・工事契約書
・電気設備の保守台帳
・業務用カレンダー

豆父ちゃん
色を操作することで重要な事項が明確になるといったメリットがうまれ、最終的に作業の効率化につながります。
Excel VBAで色の操作をするプログラムの導入を考えている方は是非参考にしてみて下さい。
色の操作プログラム(一部)を紹介
1 | Sub テスト() |
2 | gyo = Cells(Rows.Count, 1).End(xlUp).Row |
3 | For i = 2 To gyo |
4 | If Cells(i, 1) = “イチゴ" Then |
5 | ""’2列目セルの塗りつぶし""’ |
6 | Range(Cells(i, 2), Cells(i, 2)).Interior.Color = RGB(255, 0, 0) |
7 | ""’3列目にテキストを挿入""’ |
8 | Cells(i, 3) = “イチゴ" |
9 | Range(Cells(i, 3), Cells(i, 3)).Font.Color = RGB(255, 0, 0) |
10 | ""’4列目に罫線を挿入""’ |
11 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalDown).LineStyle = xlContinuous |
12 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalDown).Color = RGB(255, 0, 0) |
13 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalDown).Weight = xlMedium |
14 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalUp).LineStyle = xlContinuous |
15 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalUp).Color = RGB(255, 0, 0) |
16 | Range(Cells(i, 4), Cells(i, 4)).Borders(xlDiagonalUp).Weight = xlMedium |
17 | ""’5列目に図形〇を挿入""’ |
18 | With ActiveSheet.Shapes.AddShape(msoShapeOval, 300, (i * 13.5) – 11, 10, 10) |
19 | .Fill.Visible = msoFalse |
20 | .Line.Weight = 1 |
21 | .Line.ForeColor.RGB = vbRed |
22 | End With |
23 | ほか果物省略 |
24 | Else |
25 | EndIf |
26 | Next |
27 | End Sub |
ディスカッション
コメント一覧
まだ、コメントがありません