【簡単エクセルマクロ・VBA】フォント・セルの色設定|セルの基本操作 #005
いつもありがとうございます。
これは、ノンプログラマー向けのエクセルマクロ・VBA解説シリーズです。
本稿では、セルの基本操作のうち「フォントやセルの色設定」を解説いたします。
ことばの意味
- セル
ワークシートのひとつひとつのマス目のことです。 - フォント
文字のデザインのことです。 - ノンプログラマー
プログラミングを本職としない人たちのことです。 - マクロ
VBAを使って作成される機能のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
筆者の記事関連経験/資格
- VBA使用経験 約20年
- Python 3 エンジニア認定基礎試験 合格
一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。
VBAにおける「セルの基本操作」の全体像
マクロを作成するにあたり、セルの操作は何かと必要になります。セルの基本操作の全体像は以下の記事で解説しております。
本稿では、セルの基本操作の一部である「フォントやセルの色設定」を解説いたします。
VBAで「フォントやセルの色設定」を行う方法
「テーマの色」の設定 |ThemeColor & TintAndShade プロパティ
色のドロップダウンメニューにある「テーマの色」を設定する方法を解説します。
これは 「ThemeColor プロパティ」と「TintAndShade プロパティ」で行うことができます。
プロパティとは属性のことです。オブジェクトの状態を制御したり、情報を取得したりするために使用されます。
ThemeColor プロパティと TintAndShade プロパティは、それぞれ以下の役割となっています。
- ThemeColorプロパティ
オブジェクトの色をテーマカラーで指定するプロパティです。尚、オブジェクトとは、VBAで操作する対象のことです。 - TintAndShade プロパティ
色の明るさを指定するプロパティです。
まず例としてフォントを以下の色に設定するコードを書いてみましょう。
以下のようにコードを記述します。
' Withステートメントでオブジェクトを指定
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
' テーマカラーを指定
.ThemeColor = xlThemeColorAccent5
' 色の明るさを指定
.TintAndShade = 0
End With
マクロの実行結果は以下の通りです。
解説します。
まず、1行目は With ステートメントです。
「ステートメント」とは、VBAの中で何らか固有の働きをすることを定義したものの呼称です。
With ステートメントを使うと、同じオブジェクトに対して複数の処理をしたい場合に、オブジェクトを繰り返し指定しなくてもよくなります。
ここでは、ThisWorkbok (マクロを記述しているブック)--> Sheet1 --> Cells(2, 2) --> Font をオブジェクトとして指定しています。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
2行目は、フォントのテーマカラーを指定してします。具体的には、テーマカラーを xlThemeColorAccent5 に指定しています。
' テーマカラーを指定
.ThemeColor = xlThemeColorAccent5
xlThemeColorAccent5 が、この色です。
3行目は、色の明るさを指定しています。TintAndShade は、-1(最も暗い)から1(最も明るい)の値をとります。0は標準色を意味します。
' 色の明るさを指定
.TintAndShade = 0
4行目は、With ステートメントの終了を意味します。
End With
以上が、「ThemeColor プロパティ」と「TintAndShade プロパティ」による色の設定法方です。
また、フォントではなくセルを塗りつぶす場合には、以下のように .Font を .Interior に置き換えるだけです。
With ThisWorkbook.Worksheets("Sheet4").Cells(2, 2).Interior
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0
End With
マクロの実行結果は以下の通りです。
尚、各プロパティにおける数値と色は以下のように対応してします。
※xlThemeColorDark1 のみ文字が見にくいため背景を黒にしています。
「標準の色」の設定|Color プロパティ & RGB関数
Color プロパティと RGB 関数を使用して色を設定するには、以下のように記述します。
尚、関数とは、特定の処理をまとめたもののことです。入力値を受け取り、それに基づいた結果を出力します。
RGB関数は、赤(R)、緑(G)、青(B)の値をそれぞれ 0 から 255 の範囲で指定することにより色を表現する関数です。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
.Color = RGB(192, 0, 0)
End With
マクロの実行結果は以下の通りです。
方法①と同様に、フォントではなくセルの色を塗りつぶす場合は、 .Font を .Interior に置き換えるだけです。
尚、各標準の色とRGB値の対応は以下の通りです。
※.Color = RGB(255, 255, 0)のみ文字が見にくいため背景を黒にしています。
ColorIndex プロパティ
ColorIndex プロパティ は、エクセルがもっている56色のパレットに対応するインデックス番号を指定することで色を設定する方法です。
例えば、フォントの色を赤に設定するには以下のように記述します。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
.ColorIndex = 3
End With
マクロの実行結果は以下の通りです。
以上が、ColorIndex プロパティでの色の設定方法です。
尚、色を元の黒色に戻すには .ColorIndex の値を xlAutomatic にします。
方法①・②と同様に、フォントではなくセルの色を塗りつぶす場合は、 .Font を .Interior に置き換えるだけです。
ColorIndex プロパティは、テーマの色が登場して以降、使う機会が少ないと思いますので、各色に対応する color index の解説は割愛いたします。
どうしても調べたい場合には「vba ColorIndex 一覧」等のワードで検索すると、解説しているサイトが複数ヒットします。
セルの色を”なし”に設定する方法|ColorIndex = xlNone
セルの塗りつぶしの色を「なし」にすることもできます。「白」ではなく「なし」です。エクセル画面のメニューで言うと、この操作にあたります。
VBAでセルの色を「なし」にするには、以下のように Interior の ColorIndex プロパティに xlNone を設定します。
ThisWorkbook.Worksheets("Sheet6").Cells(2, 2).Interior.ColorIndex = xlNone
マクロ実行結果は以下の通りです。
おわりに
ご覧いただきありがとうございました。
今回の記事では、セルの基本操作のうち「フォントやセルの色設定」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。