第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」の記事
第22回.シートの移動コピー
新着記事NEW ・・・新着記事一覧を見る
TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.ブック・シートの選択(Select,Activate)|VBA入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- マクロVBA入門編
- マクロの記録でVBA
- 条件付き書式
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。