VBAで条件付き書式のアイコンセットを設定する

Range.FormatConditions.AddIconsetConditionメソッド

指定セル範囲の値の大きさによって異なるアイコンを表示する条件付き書式を設定する場合に、Range.FormatConditions.AddIconsetConditionメソッドを利用します。

AddIconsetConditionメソッドを実行すると戻り値としてIconSetConditionオブジェクトが返されます。

IconSetConditionオブジェクトの各プロパティを設定することで条件に一致した場合にセルに装飾する設定を行います。

なお、AddIconsetConditionメソッドの代わりにRange.FormatConditions.Addメソッドの引数TypeでxlIconSetsを指定した場合でも同じようにアイコンセット表示のルールの設定を行うことが可能です。

構文

Range.FormatConditions 親オブジェクトとして指定します。
IconSetCondition 戻り値としてIconSetConditionオブジェクトを返します。

IconSetConditionオブジェクトのプロパティ

AddIconsetConditionメソッドで返されるIconSetConditionオブジェクトの各種プロパティを利用して書式を設定します。

Application IconSetConditionオブジェクトを作成したApplicationオブジェクトを取得します。値の取得のみ可能です。
AppliesTo 書式ルールが適用されているセル範囲を表す Range オブジェクトを返します。
Creator IconSetConditionオブジェクトを作成したアプリケーションを 32 ビットの整数値で返します。値の取得のみ可能です。長整数型 (Long) の値を使用します。
Formula アイコンセットが適用される値を決定する数式を表す文字列型 (String) の値を設定します。
IconCriteria アイコンセットの条件付き書式ルールのアイコンの設定を保持するIconCriterionオブジェクトのコレクションであるIconCriteriaコレクションを返します。
IconSet 条件付き書式ルールで使用するアイコンセットを割り当てます。割り当てるアイコンセットは以下のXlIconSet列挙型から選択します。

定数 内容
xl3Arrows 1 色違いの3つの矢印
xl3ArrowsGray 2 灰色の3つの矢印
xl3Flags 3 3つのフラグ
xl3Signs 6 3つの図形
xl3Stars 18 3つの星
xl3Symbols 7 3つの丸囲みの記号
xl3Symbols2 8 3つの丸囲みなしの記号
xl3TrafficLights1 4 既定値。3つの枠なし信号
xl3TrafficLights2 5 3つの枠あり信号
xl3Triangles 19 4つの信号
xl4Arrows 9 色違いの4つの矢印
xl4ArrowsGray 10 灰色の4つの矢印
xl4CRV 12 4段階評価
xl4RedToBlack 11 赤と黒の段階の丸
xl4TrafficLights 13 4つの信号
xl5Arrows 14 色違いの5つの矢印
xl5ArrowsGray 15 灰色の5つの矢印
xl5Boxes 20 5種類のボックス
xl5CRV 16 5段階評価
xl5Quarters 17 白黒の丸

実際のアイコンセットは以下になります。

Parent IconSetConditionオブジェクトの親オブジェクトを返します。値の取得のみ可能です。
PercentileValues アイコンセットの条件付き書式のしきい値が百分位を使用する場合はTrue、そうでない場合はFalseを取得または設定します。
Priority 条件付き書式ルールの優先度の値を取得、または設定します。優先度は、ワークシート内に複数の条件付き書式ルールが存在する場合、その評価の順序を決定します。
PTCondition 条件付き書式がピボットテーブルに適用されるかどうかを表すブール型 (Boolean) の値を返します。値の取得のみ可能です。Trueが適用され、Falseまたは省略時は適用されません。
ReverseOrder アイコンセットのアイコンの順がTrueの場合は正順、Falseの場合は逆順になっていることを取得または設定します。
ScopeType 条件付き書式がピボットテーブルに適用される場合、その適用範囲を表す XlPivotConditionScope 列挙型の定数を取得または設定します。

定数 内容
xlDataFieldScope 2 指定されたフィールドのデータに基づく
xlFieldsScope 1 指定されたフィールドに基づく
xlSelectionScope 0 指定された選択基準に基づく
ShowIconOnly アイコンのみを表示する場合はTrue、値とアイコンを表示する場合はFalseを設定します。
StopIfTrue 現在のルールが True に評価された場合、そのルール以降より下位優先度のルールを設定するかどうかをBoolean型で指定します。Trueの場合は下位優先度のルールは設定されません。
Type 条件付き書式の種類を表すXlFormatConditionType列挙型の定数xlIconSets(アイコンセット。値=6)を返します。値の取得のみ可能です。



サンプルコード

A列で値を設定した場合にアイコンセットを表示するサンプルコードです。色違いの3つの矢印を表示します。

コード説明

処理自体はコードのコメントの通りなのですが、注意点として書式の設定はIconSetConditionオブジェクトに対して行う必要があるため、IconSetConditionオブジェクトを返すAddIconSetConditionメソッドが終わったあとにしなければなりません。

また、アイコンセットが持つアイコンの数に合わせて、IconCriteriaコレクションの各IconSetConditionオブジェクト(サンプルコードの12行目のIconCriteria(2)や18行目のIconCriteria(3))に対して個別に設定を行う必要があります。

実行結果

上のコードを実行すると以下のようになります。例としてA列に1から順に入力しています。

条件付き書式は以下のようになります。

関連記事

サブコンテンツ

このページの先頭へ