【VBA】数式条件の基本ルール(Formula1の指定方法)

条件付き書式をVBAで扱うとき、数式を使った条件を設定することができます。
このとき、条件式は Formula1 プロパティに数式として指定します。


1. 数式条件の指定方法

基本の書き方は次の通りです。

Sub 数式条件の基本()
    Dim rng As Range
    Set rng = Range("A1:A10") '対象範囲
    
    '数式を条件にして書式を設定
    rng.FormatConditions.Add _
        Type:=xlExpression, _
        Formula1:="=A1>100"
    
    '書式の指定(背景を黄色)
    rng.FormatConditions(1).Interior.Color = RGB(255, 255, 150)
End Sub

2. 重要なポイント

  1. Type:=xlExpression を指定する
    • xlCellValue → セルの値を直接比較する条件
    • xlExpression → 数式を使った柔軟な条件
    数式条件を使う場合は必ず xlExpression を指定します。
  2. Formula1は「=」から始める
    • Excelと同じく、条件式は「=A1>100」のように「=」から記述する必要があります。
  3. 対象範囲の左上セルを基準に考える
    • Formula1 に書く数式は、範囲の 左上セルを基準 として記述します。
    • 上の例では Range("A1:A10") を対象にしているため、式の参照は A1 (=A1>100)を基準にします。
      Range("B1:B10")が対象の場合は、式の参照は B1 (=B1>100)を基準にします。

3. 具体例

例えば「A列の値が100を超えたら背景色を黄色」にしたい場合:

rng.FormatConditions.Add _
    Type:=xlExpression, _
    Formula1:="=A1>100"

rng.FormatConditions(1).Interior.Color = RGB(255, 255, 150)

この条件は範囲全体に適用され、各セルごとに「そのセルの値が100より大きいか」を判定します。


4. まとめ

  • 数式条件を使うには Type:=xlExpression を指定する
  • Formula1 には「=」から始まる数式を入れる
  • 範囲の左上セルを基準に数式を書く

数式条件を使うことで、単純な値の比較だけでなく、他のセル参照や複数条件を使った柔軟な判定が可能になります。

コメント

タイトルとURLをコピーしました