VBAでの範囲指定(Rangeオブジェクトの利用)


VBAでの範囲指定について書きます。


VBA

  指定したセルの値を取得・設定する

  指定した範囲のセルを繰り返し操作する


といった場合に範囲指定が必要になります。


VBAでセル範囲を指定するためには、Rangeオブジェクトを利用します。



VBAでセル範囲を指定する(Rangeオブジェクト)


1.A1形式での指定(単一セル)
2.A1形式での指定(複数セル)
3.R1C1形式での指定(複数セル)
4.現在選択しているセル範囲の指定


1.A1形式での指定(単一セル)

A1形式で単一のセルを指定する場合は、以下の通りにします。

[サンプルソース]

Sub rangeTest1()
    
    MsgBox Range("A1").Value
    
End Sub








(rangeTest1()実行結果)


2.A1形式での指定(複数セル)

A1形式で複数のセル範囲を指定する場合は、以下の通りにします。

[サンプルソース]

Sub rangeTest2()
    
    Dim rObj As Range
    Set rObj = Range("B2:C3")
    MsgBox rObj.Cells(1, 1).Value
    
End Sub
範囲内のセルの値を取得するには、Cellsプロパティを使用します。








(rangeTest2()実行結果)


3.R1C1形式での指定(複数セル)

R1C1形式で複数のセル範囲を指定する場合は、以下の通りにします。

マクロを組む場合は、この方法で指定することが最も多いのではないでしょうか。

[サンプルソース]

Sub rangeTest3()
    
    Dim rObj As Range
    Set rObj = Range(Cells(2, 2), Cells(3, 3))
    MsgBox rObj.Cells(1, 1).Value
    
End Sub
記述は違いますが、先ほどと同じ範囲を指定しています。







(rangeTest3()実行結果)



4.現在選択しているセル範囲の指定

現在選択しているセル範囲を取得する場合は、以下の通りに記述します。

[サンプルソース]

Sub rangeTest4()
    
    MsgBox ActiveCell.Cells(1, 1).Value
    
End Sub


同じ範囲を選択した状態で実行してみます。






(rangeTest4()実行結果)







以上です。