見出し画像

Excel VBAベーシック受験に向けて⑫複数セル(セル範囲)、可変データの操作

セル範囲A1:C3を指定するときはRange("A1:C3")と記述することが多いが、Rangeには別の書き方がある。

Range(セル範囲の左上のセル, セル範囲の右下のセル)

という書式があり、Range("A1:C3")は次のようにも記述できる。
Range(Range("A1"), Range("C3"))
Range(Cells(1, 1), Cells(3, 3))


下図で項目名を残してB列のデータだけをクリアする操作を考える。
操作のセル範囲はB2:B5だが、実務ではデータの量が毎回同じとは限らないため、最下セルは都度異なってくる。

「Range(セル範囲の左上のセル, セル範囲の右下のセル)」で考えると、左上のセルは、セルB2。
ここまでをRangeで表すと、「Range(Range("B2"), 右下セル」となる。

右下セルは、Endモードを使うと「セルB1からEndモードで下に向かって移動して行きつくセル」と考えることができる。
Endモードを使うと右下セルは「Range("B1").End(xlDown)」と書くことができる。
これを右下セルに当てはめると、次のように書くことができる。

Range(Range("B2"), Range("B1").End(xlDown))

これで、B列のデータ範囲が特定できる。

データをクリアするには、ClearContentsメソッドを使う。

Sub Macro1()
    Range(Range("B2"), Range("B1").End(xlDown)).ClearContents
End Sub
セル範囲B2:B6の値がクリアされた


いいなと思ったら応援しよう!