VBAを作成する上でシートとのデータやり取りをすることが一般的だと思います。その際によく使うのはシート内のどの範囲にデータが記載されているか?の確認を行う関数です。
例題として下のようなワークシートがあるとして、このワークシートの最大行・最大列を得る場合の構文をまとめます。
1.最終行の取得
シンプルに上から最大行を探索する場合は、例えばA列の最終行は下記のコードで取得可能です。
MaxRow1 = Range("A1").End(xlDown).Row
ただし、データの途中に空白行がある場合は空白行の手前の行番号が返され、本当に必要なデータ最終行番号を得ることができません。その場合はxlUpを活用した下記のコードを用います。
MaxRow2 = Cells(Rows.Count,1).End(xlUp).Row
特定の列ではなく、シート全体における最大行を取得する場合は、下記構文をよく使用します。
MaxRow3 = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
2.最終列の取得
シンプルに左から最大列を探索する場合は、
MaxClm1 = Range("A1").End(xlToRight).Column
ただし、データの途中に空白行がある場合は空白行の手前の列番号が返され、本当に必要なデータ最終列番号を得ることができません。その場合はxlUpを活用した下記のコードを用います。
MaxClm2 = Cells(1,Columns.Count).End(xlToLeft).Column
特定の行ではなく、シート全体における最大列を取得する場合は、下記構文をよく使用します。
MaxClm3 = ActiveSheet.Cells.SpecialCells(xlLastCell).Column