【VBA】ワークシート上でデータの開始行・列、最終行・列を取得する | あじゅWeb

【VBA】ワークシートの開始行・列、最終行・列を取得する

エクセルVBAでよく使うコードの備忘録。「入力されている行・列の一番端を取得する」コード。ワークシートCellsのEndプロパティを使います。

スポンサーリンク

共通コード

説明するコードを簡素化するために使用した変数などの共通部分です。今回のテーマの本質的な部分には関係はありません。nは最終行・列の番号を格納するための変数です。コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("[ワークシート名]")

Dim n As Long

開始行(縦方向)

1行目から下側に検索をかけて(xlDown)最初に入力があるセルの行番号をRowプロパティで取得します。

n = ws.Cells(1, [列番号]).End(xlDown).Row

開始列(横方向)

1列目から右側に検索をかけて(xlToRight)最初に入力があるセルの行番号をColumnプロパティで取得します。

n = ws.Cells([行番号], 1).End(xlToRight).Column

最終行(縦方向)

Rows.CountでExcelの最大行数を取得し、そこから上側に検索をかけて(xlUp)最初に入力があるセルの行番号をRowプロパティで取得します。xlDownで検索すると途中に空欄があった場合にそこで止まってしまいます。

n = ws.Cells(Rows.Count, [列番号]).End(xlUp).Row

最終列(横方向)

Columns.CountでExcelの最大列数を取得し、そこから左側に検索をかけて(xlToLeft)最初に入力があるセルの列番号をColumnプロパティで取得します。xlToRightで検索すると途中に空欄があった場合にそこで止まってしまいます。

n = ws.Cells([行番号], Columns.Count).End(xlToLeft).Column