ExcelマクロVBA入門 | 第91回.条件付き書式(FormatCondition) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-09-04

第91回.条件付き書式(FormatCondition)


条件付き書式は、シート上で設定しておいた方が良いのですが、


どうしても、マクロでやる必要が出る時もあります。



FormatConditionsコレクション


1 つのセル範囲の条件付き書式のコレクションを表します。



各書式は、コレクションの要素、FormatConditionオブジェクトでになります。


FormatConditionsコレクションのプロパティとメソッドです。

メソッド Add 新しい条件付き書式を追加します。
AddAboveAverage 指定された範囲の条件付き書式ルールを示す新しい AboveAverage オブジェクトを返します。
AddColorScale セルの色でグラデーションを使用して、選択した範囲内に含まれるセルの値の相対的な違いを示す条件付き書式ルールを表す新しい ColorScale オブジェクトを返します。
AddDatabar 指定された範囲のデータ バーの条件付き書式ルールを表す Databar オブジェクトを取得します。
AddIconSetCondition 指定された範囲のアイコン セットの条件付き書式ルールを示す新しい IconSetCondition オブジェクトを返します。
AddTop10 指定された範囲の条件付き書式ルールを示す Top10 オブジェクトを取得します。
AddUniqueValues 指定されたセル範囲の条件付き書式ルーを表す新しい UniqueValues オブジェクトを返します。
Delete オブジェクトを削除します。
Item コレクションから単一のオブジェクトを返します。
プロパティ Application 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。値の取得のみ可能です。
Count コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。値の取得のみ可能です。長整数型 (Long) の値を使用します。
Parent 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。


2007以降のみで使用可能なメソッドプロパティを含んでいます。


Addメソッドのみ説明します。


Addメソッド


式.Add(Type, Operator, Formula1, Formula2)

Type

セル値またはオブジェクト式のどちらを基に条件付き書式を設定するかを指定します。

xlAboveAverageCondition 平均以上の条件
xlBlanksCondition 空白の条件
xlCellValue セルの値
xlColorScale カラー スケール
xlDatabar データバー
xlErrorsCondition エラー条件
xlExpression 演算
XlIconSet アイコン セット
xlNoBlanksCondition 空白の条件なし
xlNoErrorsCondition エラー条件なし
xlTextString テキスト文字列
xlTimePeriod 期間
xlTop10 上位の 10 の値
xlUniqueValues 一意の値
Operator 条件付き書式の演算子を指定します。指定できる定数は、XlFormatConditionOperator クラスの xlBetween、xlEqual、xlGreater、xlGreaterEqual、xlLess、xlLessEqual、xlNotBetween、xlNotEqual のいずれかです。Type が xlExpression の場合、引数 Operator は無視されます。
Formula1 条件付き書式に関連させる値またはオブジェクト式を指定します。定数値、文字列値、セル参照、または数式を指定できます。
Formula2 引数 Operator に xlBetween または xlNotBetween を指定した場合、条件付き書式の 2 番目の部分に関連させる値またはオブジェクト式を指定します。それ以外を指定した場合、この引数は無視されます。定数値、文字列値、セル参照、または数式を指定できます。



使用例.


Range.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, Formula1:="50"


「セルの値」「以下」「50」になります。



書式を設定するのは、FormatConditionオブジェクトです。


FormatConditionオブジェクト


FormatConditionオブジェクトのプロパティとメソッド

