
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。
仕事の改善や個人的な知識向上に役立ててください(^o^)
第17回目の今回は
VBAでの条件付き書式設定
について解説していきますので、よろしくお願いします。
前回までのVBAに関するINDEXは下記を参照してくださいね。
↓サブログ内部リンク(VBA用INDEX)↓
-
-
目次
Excel VBA講座-目次(INDEX)
サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...
続きを見る
「条件付き書式」について
★条件付き書式とは、指定した範囲に対して条件を設定し、その条件を満たした場合、セルに対して定めた書式を反映させるものです。
・条件付き書式を追加する場合 ⇒ FormatConditions.Add ("新規ルール"に該当)
・条件付き書式を編集する場合 ⇒ FormatConditions.Modify ("ルールの編集"に該当)
・条件付き書式を削除する場合 ⇒ FormatConditions.Delete ("ルールの削除"に該当)
セル範囲.FormatConditions.Add(Type, [Operator], [Formula1],[Formula2],[String],[TextOperator],[DateOperator],[ScopeType])
Type | 条件付き書式(ルール)の種類 |
Operator | 条件(演算子) |
Formula1 | 1つめの条件に指定した値1 |
Formula2 | 2つめの条件に指定した値2 |
String | TypeでxlTextStringを指定したときのみ使用対象となる文字列を指定 |
TextOperator | TypeでxlTextStringを指定したときのみ使用引数Stringの判定方法を指定 |
DateOperator | TypeでxlTimePeriodを指定したときのみ使用期間を指定 |
ScopeType | 条件付き書式がピボットテーブルに対して適用する場合のみ指定 |
「Type」の選択肢
★条件付き書式の種類を指定します。
平均以上 | xlAboveAverageCondition |
空白 | xlBlanksCondition |
セルの値 | xlCellValue |
カラースケール | xlColorScale |
データバー | xlDatabar |
エラー条件 | xlErrorsCondition |
演算 | xlExpression |
アイコンセット | xlIconSets |
空白の条件なし | xlNoBlanksCondition |
エラー条件なし | xlNoErrorsCondition |
文字列 | xlTextString |
期間 | xlTimePeriod |
上位10位 | xlTop10 |
一意値 | xlUniqueValues |
「Operator」の選択肢
★条件付き書式の演算子を指定します。引数TypeがxlExpressionの場合は無視されます。省略可能です。
範囲内 | xlBetween |
等しい | xlGreater |
次の値より大きい | xlCellValue |
以上 | xlGreaterEqual |
次の値より小さい | xlLessEqual |
以下 | xlDatabar |
範囲外 | xlNotBetween |
等しくない | xlNotEqual |
「Formula1」とは?
★条件付き書式に関連させる値またはオブジェクト式を指定します。定数値、文字列値、セル参照、または数式を指定できます。省略可能です。
「Formula2」とは?
★引数 Operator に xlBetween(範囲内)または xlNotBetween(範囲外) を指定した場合、条件付き書式の2番目の部分に関連させる値またはオブジェクト式を指定します。それ以外を指定した場合、この引数は無視されます。定数値、文字列値、セル参照、または数式を指定できます。省略可能です。
「String」とは?
★引数TypeでxlTextString(文字列)を指定した場合に対象となる文字列を指定します。この場合は引数Formula1と引数Formula2は無視されます。省略可能です。
「TextOperator」の選択肢
★引数TypeでxlTextString(文字列)を指定した場合に引数Stringの判定方法を指定します。省略可能です。
~で始まる | xlBeginsWith |
~を含む | xlContains |
~を含まない | xlDoesNotContain |
~で終わる | xlEndsWith |
「DetaOperator」の選択肢
★引数TypeでxlTimePeriod(期間)を指定した場合に対象の期間を指定します。省略可能です。
過去7日間 | xlLast7Days |
先月 | xlLastMonth |
先週 | xlLastWeek |
来月 | xlNextMonth |
来週 | xlNextWeek |
今月 | xlThisMonth |
今日 | xlToday |
明日 | xlTomorrow |
来週 | xlNextWeek |
昨日 | xlYesterday |
「ScopeType」の選択肢
★条件付き書式がピボットテーブルに対して適用する場合に指定します。
指定されたフィールドのデータに基づく | xlDataFieldScope |
指定されたフィールドに基づく | xlFieldsScope |
指定された選択基準に基づく | xlSelectionScope |
「条件付き書式」を編集する方法
設定済みの条件付き書式を編集するには、『Modify』メソッドを使用します。またある一つの条件付き書式を修正する場合は、"FormatConditions"プロパティの”( )”内の引数にインデックス番号を指示します。※『Add』メソッドと似ていますが、詳細は別途別の記事で説明予定
「条件付き書式」を削除する方法
設定済みの条件付き書式を削除するには、『Delete』メソッドを使用します。またある一つの条件付き書式を削除する場合は、"FormatConditions"プロパティの( )内の引数にインデックス番号を指示します。
Sub 条件付き書式のクリア()
Columns("C:C").Select
Selection.FormatConditions.Delete
End Sub
「条件付き書式」を使用した例
例1) 選択したセル範囲(C列)にて、"AB"が含まれているセルを赤色塗り潰しにする。
Sub 例1()
Columns("C:C").Select
Selection.FormatConditions.Add Type:=xlTextString, String:="AB", TextOperator:=xlContains’文字列に"AB"を含んでいる場合
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255’色は赤で塗りつぶす
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False’「条件を満たす場合は停止」は未チェック
End Sub
例2) 選択したセル範囲(C列)にて、値が10より大きいセルを赤色塗り潰しにする。
Sub 例2()
Columns("C:C").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=10"、値が10より大きい場合
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255’色は赤で塗りつぶす
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False’「条件を満たす場合は停止」は未チェック
End Sub

下のVBA講座も是非ご覧下さい!!
関連
前回のVBA講座(第16回)
シートの移動方法【VBA入門講座#16】
関連
次回のVBA講座(第18回)