Excel Microsoft VBA

『条件付き書式』を設定してみよう!【VBA入門講座#17】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第17回目の今回は

VBAでの条件付き書式設定

について解説していきますので、よろしくお願いします。

前回までのVBAに関するINDEXは下記を参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

続きを見る

 

「条件付き書式」について

★条件付き書式とは、指定した範囲に対して条件を設定し、その条件を満たした場合、セルに対して定めた書式を反映させるものです。

・条件付き書式を追加する場合 ⇒ 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

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!
2020年5月7日公開 |2020年8月23日更新

~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.