第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 ・・・新着記事一覧を見る
新旧マスタの差異比較|Power Query(M言語)入門(2023-02-28)
有効な最新単価の取得|Power Query(M言語)入門(2023-02-26)
有効な最新単価の取得|Power Query(M言語)入門(2023-02-21)
グルーブ内の最小・最大|Power Query(M言語)入門(2023-02-17)
2つのテーブルのマージ|Power Query(M言語)入門(2023-02-15)
「売上」が数値の行のみ取り込む|Power Query(M言語)入門(2023-02-13)
A列のヘッダー名を変更する|Power Query(M言語)入門(2023-02-11)
CSVのA列が日付の行だけを取り込む|Power Query(M言語)入門(2023-02-10)
列数不定のCSVの取り込み|Power Query(M言語)入門(2023-02-09)
別ブックの最終シートの取り込み|Power Query(M言語)入門(2023-02-08)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.Excelショートカットキー一覧|Excelリファレンス
9.並べ替え(Sort)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説
- ホーム
- マクロVBA入門編
- マクロの記録でVBA
- 条件付き書式
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。