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"
また、TypeとOperatorについては、以下の選択肢の中から指定をします。
Type:
名前 | 設定条件 |
xlAboveAverageCondition | 平均以上の条件 |
xlBlanksCondition | 空白の条件 |
xlCellValue | セルの値 |
xlColorScale | カラー スケール |
xlDatabar | データバー |
xlErrorsCondition | エラー条件 |
xlExpression | 演算 |
xlIconSets | アイコン セット |
xlNoBlanksCondition | 空白の条件なし |
xlNoErrorsCondition | エラー条件なし |
xlTextString | テキスト文字列 |
xlTimePeriod | 期間 |
xlTop10 | 上位10個の値 |
xlUniqueValues | 一意の値 |
Operator:
名前 | 設定条件 |
xlBetween | 2つの値の範囲内 |
xlEqual | 等しい |
xlGreater | 次の値より大きい |
xlGreaterEqual | 次の値以上 |
xlLess | 次の値より小さい |
xlLessEqual | 次の値以下 |
xlNotBetween | 2つ値の範囲外 |
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とは
- Excelで覚えておくべき17の基本関数と目的別逆引き一覧
- オートフィルターの設定・解除方法
- メッセージボックスの設定方法
- セルの値を取得・上書きするValueプロパティの使い方を解説
- 【Excel VBA】Functionの使い方を解説(宣言・引数、戻り値の指定、応用法)
VBAの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、VBAに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。