【VBAスタンダードに挑戦!】
本日の5分勉強の内容
********************************************************
For Each...Nextステートメント
・グループのメンバーをひとつずつ、順番に調べる(操作する)
・グループは以下の3つが指定できる
コレクション(同じ種類のもの(ブック、シート etc.))
複数セル
配列
・記述方法
For Each 変数 In グループ名
変数を使った処理
Next 変数
セル範囲の操作
・セル範囲 = 指定した複数のセル、または選択した複数のセルのこと
・連続した範囲だけでなく、任意で指定または選択したセルも操作できる
・Rangeオブジェクトが集まった と考える
・変数には Range型 を指定する
Sub セル範囲操作()
Dim Rng As Range '変数をRangeで定義
For Each Rng In Range("C3:C6") '範囲を指定
If Rng = "B" Then 'もしセルが "B" だったら・・・
Rng.Interior.ColorIndex = 3 'Cell を赤で塗りつぶす
End If
Next Rng
End Sub
いつもの書き方は・・・
Sub セル範囲操作いつものやり方()
Dim r As Long 'Rowを格納する
Dim c As Long 'Columnを格納する
Dim LastR As Long '最終行を格納する
c = Selection.Column 'Excel上でマクロを実行したい列を選択しておく
LastR = Cells(Rows.Count, c).End(xlUp).Row '最終行を取得する
For r = 3 To LastR '
If Cells(r, c) = "B" Then 'もしセルが "B" だったら・・・
Cells(r, c).Interior.ColorIndex = 3 'Cell を赤で塗りつぶす
End If
Next r
End Sub
********************************************************
うーん・・・
いつもの書き方だと少し記述が多くなりますね。
でも、最終行を取得して指定範囲を可変に対応できるようにする分を
追加すると、同じくらいになるかな?
連続したセル範囲でなくても Selection を使って
適用できるみたいですけど、どんな場面で使えるかな?
想像できないな・・・
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/