「エクセルマクロ spcialcellsを使って最終行の次の行を取得」
といった検索でアクセスがありました。
Rangeオブジェクトに用意されているSpecialCellsメソッドを使って、
最終行の次の行を取得するには、どのようなコードを書けばいいのか調べていた方による検索です。
ここで「最終行の次の行」と表現されているものは、2つ考えられます。
1つは、行番号。
もう1つは、行を表すRangeオブジェクトです。
SpecialCellsを使って最終行の次の行の行番号を取得するサンプル
以下のExcelマクロを実行すると、最終行の、次の行の行番号がメッセージボックスに表示されます。
Dim row_num As Long
row_num = _
Cells.SpecialCells(xlCellTypeLastCell).Row + 1
MsgBox row_num
End Sub
SpecialCellsを使って最終行の次の行を表すRangeを取得するサンプル
以下のExcelマクロを実行すると、最終行の、次の行を表すRangeが取得・選択されます。
Dim rng_row As Range
Set rng_row = _
Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).EntireRow
rng_row.Select
End Sub
サンプルマクロで使用している式について
上記2つのサンプルマクロで使用しているコードの意味は以下のとおりです。
Range.SpecialCellsメソッドに、定数xlCellTypeLastCellを指定すると、ショートカットキー[Ctrl]+[End]等で選択できる、最後のセルを表すRangeオブジェクトを取得できます。
「最終行の次の行」の行番号を取得する場合は、Range.SpecialCells(xlCellTypeLastCell)で取得したRangeオブジェクトの、Rowプロパティで取得できる行番号に
Cells.SpecialCells(xlCellTypeLastCell).Row + 1
「1」を加算すれば済みます。
Cells.SpecialCells(xlCellTypeLastCell).Row + 1
「最終行の次の行」を表すRangeオブジェクトを取得する場合は、Range.SpecialCells(xlCellTypeLastCell)で取得したRangeオブジェクトの、Offsetプロパティの第1引数に「1」第2引数に「0」を指定することで取得できる最後のセルの1つ下のセルを表すRangeオブジェクトの、
Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).EntireRow
EntireRowプロパティで、行全体を表すRangeオブジェクトを取得しています。
Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).EntireRow
最終更新日時:2022-11-16 23:54
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » SpecialCellsを使って最終行の次の行を取得するには