VBAによる色の操作【 色の変更を自動処理~サンプルを使って紹介~ 】

Excel業務でテキストの色の操作セルの塗りつぶしの色の操作を効率的に使えていますか

色を操作する作業は意外と時間がかかるうえに条件が多い作業だと精神的にも疲れますよね!そんなときに便利なのがVBAによる色の操作です。

VBAを使えばいろんな項目の色の操作を一瞬で処理することができ、さらに関数IFFor~Nextと組み合わせて使えばいろんな業務に応用することも可能。

そんな、単純だけど精神的に疲れる作業である色の操作のVBAを紹介します。

 

関数IFやFor~Nextの使い方下記の記事で紹介しています。

 

色の操作とは

色の操作とはテキストの色を変える、セルの塗りつぶしの色を変えるなどのことで単純な作業だけれど、業務上とても重要な作業 です。

 

色を操作する効果・目立たせる

・区別する

・印をつける

 

スケジュール表や会議の資料など、色の操作をすることで見やすい資料を作ることが可能に。

良い例がカレンダーの祝日や休日は赤や青で色分けされていて、とても見やすくなっていますよね。資料を作るときは色の使い方を意識してみましょう

 

4項目の色の操作・セルの塗り潰し

・文字の色

・罫線の色

・図形の色

 

色の操作には4つもの項目があるので、適切な場面で適切な項目での色の操作を行いましょう。よく見かけるのが、罫線の色の操作図形の色の操作(棒線)の区別が曖昧なもの

経験上、罫線の色の操作をした方がキレイな資料が作れます。

 

Left Caption

豆父ちゃん

 

罫線の色の操作で表現できないものを図形の色の操作(棒線)で行うといいでしょう

色を操作する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値をよく使用しています。

 

Left Caption

豆父ちゃん

いろいろ試して自分に合った方法を見つけよう

テキストの色の操作

テキストの色の操作はFontプロパティを使用します。

Range.Font.プロパティ = 設定値

プロパティと設定値については上記(セルの塗りつぶし)で説明したものと同じです。

 

Right Caption

豆父ちゃん

セルの塗りつぶしで紹介したInteriorが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

 

Left Caption

豆父ちゃん

図形の挿入、塗りつぶしの調整、線の太さを調整、円の色の操作をセットで覚えちゃいましょう

 

おわりに

色の操作をするプログラムを作れるようになると、いろんな仕事に応用することが可能に

私の職場ではいろんなExcelデータに色を操作するVBAを設定しています。

 

・名簿

・注文書

・工事契約書

・電気設備の保守台帳

・業務用カレンダー

 

Left Caption

豆父ちゃん

使用頻度の高い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