【簡単Excelマクロ・VBA】フォント・セルの色の設定|セルの基本操作 #005
いつもありがとうございます。
ノンプログラマー向け「Excelマクロ・VBA解説シリーズ」へようこそ。
本稿では、セルの基本操作のうち「フォントやセルの色設定」を解説いたします。
ことばの意味
- セル
ワークシートのひとつひとつのマス目のことです。 - フォント
文字のデザインのことです。 - ノンプログラマー
プログラミングを主な仕事にしていない人たちのことです。 - マクロ
VBAを使って作成される機能のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
VBAにおける「セルの基本操作」の全体像
マクロを作成するにあたり、セルの操作は何かと必要になります。セルの基本操作の全体像は以下の記事で解説しております。
本稿では、セルの基本操作の一部である「フォントやセルの色の設定」を解説いたします。
VBAで「フォントやセルの色の設定」を行う方法
「テーマの色」の設定 |ThemeColor & TintAndShade プロパティ
色のドロップダウンメニューにある「テーマの色」を設定する方法を解説します。
この設定は、「ThemeColorプロパティ」と「TintAndShadeプロパティ」を使用して行います。
プロパティとは、オブジェクトの属性を指し、その状態を制御したり情報を取得したりするために使用されます。
ことばの意味
- VBAで操作する「対象」のことです。具体的には、Workbook や Worksheet、Range(単一セルや複数セル)などのことを指します。
それぞれのプロパティの役割は次のようになっています。
役割
- ThemeColorプロパティ
オブジェクトの色をテーマカラーで指定するプロパティです。尚、オブジェクトとは、VBAで操作する対象のことです。 - TintAndShade プロパティ
色の明るさを指定するプロパティです。
まず例としてフォントを次の色に設定するコードを書いてみましょう。
コードとその実行結果を次に示します。
' Withステートメントでオブジェクトを指定
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
' テーマカラーを指定
.ThemeColor = xlThemeColorAccent5
' 色の明るさを指定
.TintAndShade = 0
End With
解説していきます。
' Withステートメントでオブジェクトを指定
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
ここでは、With
ステートメントを使用しています。「ステートメント」とは、VBA内で特定の動作を定義する要素のことです。With
ステートメントを使うと、同じオブジェクトに対して複数のプロパティやメソッドを適用する際に、オブジェクトを毎回指定する手間を省くことができます。
この例では、ThisWorkbook
(現在のマクロが記述されているブック)→ Sheet1
→ Cells(2, 2)
→ Font
の順でオブジェクトを指定しています。
' テーマカラーを指定
.ThemeColor = xlThemeColorAccent5
ここでは、フォントのテーマカラーを指定してします。具体的には、フォントのテーマカラーを xlThemeColorAccent5
に指定しています。
xlThemeColorAccent5
が、この色です。
' 色の明るさを指定
.TintAndShade = 0
ここでは、フォントの色の明るさを設定しています。TintAndShade
プロパティは、色の明度を調整するために使用され、-1(最も暗い)から 1(最も明るい)までの値をとります。0は標準色を意味します。
End With
ここでは、With
ステートメントを終了しています。このEnd With
によって、これまでの 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 の範囲で指定し、組み合わせによって色を表現する関数です。
次のコードでは、フォントの色を RGB(192, 0, 0) に設定しています。この指定で、フォントは濃い赤色になります。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
.Color = RGB(192, 0, 0)
End With
前述の「ThemeColor」および「TintAndShade」プロパティと同様に、フォントではなくセルの背景色を設定する場合も、.Font
を .Interior
に置き換えるだけで適用できます。
なお、各標準の色とRGB値の対応は以下の通りです。
※.Color = RGB(255, 255, 0)のみ文字が見にくいため背景を黒にしています。
ColorIndex プロパティ
ColorIndex
プロパティは、Excel が持つ 56 色のパレットから色を設定する方法で、インデックス番号を指定することで色を設定できます。
たとえば、フォントの色を赤に設定したい場合は、以下のように記述します。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
.ColorIndex = 3
End With
なお、色を元の黒色(標準色)に戻す場合は、.ColorIndex
の値を xlAutomatic
に設定します。これにより、セルやフォントの色が自動設定の黒色に戻ります。
With ThisWorkbook.Worksheets("Sheet1").Cells(2, 2).Font
.ColorIndex = xlAutomatic
End With
前述の2つの方法と同様に、フォントではなくセルの背景色を設定したい場合は、.Font
を .Interior
に置き換えることで対応できます。
なお、ColorIndex
プロパティはテーマカラーの導入以降、使用頻度が減っているため、各色に対応する ColorIndex の詳細な解説は割愛いたします。
どうしてもインデックス番号を確認したい場合は、「VBA ColorIndex 一覧」などで検索すると、解説しているサイトが複数見つかりますので、そちらも参考にしてください。
セルの色を”なし”に設定する方法|ColorIndex = xlNone
セルの塗りつぶしの色を「なし」にすることも可能です。これは「白」に設定するのではなく、塗りつぶしを完全に解除することを意味します。Excel画面のメニューで言うと、この操作にあたります。
VBAでセルの塗りつぶし色を「なし」にするには、Interior
の ColorIndex
プロパティに xlNone
を設定します。
ThisWorkbook.Worksheets("Sheet6").Cells(2, 2).Interior.ColorIndex = xlNone
マクロ実行結果は以下の通りです。
おわりに
ご覧いただきありがとうございました。
今回の記事では、セルの基本操作のうち「フォントやセルの色設定」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
筆者の記事関連経験
- VBA使用経験約20年
実務に使用するマクロを多数作成してきました。 - Python 3 エンジニア認定基礎試験
経済産業省が定めたガイドライン「ITスキル標準(ITSS)」に掲載されている民間資格です。
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるよりは、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
甲乙つけがたい場合、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
\チェックしてみよう/
\チェックしてみよう/
\チェックしてみよう/
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。