応用例をいくつか紹介します。条件付きで色を変える方法や、複数セルに違う数式を入れる方法を例題形式でまとめますね。
条件によってセルの色を変える
例えば「値が0以下なら赤色にする」処理です。
Sub 条件で色を変える()
Dim c As Range
For Each c In Range("A1, C2:D5")
If IsNumeric(c.Value) Then
If c.Value <= 0 Then
c.Interior.Color = RGB(255, 200, 200) ' 薄い赤
Else
c.Interior.Color = RGB(200, 255, 200) ' 薄い緑
End If
End If
Next c
End Sub
VB👉 このように「If文」で条件を判定し、色を変えることができます。
複数セルに違う数式を入れる
「セルごとに違う数式を入れる」場合は、ループでセルごとに処理します。
例1: 行番号を使った数式
Sub 行番号ごとに数式を入れる()
Dim c As Range
For Each c In Range("B2:B6")
c.Formula = "=A" & c.Row & "*2"
Next c
End Sub
VB👉 B列に「A列の値×2」という数式が、行ごとに自動で入ります。
例2: 列番号を使った数式
Sub 列番号ごとに数式を入れる()
Dim c As Range
For Each c In Range("C1:E1")
c.Formula = "=ROW()*" & c.Column
Next c
End Sub
VB👉 C1~E1に「行番号×列番号」の数式が入ります。
応用のポイント
- 条件付き色付け →
If文で判定し、.Interior.Colorを変更 - セルごとに違う数式 →
For Eachでセルを回し、.Formulaに文字列を組み立てて代入 - セルの位置情報 →
c.Row(行番号)、c.Column(列番号)、c.Address(セル番地)を活用すると便利
練習課題
- 「負の数は赤、正の数は青」に色分けしてみる
- 「各セルにそのセルの番地を表示する」コードを書いてみる
- 「行番号に応じて違う計算式を入れる」コードを作ってみる
こうした応用を組み合わせると、条件付き書式や自動計算をVBAで自由に作れるようになります。
