セルの範囲指定について
今回の目標
説明
セルの範囲指定を行う方法です。基本的に『Range』を使用することになります。
範囲がどこのセルからどのセルまでを範囲してするかが実行前に分かっていない場合、『Rangeと変数を組み合わせた指定方法』か『RangeとCellsを組み合わせた指定方法』のどちらかによる範囲指定が必須となります。
Range単体で範囲指定する
セルA1~B3を選択します。
主にマクロ実行前から、どの範囲を指定したいか、分かっている場合に使用します。
Sub Sample_Area1()
' A1~B3を指定する
Range("A1:B3").Select
End Sub
Rangeと変数を組み合わせた指定方法
セルB2~D5を選択します。
主にマクロ実行前に、どの範囲を指定したいか、分かず変数を使用する場合に使用します。
Sub Sample_Area2()
Dim i as Long
Dim j as Long
Dim str as String
i = 2
j = 5
' str = "B2:D5" となります
str = "B" & i & ":" & "D" & j
Range(str).Select
End Sub
RangeとCellsを組み合わせた指定方法
セルB2~D5を選択します。
主にマクロ実行前に、どの範囲を指定したいか、分かず変数を使用する場合に使用します。
' セルC2~E4を指定する。Rangeの中に、左上のセルと右下のセルを指定します。
Range(Cells(2, 3), Cells(4, 5)).Select
セルA1に数値「5」を入れます。VBEを開いてモジュールを追加し、下のマクロをコピペしてください。
Sub Sample_Area3()
Dim top as Long ' top は 範囲の上の行
Dim left as Long ' left は 範囲の左の列
Dim bottom as Long ' bottom は 範囲の下の行
Dim right as Long ' right は 範囲の右の列
top = 2
left = 3
bottom = 4
right = 5
' 範囲の左上がB2「Cells(2, 3)」、範囲の右下がE4「Cells(4, 5)」
Range(Cells(top, left), Cells(bottom, right)).Select
End Sub
アクティブでないシートの範囲指定の注意点
アクティブなシートでないシート(開いているシート)以外のセルや範囲を選択する場合、先にそのシートを選択しないとエラーが発生します。
そのため、シートをアクティブにしてからセルを選択してください。
詳細はこのページを参照してください。