第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 ・・・新着記事一覧を見る
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門
- ホーム
- マクロVBA入門編
- マクロの記録でVBA
- 条件付き書式
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。