【簡単エクセル/Excel VBA マクロ】フォント・セルの色の設定|セルの基本操作 #005

アフィリエイト広告を利用しています。
Information
運営者・ポテ

いつもありがとうございます!

皆さん、こんにちは。ご覧いただきありがとうございます。

“日々の業務にちょうどいい自動化を”──

業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。

本稿では、セルの基本操作のうち「フォントやセルの色設定」を解説します。

Information
  • フォント
    文字のデザインのことです。

この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。

VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。

VBAにおける「セルの基本操作」の全体像

マクロを作成するにあたり、セルの操作は何かと必要になります。セルの基本操作の全体像は以下の記事で解説しています。

この記事では、セルの基本操作の一部である「フォントやセルの色の設定」を解説します。

VBAで「フォントやセルの色の設定」を行う方法

「テーマの色」の設定 |ThemeColor & TintAndShade プロパティ

色のドロップダウンメニューにある「テーマの色」を設定する方法を解説します。

テーマの色

この設定は、「ThemeColorプロパティ」と「TintAndShadeプロパティ」を使用して行います。

プロパティとは、オブジェクトの属性を指し、その状態を制御したり情報を取得したりするために使用されます。

Information

オブジェクト
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(現在のマクロが記述されているブック)→ Sheet1Cells(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でセルの塗りつぶし色を「なし」にするには、InteriorColorIndex プロパティに xlNone を設定します。

ThisWorkbook.Worksheets("Sheet6").Cells(2, 2).Interior.ColorIndex = xlNone

マクロ実行結果は以下の通りです。

マクロ実行前
マクロ実行後
運営者・ポテ

ご覧いただきありがとうございました!

VBAスキルアップの参考情報

近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。

分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。

とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。

全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。

そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。

「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。

VBAのスキルアップ

VBAを学び始めるなら

入門書は、どれを選んでも大きな差はないように感じます。

どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。

もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。

基礎を超えて力をつけたいなら

私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。

今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。

このレベルの本を一冊持っておくことに、損はないでしょう。


資格で能力を証明したいなら

VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。

特に「スタンダード」の方は上級者向けです。

あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。

以下の公式テキストが販売されています。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。

これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。

今はAIにコードを尋ねれば、答えが返ってくる時代です。

しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。


こちらの記事でも紹介しています。もしよろしければご覧ください。

【初心者歓迎】無料相談受付中 

運営者・ポテ

いつもありがとうございます!

限られた時間をより良く使い、日本の生産性を高めたい──

みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。

お気軽にご相談ください。


こちらの記事でも紹介しております。

おわりに

運営者・ポテ

ご覧いただきありがとうございました。

今回の記事では、セルの基本操作のうち「フォントやセルの色設定」を解説しました。

お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。

この記事が皆様のお役に立てれば幸いです。

なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。

この記事を書いた人

ポテ
ポテソフトデザイン工房|日々の業務にちょうどいい自動化を
■人生を追求する凡人 ■日本一安全で、気の向くままに自分の時間を過ごせる、こだわりのキャンプ場を作るのが夢 ■ソフトデザイン工房運営(個人事業者) - 業務改善アプリケーションをご提供 ■人生は時間そのもの。ひとりでも多くの人が「より良い人生にするために時間を使って欲しい」と願い、仕事のスキルの向上、余暇の充実、資産形成を追求。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です