スポンサードリンク

VBAを扱っていてセルの指定する際に
変数を使って指定をすることが多いです。
なので変数を使うCells、Rows、Columnsを使って指定をしています。
しかし、VBAではRangeを使わないと指定できない場合もあり
すべてをCells、Rows、Columnsで書くことは難しいです。
変数を使う時のCells、Rows、Columnsを使ってRangeを組み合わせたセル指定方法を
覚書としてまとめておきます。
スポンサードリンク
Rangeでの指定方法
Rangeでの指定方法は固定位置での指定になります。
通常は以下のように指定します。
- Range(“A2”)・・・セル【A2】を指定
- Range(“B1:C5”)・・・セル範囲【B1~C5】を指定
- Range(“1:5”)・・・【1~5行目】を指定
- Range(“A:C”)・・・【A~C列】を指定
また、名前の定義を使って指定する場合もあります。
『価格表』という名前でセル範囲【B2:D5】があった場合は
以下のように指定します。
- Range(“価格表”)・・・セル範囲B2~D5を指定
通常は名前の定義を指定した場合はRangeのみでの使用になるため
ここからは固定位置での指定をCells、Rows、Columnsを使用した
セルの指定方法を書いていきます。
1つのセルの指定方法
1つのセルを指定する方法は以下のように書きます。
Cells(行,列)
例:セル【A2】を指定する場合
※Rangeの場合はRange(A2)
Cells(2,1)
と書きます。
変数iやjを使う場合は
Cells(i,1) Cells(i,j)
上記のように書きます。
スポンサードリンク
セル範囲の指定方法
セル範囲を指定する場合はRangeを使わないといけないので
RangeとCellsを組み合わせて下記のように書きます。
Range(Cells(行,列), Cells(行,列))
例:セル範囲【B1~C5】を指定する場合
※Rangeの場合はRange(“B1:C5”)
Range(Cells(1,2), Cells(5,3))
と書きます。
変数iやjを使う場合は
Range(Cells(1,2), Cells(i,3)) Range(Cells(1,2), Cells(i,j))
上記のように書きます。
行範囲の指定方法
セル範囲を指定する場合はRangeを使わないといけないので
RangeとRowsを組み合わせて下記のように書きます。
Range(Rows(行), Rows(行))
例:行範囲【1~5行目】を指定する場合
※Rangeの場合はRange(“1:5”)
Range(Rows(1), Rows(5))
と書きます。
変数iやjを使う場合は
Range(Rows(1), Rows(i)) Range(Rows(i), Rows(j))
上記のように書きます。
スポンサードリンク
列範囲の指定方法
セル範囲を指定する場合はRangeを使わないといけないので
RangeとColumnsを組み合わせて下記のように書きます。
Range(Columns(列), Columns(列))
例:行範囲【A~C列】を指定する場合
※Rangeの場合はRange(“A:C”)
Range(Columns(1), Columns(3))
と書きます。
変数iやjを使う場合は
Range(Columns(1), Columns(i)) Range(Columns(i), Columns(j))
上記のように書きます。
Cells、Rows、Columnsを使ってRangeを組み合わせたセル指定方法の注意
注意ですがRangeを指定する場合に
シートオブジェクトを指定しないとエラーがでる場合があります。
その時にRangeの中に指定しているCells、Rows、Columnsにも
Worksheetオブジェクトを指定しないといけません。
例えば【シート1】でセルや行、列を指定する場合、下記のように書きます。
ThisWorkbook.Worksheets("sheet1").Range(ThisWorkbook.Worksheets("sheet1").Cells(行,列), ThisWorkbook.Worksheets("sheet1").Cells(行,列)) ThisWorkbook.Worksheets("sheet1").Range(ThisWorkbook.Worksheets("sheet1").Rows(行), ThisWorkbook.Worksheets("sheet1").Rows(行)) ThisWorkbook.Worksheets("sheet1").Range(ThisWorkbook.Worksheets("sheet1").Columns(列), ThisWorkbook.Worksheets("sheet1").Columns(列))
僕はここで結構悩みました。
スポンサードリンク
Cells、Rows、Columnsを使ってRangeを組み合わせたセル指定方法のまとめ
VBAを扱っていると変数を使ってセルの位置を変更する事が多いため
Cells、Rows、Columnsを使ってRangeを組み合わせる事が多くなります。
なるべくCells、Rows、Columnsを使っておき
Rangeを使わないといけない場合のみ組み合わせて使うことがいいと思います。
スポンサードリンク