第21回.条件付き書式
非常に便利で、ぜひ使いこなしたい機能の1つに、条件付き書式があります。
今回は、この条件付き書式をマクロの記録をしてみましよう。
では、マクロの記録ですが、バージョンによって操作が違うので、
まずは、2007、2010です。
1.マクロの記録
2.条件付き書式
3.新しいルール
4.指定の値を含むセルだけを書式設定
5.「セルの値」「次の以下」「50」
6.書式でフォントを黄色「OK」
7.「OK」
8.条件付き書式
9.新しいルール
10.指定の値を含むセルだけを書式設定
11.「セルの値」「次の以下」「30」
12.書式でフォントを赤色「OK」
13.「OK」
14.記録終了
注意.
マクロの記録をする場合は、ルールの管理→新しいルール
の操作手順はしないで下さい。
マクロに全てのルールが書き出されてしまいます。
作成れたマクロは・・・
Sub Macro4()
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlLessEqual,
_
Formula1:="=50"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With
Selection.FormatConditions(1).Font
.Color =
-16711681
.TintAndShade = 0
End
With
Selection.FormatConditions(1).StopIfTrue =
True
Selection.FormatConditions.Add Type:=xlCellValue,
Operator:=xlLessEqual,
_
Formula1:="=30"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With
Selection.FormatConditions(1).Font
.Color =
-16776961
.TintAndShade = 0
End
With
Selection.FormatConditions(1).StopIfTrue = True
End
Sub
結構長いですね。
FormatConditions.Add
ルールの追加です。
Type:=xlCellValue, Operator:=xlLessEqual, Formula1:="=50"
の指定です。
ここの指定値は、マクロの記録で確認して下さい。
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
これが無い方が良いと思うのですが、
追加したルールを先頭の第1順位にしています。
これが無ければ、出来上がり状態の上から指定していけば良いのですが、
これがあるので、逆順に指定しなければならなくなっています。
FormatConditions(1).Font
(1)は、追加順に、1から振られます。
FormatConditions(1).StopIfTrue = True
Trueでチェック、Falseで未チェックとなります。
では、2003です。
1.マクロの記録
2.条件付き書式
3.「セルの値」「次の以下」「30」
4.書式でフォントを赤色「OK」
5.「追加」
6.「セルの値」「次の以下」「50」
7.書式でフォントを黄色「OK」
8.「OK」
9.記録終了
作成れたマクロは・・・
Sub
Macro1()
Selection.FormatConditions.Delete
Selection.FormatConditions.Add
Type:=xlCellValue, Operator:=xlLessEqual,
_
Formula1:="30"
Selection.FormatConditions(1).Font.ColorIndex =
3
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual,
_
Formula1:="50"
Selection.FormatConditions(2).Font.ColorIndex =
6
End Sub
一転、急に短くなりましたね。
FormatConditions.Delete
FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual,
Formula1:="30"
ルールの追加です。
順に、「セルの値」「次の値未満」「50」
FormatConditions(1).Font.ColorIndex = 3
(1)は、追加順に、1から振られます。
2003での記録は、2007、2010でも動作しますので、
2003でのマクロを使用した方が簡単で良いでしょう。
特に省略する部分もありませんが、
SelectionをWithで指定する位でしょうか。
ただし、
FormatConditions(1)
のように、固定で数値を指定していますが、
マクロ内で、この順番が把握できないような場合は、
以下のように指定して下さい。
Sub Macro1()
Dim myCond As FormatCondition
With
Range("A1")
.FormatConditions.Delete
Set myCond =
.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLessEqual,
Formula1:="30")
myCond.Font.ColorIndex = 3
Set myCond =
.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLessEqual,
Formula1:="50")
myCond.Font.ColorIndex = 6
End With
End
Sub
えーと、これの説明は・・・
オブジェクトの説明を延々としないといけませんので、今回は勘弁して下さい。
簡単に説明すると、
追加と同時に、条件書式のオブジェクトを、変数に入れています。
そして、そのオブジェクト変数に対して、書式を設定しています。
このシリーズは、初心者向けなので、これ以上の説明はかなり逸脱してしまいますので。
同じテーマ「マクロの記録でVBA」の記事
第16回.行の挿入・削除
第17回.並べ替え
第18回.オートフィルタ
第19回.オートフィルタ2
第20回.ジャンプのセル選択
第21回.条件付き書式
第22回.シートの移動コピー
第23回.セルの結合
第24回.印刷
第25回.開く・保存・閉じる
第26回.最終回
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- マクロVBA入門編
- マクロの記録でVBA
- 条件付き書式
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
