Excel で入力されているデータの最終行や最終列を取得したい場合は、「Ctrl + →」あるいは「Ctrl + ↓」のように入力します。VBA では同じ動作を End プロパティを使うことで行うことができます。
End プロパティの使い方
End プロパティの構文は以下の通りです。
1 |
Rangeオブジェクト.End(方向) |
End プロパティは指定した方向にあるセルの Range オブジェクトを返します。引数の方向には以下の表の値を指定します。
方向 | 説明 |
xlUp | 上端の行:Ctrl + ↑ |
xlToLeft | 左端の列:Ctrl + ← |
xlToRight | 右端の列:Ctrl + → |
xlDown | 下端の行:Ctrl + ↓ |
表にある通り最終行、最終列だけでなく、上端と左端のセルを取得することもできます。
今回は以下の Excel データに対する例を見ていきます。
最終行を取得する
以下は A1 から最終行を取得し選択する例です。
1 |
Range("A1").End(xlDown).Select |
この場合、A1 を選択した状態から Ctrl + ↓ を入力した場合と同じ結果になります。
最終列を取得する
以下は A1 から最終列を取得し選択する例です。
1 |
Range("A1").End(xlToRight).Select |
この場合、A1 を選択した状態から Ctrl + → を入力した場合と同じ結果になります。
間に空白のセルがある場合
以下のデータのように空白がある場合を見てみましょう。
以下はこのデータの最終行を選択する例です。
1 |
Range("A1").End(xlDown).Select |
空白のセルがある場合も同様に Ctrl と矢印キーを押したときと同じ動作となり、空白の上あるいは空白の左までのセルが返されます。