メソッド Delete オブジェクトを削除します。
Modify 既存の条件付き書式を変更します。
ModifyAppliesToRange 書式のルールが適用されるセル範囲を設定します。
SetFirstPriority 条件付き書式ルールの優先度の値を "1" に設定し、ワークシート内の他のルールより先に評価されるようにします。
SetLastPriority 条件付き書式ルールの順位を設定し、ワークシート上の他のすべてのルールの後に評価されるようにします。
プロパティ Application 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。値の取得のみ可能です。
AppliesTo 書式ルールを適用するセル範囲を表す Range オブジェクトを返します。
Borders スタイルまたはセル範囲 (条件付き書式の一部として定義された範囲を含む) の罫線を表す Borders コレクションを取得します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。値の取得のみ可能です。長整数型 (Long) の値を使用します。
DateOperator 書式の条件に使用される日付演算子を指定します。値の取得および設定が可能です。
Font 指定したオブジェクトのフォントを表す Font オブジェクトを取得します。
Formula1 条件付き書式または入力規則に使用されている値またはオブジェクト式を返します。定数値、文字列値、セル参照、または数式を使用できます。値の取得のみ可能です。文字列型 (String) の値を使用します。
Formula2 条件付き書式または入力規則の 2 番目の部分に使用されている値またはオブジェクト式を返します。Operator プロパティに xlBetween または xlNotBetween が設定されている場合にだけ、このプロパティを使用できます。定数値、文字列値、セル参照、または数式を指定できます。値の取得のみ可能です。文字列型 (String) の値を使用します。
Interior 指定されたオブジェクトの塗りつぶし属性を表す Interior オブジェクトを取得します。
NumberFormat 条件付き書式ルールが True に評価された場合にセルに適用される表示形式を設定します。値の取得および設定が可能です。バリアント型 (Variant) の値を使用します。
Operator 条件付き書式の演算子を表す長整数型 (Long) の値を返します。
Parent 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。
Priority 条件付き書式ルールの優先度の値を取得、または設定します。優先度は、ワークシート内に複数の条件付き書式ルールが存在する場合、その評価の順序を決定します。
PTCondition 条件付き書式がピボットテーブル チャートに適用されるかどうかを表すブール型 (Boolean) の値を返します。値の取得のみ可能です。
ScopeType 条件付き書式がピボットテーブル チャートに適用される場合、その適用範囲を表す XlPivotConditionScope クラスの定数を取得、または設定します。
StopIfTrue 現在のルールが True に評価された場合、そのセルの書式ルールをさらに評価するかどうかを表すブール型 (Boolean) の値を取得、または設定します。
Text 条件付き書式ルールで使用されるテキスト文字列を指定する文字列型 (String) の値を設定します。
TextOperator 条件付き書式ルールで実行されるテキスト検索を指定する XlContainsOperator クラスの定数の 1 つを設定します。
Type オブジェクトの種類を表す長整数型 (Long) の値を返します。xlFormatConditionType クラスの定数を使用します。


2007以降のみで使用可能なメソッドプロパティを含んでいます。


良く質問されるのが、StopIfTrue


これは、シートの条件付書式の「ルールの管理」のダイアログ



この「条件を満たす場合は停止」になります。Trueで停止です。


FormatConditionオブジェクトに含まれる、下位のオブジェクト

オブジェクト プロパティ
Font Bold
Color
ColorIndex
FontStyle
Italic
Strikethrough
Underline
下線スタイル (会計) は使用できません。
Border Bottom
Color
Left
Right
Style
使用できる罫線の種類は、xlNone、xlSolid、xlDash、xlDot、xlDashDot、xlDashDotDot、xlGray50、xlGray75、xlGray25 です。それ以外はサポートされていません。
Top
Weight
使用できる罫線の太さは、xlWeightHairline および xlWeightThin です。それ以外はサポートされていません。
Interior Color
ColorIndex
Pattern
PatternColorIndex



使用例.


Range.FormatConditions(1).Font.ColorIndex = 3


(1)は、先頭の条件になります。



条件付き書式は、


FormatConditionsコレクション、FormatConditionsオブジェクト、さらに下位のオブジェクトがあり、


それざれに、プロパティ・メソッドを持っています。


これらを全て覚える事は大変ですし、あまり意味がありません。


適宜、マクロの記録を利用して、各プロパティ・メソッドを調べて下さい。



以下も参考にして下さい。


「マクロの記録で覚えるVBA」の第21回.条件付き書式






同じテーマ「ExcelマクロVBA入門」の記事

第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第94回.コメント(Comment)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)
第97回.図形(Shape)
第98回.Findメソッド(Find,FindNext,FindPrevious)

新着記事 ・・・新着記事一覧を見る

SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.CSVの読み込み方法|ExcelマクロVBAサンプル集



  • >
  • >
  • >
  • 条件付き書式(FormatCondition)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP