セル範囲や、行・列の範囲を変数を使って指定するときにええとどうやるんだっけ、となるので(最近やっと迷わなくなった)備忘録としてここにまとめておきます。
エクセルのこんな表を使ってみます。
変数を使わずセル範囲、行範囲、列範囲を指定するコード
With ActiveSheet
‘セル範囲
.Range(“B2:C3”).Select
‘行範囲
.Rows(“2:3”).Select
‘列範囲
.Columns(“B:C”).Select
End With
変数を使ってやってみます。
Dim rowStr As Long: rowStr = 2 ’行1
Dim rowEnd As Long: rowEnd = 3 ’行2
Dim colStr As Long: colStr = 2 ’列1
Dim colEnd As Long: colEnd = 3 ’列2
‘セル範囲
With ActiveSheet
.Range(.Cells(rowStr, colStr), .Cells(rowEnd, colEnd)).Select
End With
‘行範囲
With ActiveSheet
.Rows(rowStr & “:” & rowEnd).Select
’または
.Range(.Rows(rowStr), .Rows(rowEnd)).Select
End With
‘列範囲
With ActiveSheet
.Range(.Columns(colStr), .Columns(colEnd)).Select
End With
’または、列範囲を文字列で指定する場合(あんまりなさそうだけど)
Dim strColStr As String:strColStr = “B”
Dim strColEnd As String:strColEnd = “C”
With ActiveSheet
.Columns(strColStr & “:” & strColEnd).Select
End With
列範囲を数字で指定するにはどうしたらいいんだー
と悩んだとこがあったけど
Rangeの後のカッコ内でColumnsで数値で指定すればよい、ということが分かったのでよかった。
Withでシート参照しているときに、.Range(.Columns(1),.Columns(2)) のRangeカッコ内のピリオドを忘れると、おかしなことになることがあるので注意!
以上です。
お読みいただきありがとうございました。
コメント