対象セル範囲の領域における終端のRangeオブジェクトへの参照を返します。
言い換えれば、キーボードでの[Ctrl] + [方向キー] (←、→、↑、↓ のいずれか)の操作で移動する先のセルへの参照です。
どの方向に移動するかは引数Directionで指定します。
構文
Object.End(Direction)
引数Directionで指定する定数(xlDirection列挙隊のメンバ)
下記の Sample は、セルA1から隙間無くデータの入力されたリストについて、A列の最終行のセルを選択します。
Sample1
Sub Sample1()
' セルA1から下方向の終端セルを選択
Range("A1").End(xlDown).Select
End Sub
Sample1では、セルA1から下方向の終端セルを取得することで、最終行のデータを特定することができますが、次のようなデータでは問題が発生します。
1. の場合は、ワークシートの最終行のセルを参照してしまうため、「最終行+1行」(存在しないセル)に新規データを追加するときにエラーが発生します。
2. の場合は、最終行ではないセルを参照してしまうため、新規データ追加時に既存データを上書きしてしまいます。
Sample2では、A列の最終行のセルから上方向にデータの終端セルを取得します。
この方法だと上記の 1. や 2. の場合も最終行のセルを選択できるので、より汎用性が高いでしょう。
Sample2
Sub Sample2()
' A列の最終行から上方向の終端セルを選択
Cells(Rows.Count, 1).End(xlUp).Select
End Sub
1行目の右端セルを選択する場合は、下記のように一番右のセルから左方向に終端セルを取得すれば良いでしょう。
Cells(1, Columns.Count).End(xlToLeft).Select