Range.FormatConditions.Addメソッド
条件付き書式の設定を行うにはRangeオブジェクトの条件付き書式を管理するFormatConditionsコレクションのAddメソッドを使います。
Addメソッドは「条件付き書式ルールの管理」ダイアログの「新規ルール」ボタンに該当します。
AddメソッドによりFormatConditionオブジェクトが返されます。この時点でFormatConditionsコレクションに追加された状態になります。上の画像に追加した場合はFormatConditions(4)が追加された状態になります。
あとは書式の設定をFormatConditionオブジェクトのFontプロパティ(文字設定)、Interiorプロパティ(背景色)、Borderプロパティ(罫線)などの設定を行います。ここは書き方に特徴があるためサンプルコードを参照してください。
構文
Excel2003までの場合
1 |
Function Range.FormatConditions.Add(Type As XlFormatConditionType, [Operator As XLFormatConditionOperator], [Formula1], [Formula2]) As FormatCondition |
Excel2007以降
1 |
Function Range.FormatConditions.Add(Type As XlFormatConditionType, [Operator As XLFormatConditionOperator], [Formula1], [Formula2], [String], [TextOperator As XlContainsOperator], [DateOperator As XlTimePeriods], [ScopeType As XlPivotConditionScope]) As FormatCondition |
AddメソッドはExcel2003までは引数が4個ですが、2007以降では8個に増えています。
しかし、Microsoftのヘルプでは4個までしか記載がありません。
https://msdn.microsoft.com/ja-jp/VBA/Excel-VBA/articles/formatconditions-add-method-excel
ヘルプに書いていない分も含めて引数は以下で説明します。
Type | 条件付き書式の種類をXlFormatConditionType列挙型の定数で指定します。
|
|||||||||||||||||||||||||||||||||||||||||||||
Operator | 条件付き書式の演算子をXLFormatConditionOperator列挙型の定数で指定します。引数TypeがxlExpressionの場合は無視されます。省略可能です。
|
|||||||||||||||||||||||||||||||||||||||||||||
Formula1 | 条件の値となる数値、文字列、セル参照、数式を設定します。省略可能です。 | |||||||||||||||||||||||||||||||||||||||||||||
Formula2 | 引数OperatorがxlBetween(範囲内)、または、xlNotBetween(範囲外)の場合に引数Formula1に対応する値を設定します。省略可能です。 | |||||||||||||||||||||||||||||||||||||||||||||
String | 引数TypeでxlTextString(文字列)を指定した場合に対象となる文字列を指定します。この場合は引数Formula1と引数Formula2は無視されます。省略可能です。 | |||||||||||||||||||||||||||||||||||||||||||||
TextOperator | 引数TypeでxlTextString(文字列)を指定した場合に引数Stringの判定方法をXlContainsOperator列挙型で指定します。省略可能です。
|
|||||||||||||||||||||||||||||||||||||||||||||
DateOperator | 引数TypeでxlTimePeriod(期間)を指定した場合に対象の期間をXlTimePeriods列挙型で指定します。省略可能です。
|
|||||||||||||||||||||||||||||||||||||||||||||
ScopeType | 条件付き書式がピボットテーブルに対して適用する場合に、XlPivotConditionScope列挙型で指定します。
|
サンプルコード
A列に1を入力した場合に、セルの背景色などを設定するサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub FormatCollectionsAddTest() Dim r As Range Dim f As FormatCondition '// 対象範囲指定 Set r = Range("A:A") '// 条件付き書式の追加(セルに1が入力された場合) Set f = r.FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:=1) '// フォント太字、文字色、背景色 f.Font.Bold = True f.Font.Color = RGB(20, 140, 150) f.Interior.Color = RGB(200, 250, 180) f.Borders.LineStyle = xlContinuous End Sub |
実行結果
条件付き書式の設定は以下のように登録されます。
この状態でA列に1を入力すると以下のようになります。