【ExcelVBA入門】VBAで条件付き書式を追加する方法を徹底解説!

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAで条件付き書式を使う方法を知っていますか?

条件付き書式を使うとセルの色を強調し、データを見やすく整理することができるのでおすすめです。

ただ、条件付き書式は機能がとても多いので、VBAで書こうとすると一気に難しいと感じる方も多いと思います。

そこで今回は、

・条件付き書式とは

といった基礎的なことから、

・VBAで条件付き書式を使うために最低限覚えておくこと

・マクロの記録を使ってコードを素早く確認する方法

といった応用的な方法まで、徹底的に解説します!

条件付き書式とは

最初に、条件付き書式について具体例を含め簡単に説明します。

条件付き書式を使えば、以下のようにセルに色を付けてデータを見やすく整理することができます。

条件付き書式 例1:

条件付き書式 例2:

例1では、日付が土日の場合は文字を赤、勤怠表で×になっているセルはグレーアウトするような条件付き書式を設定しています。

例2ではステータス完了の場合は行全体をグレーアウト、遅延している場合は行全体を赤くすることで、タスク管理がしやすいよう条件付き書式を設定しています。

このように、データの変化によって自動で色を変えることができるのが条件付き書式です。

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

次に、条件付き書式をVBAで書く方法について解説します。

VBAで条件付き書式を設定する場合は、以下のように書きます。

各引数の意味:

No引数意味
1Typeルールの種類
2Operator条件
3Formula1条件に指定した値1
4Formula2条件に指定した値2
5StringTypeでxlTextStringを指定したときのみ使用
対象となる文字列を指定
6TextOperatorTypeでxlTextStringを指定したときのみ使用
引数Stringの判定方法を指定
7DateOperatorTypeでxlTimePeriodを指定したときのみ使用
期間を指定
8ScopeType条件付き書式がピボットテーブルに対して適用する場合のみ指定

複数パラメータを設定する場合は「引数名:=設定値」をカンマで区切って以下のように設定します。

また、引数によっていくつか選択肢があるので、表形式で紹介します。

Type:

No意味設定値
1平均以上xlAboveAverageCondition
2空白xlBlanksCondition
3セル値xlCellValue
4カラースケールxlColorScale
5データバーxlDatabar
6エラー条件xlErrorsCondition
7演算xlExpression
8アイコンセットxlIconSets
9空白条件なしxlNoBlanksCondition
10エラー条件なしxlNoErrorsCondition
11文字列xlTextString
12期間xlTimePeriod
13上位10位xlTop10
14一意値xlUniqueValues

Operator:

No意味設定値
1範囲内xlBetween
2等しいxlEqual
3次の値より大きいxlGreater
4以上xlGreaterEqual
5次の値より小さいxlLess
6以下xlLessEqual
7範囲外xlNotBetween
8等しくないxlNotEqual

TextOperator:

No意味設定値
1ではじまるxlBeginsWith
2を含むxlContains
3を含まないxlDoesNotContain
4で終わるxlEndsWith

DetaOperator:

No意味設定値
1過去7日間xlLast7Days
2先月xlLastMonth
3先週xlLastWeek
4来月xlNextMonth
5来週xlNextWeek
6今月xlThisMonth
7今週xlThisWeek
8今日xlToday
9明日xlTomorrow
10昨日xlYesterday

条件式追加後、書式の設定をFormatConditionオブジェクトのプロパティで追加していくことで、文字を太字にしたり、背景色を変えることができます。

マクロの記録を使って素早く書き方を確認する方法とは

先ほどのプロパティをみて、覚えるのが無理だ・・・と思った方も多いのではないでしょうか。

1つずつ覚えていけば覚えられるかもしれませんが、全てをいきなり覚えるのは難しいですよね。

そんな時はマクロの記録で一旦操作を確認するのがおすすめです!

マクロの記録で操作保存

保存したコードを見る

この記事の引数の意味を見つつコードを修正

の流れで書くことで、出来上がったコードと動きを見つつ修正ができるのでおすすめです!

マクロの記録の使い方については以下記事で詳しく解説しているため、使ったことがない方は見てみてくださいね!

【ExcelVBA入門】マクロの記録を使って簡単にマクロを作る方法とは
更新日 : 2019年9月1日

サンプルコード

最後に、サンプルコードを用意したので紹介します。

VBA実行前のシート:

サンプルコード

VBA実行後のシート:

とても簡単な例ですが、指定した範囲のセルの中に「×」があるセルを太字・グレーアウトに変更しています。

FormatConditions.Add」で条件付き書式を設定し、「Font.Bold」で太字、「Interior.Color」で背景色グレーを設定しています。

まとめ

今回は、VBAで条件付き書式を使う方法について解説しました。

条件付き書式は機能が多いですが、一度にすべて覚える必要はありません!

最後に紹介したマクロの記録を使いつつ、わからない部分のみググったりこの記事をみればOKです。

データの見やすさは作業効率にも影響するので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説