HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 終端セルを参照する(Endプロパティ)

終端セルを参照する(Endプロパティ)|Excel VBA

セル操作関連のテクニック

終端セルを参照する(Endプロパティ)

(Excel 2000/2002/2003/2007/2010/2013)

対象セル範囲の領域における終端のRangeオブジェクトへの参照を返します。
言い換えれば、キーボードでの[Ctrl] + [方向キー] (←、→、↑、↓ のいずれか)の操作で移動する先のセルへの参照です。
どの方向に移動するかは引数Directionで指定します。

構文  Object.End(Direction) 取得のみ
設定項目内容
ObiectRangeオブジェクト

・引数Directionで指定する定数(xlDirection列挙体のメンバ)

定数内容キーボード操作
xlUp-4162上方向への移動[Ctrl] + [↑]
xlDown-4121下方向への移動[Ctrl] + [↓]
xlToLeft-4159左方向への移動[Ctrl] + [←]
xlToRight-4161右方法への移動[Ctrl] + [→]

サンプル1は、セルA1から隙間無くデータの入力されたリストについて、A列の最終行のセルを選択します。

●サンプル1●

Sub Sample1()
    '----セルA1から下方向の終端セルを選択
    Range("A1").End(xlDown).Select
End Sub

●注意●

サンプル1では、セルA1から下方向の終端セルを取得することで、最終行のデータを特定することができますが、次のようなデータでは問題が発生します。

(1)項目名だけでデータが無い
(2)最終行のデータまでの間に空白行がある

(1)の場合は、ワークシートの最終行のセルを参照してしまうため、「最終行+1行」(存在しないセル)に新規データを追加するときにエラーが発生します。
(2)の場合は、最終行ではないセルを参照してしまうため、新規データ追加時に既存データを上書きしてしまいます。

サンプル2では、A列の最終行のセルから上方向にデータの終端セルを取得します。
この方法だと上記の(1)や(2)の場合も最終行のセルを選択できるので、より汎用性が高いでしょう。

●サンプル2●

Sub Sample2()
    '----A列の最終行から上方向の終端セルを選択
    Cells(Rows.Count, 1).End(xlUp).Select
End Sub

1行目の右端セルを選択する場合は、下記のように一番右のセルから左方向に終端セルを取得すれば良いでしょう。

Cells(1, Columns.Count).End(xlToLeft).Select