スポンサーリンク

【Excel/VBA】変数を使ってセル範囲や行範囲、列範囲を指定する方法

エクセルVBAセル範囲 vba
スポンサーリンク
※当サイトは広告を含みます

セル範囲や、行・列の範囲を変数を使って指定するときにええとどうやるんだっけ、となるので(最近やっと迷わなくなった)備忘録としてここにまとめておきます。

エクセルのこんな表を使ってみます。

変数を使わずセル範囲、行範囲、列範囲を指定するコード

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カッコ内のピリオドを忘れると、おかしなことになることがあるので注意!

以上です。

お読みいただきありがとうございました。

スポンサーリンク
スポンサーリンク
vba
スポンサーリンク
mwkをフォローする
エクセルがともだち

コメント

タイトルとURLをコピーしました