【Excel VBA】条件付き書式をVBAで追加する方法を解説

  • 2024.11.15
       
【Excel VBA】条件付き書式をVBAで追加する方法を解説

Excelの機能の1つに、条件付き書式というものがあります。セルの色や文字の太さなどを変更することができ、データをより見やすくするのにとても有効な機能です。

そこで今回は、VBAで条件付き書式を追加する方法について、詳しく解説していきたいと思います。

条件付き書式とは?

条件付き書式とは、設定した条件を満たしている場合に、指定した箇所の背景色文字の大きさなどを変更できる便利な機能です。
例えば、以下の簡単な例を紹介します。

こちらの例では、A2〜B6の範囲内において、セルの値が80を下回る数値だった場合にセルの背景を赤く塗るように設定しています。

このように、あらかじめ条件を設定しておくことで、後からセルの値を書き換えた際にも自動で書式を変更してくれるようになります。

VBAで条件付き書式を使う方法は?

次に、条件付き書式をVBAで書く方法について解説します。
VBAで条件付き書式を設定する場合は、以下のように書きます。

【基本構文】

セル範囲.FormatConditions.Add(Type, Operator, Formula1, Formula2)

引数の内容はそれぞれ以下の通りです。

引数内容
Typeセル値、またはオブジェクト式のどちらを基に条件付き書式を設定するかを指定
Operator条件付き書式の演算子を指定
Type が xlExpression の場合は無視される
Formula1条件付き書式に関連させる値、またはオブジェクト式を指定
定数値、文字列値、セル参照、または数式を指定可能
Formula2引数 Operator に xlBetween または xlNotBetween を指定した場合に、条件付き書式の 2 番目の部分に関連させる値またはオブジェクト式を指定
それ以外を指定した場合、この引数は無視される
定数値、文字列値、セル参照、または数式を指定可能

メソッドを使用した際の例:

Range("A2:B6").FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="60"

また、TypeOperatorについては、以下の選択肢の中から指定をします。

Type:

名前設定条件
xlAboveAverageCondition平均以上の条件
xlBlanksCondition空白の条件
xlCellValueセルの値
xlColorScaleカラー スケール
xlDatabarデータバー
xlErrorsConditionエラー条件
xlExpression演算
xlIconSetsアイコン セット
xlNoBlanksCondition空白の条件なし
xlNoErrorsConditionエラー条件なし
xlTextStringテキスト文字列
xlTimePeriod期間
xlTop10上位10個の値
xlUniqueValues一意の値

Operator:

名前設定条件
xlBetween2つの値の範囲内
xlEqual等しい
xlGreater次の値より大きい
xlGreaterEqual次の値以上
xlLess次の値より小さい
xlLessEqual次の値以下
xlNotBetween2つ値の範囲外
xlNotEqual等しくない

Addメソッドで条件式を追加した後、メソッドで返されたFormatConditionオブジェクトのプロパティで変更したい内容を指定することで、文字を太くしたり、背景の色を変えたりすることができます。

サンプルコードを交えて解説

条件付き書式の具体的な使い方について、サンプルコードをもとに見てみましょう。
今回は、次の表に対して条件を設定していきます。

各教科の点数が記載されているセルに対し、70点よりも低い場合は赤色に、90点以上の場合は青色に背景を塗り潰すよう、コードで指定をします。

【サンプルコード】

Sub sampleFormatCondition()
 Dim fc As FormatCondition

 With Range("B2:E6")

  ' 値が70より小さい場合に背景を赤くする
  Set fc = .FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="70")
  fc.Interior.Color = RGB(255, 80, 80)

  ' 値が90以上の場合に背景を青くする
  Set fc = .FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="90")
  fc.Interior.Color = RGB(30, 170, 255)
    
  End With
End Sub

【実行結果】

このように、VBAで条件付き書式を追加することができます。

【補足】VBAで条件付き書式を削除する方法は?

何かと便利な条件付き書式ですが、コピー&ペーストなどが原因で意図せず重複してしまうケースも少なくありません。

不要な条件が知らずに積み重なり、いつの間にかファイルが重くなってしまった…ということもあるため、状況によっては設定済みの条件付き書式を事前に削除する必要があります。

VBAで条件付き書式を削除する場合は、以下のようにコードを記述します。

Range("セル範囲").FormatConditions.Delete

これで、設定済みの書式を削除することができます。

まとめ

今回は、条件付き書式を使う方法について解説しました。
ぜひ、参考にしてみてください!

関連記事

VBAの勉強方法は?

書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。

ただ、VBAに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。

プログラミングスクールならテックマニアがおすすめ!

ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。

<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~

このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。

     

Otherカテゴリの最新記事