【VBA】他のセルの値を参照して条件付き書式を適用する方法

条件付き書式は、対象セル自身の値だけでなく、別のセルの値を参照して判定することもできます。
これにより、関連データを基準にした強調表示や比較が可能になります。


1. 基本の考え方

  • 条件式に他セルの参照を入れる
    例:=$E$1="完了"
  • 参照の仕方に注意
    • $ を使うと固定参照(どの行列でも同じセルを参照)
    • 相対参照(=E1)にすると行ごとに変化する(行を追加した際に自動で行の参照先も移動する)

2. VBAコード例(固定セル参照)

「セルE1の値が『完了』のとき、A2:D10の範囲を緑色にする」例です。

Sub 他セルの値で条件付き書式()
    Dim rng As Range
    Set rng = Range("A2:D10")
    
    '条件:セルE1が「完了」の場合
    rng.FormatConditions.Add _
        Type:=xlExpression, _
        Formula1:="=$E$1=""完了"""
    
    '書式:背景を緑
    rng.FormatConditions(1).Interior.Color = RGB(180, 255, 180)
End Sub
  • $E$1 と 絶対参照にすることで、どの行に適用されても必ずE1を判定します。

3. VBAコード例(行ごとの参照)

「C列の値とセルF2を比較して、C列がF2以下なら行全体を赤にする」例です。

Sub 行ごとに他セルと比較する条件()
    Dim rng As Range
    Set rng = Range("A2:D10")
    
    '条件:C列の値がF2以下
    rng.FormatConditions.Add _
        Type:=xlExpression, _
        Formula1:="=$C2<=$F$2"
    
    '書式:背景を赤
    rng.FormatConditions(1).Interior.Color = RGB(255, 200, 200)
End Sub
  • $C2 → 各行のC列を参照(行は相対)
  • $F$2 → 固定セルF2を参照

これにより、各行のC列とF2を比較して行全体に色を付けられます。


4. 応用例

  • 他の列との比較Formula1:="=$C2>$D2" → C列がD列より大きければ強調
  • 外部の基準セルと一致チェックFormula1:="=$B2=$G$1" → B列がセルG1と一致すれば強調

5. まとめ

  • **絶対参照($付き)**で「固定セル」を基準にできる
  • 相対参照を使うと「行ごとに変わるセル」を基準にできる
  • 他のセルを参照すれば、基準値との比較やマスタセルに応じた動的な書式付けが可能になる

コメント

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