5/01/2017

Excel。マクロ006。表の最終データの下にあるセルを選択する。End(xldown)

Excel。マクロ006。表の最終データの下にあるセルを選択する。End(xldown)

<VBA:End(xldown)>


一般の事務職の方でも
Excel VBAを使ってみたいという人も多いようですね。

なかなかわかりにくいところもあると思いますが、
基本的な操作を確認する事で、
次へのステップにつなげていくといいかと思います。

そこで、今回は、前回の表の選択に続き、
表の最終データの下にあるセルを選択する方法を確認してみましょう。

今回のやり方がわかれば、
表の下にデータを追加するステップへと繋げることが出来ますよ。

次の表があります。まずは、おさらい。

A1からはじまる表を選択する、VBAを確認しておきます。

Sub CurrentRegion()
    Range("A1").CurrentRegion.Select
End Sub

このCurrentRegionプロパティを使うことによって、
範囲選択ができますが、
これはあくまでも、表全体を範囲選択する方法なので、
最終データの下のセルを選択するには、
Endプロパティを使うことによって可能になります。


【Endプロパティを使ってみよう】


Endプロパティの書式は、
オブジェクト.End[Direction]

Directionには、
xlDownの下端をはじめ、xlUp・xlToLeft・xlToRightがあります。

今回は、最終データの下のセルですので、
xlDownを使っていきます。

では、作っていきましょう。

Sub 最終下01()
    Range("a1").End(xlDown).Offset(1).Select
End Sub

動きとしては、
A列の一番下のデータのOffset(1)で
そのさらに1つ下をSelectするということになります。

実行してみると、

最終データの下のセルを選択することが出来ましたね。

この方法以外にも、別の方法もありますので、
そちらも合わせてご紹介していきましょう。

【シートの最終行からバックする】


次の方法は、シートの最終行までいき、
その後表の一番下のセルを選択するという方法です。

この方法も、メジャーな選択方法の一つですね。

では、次のように作成していきます。

Sub 最終下02()
    Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
End Sub

こちらも動きを確認しておきましょう。

Rows.Countは、アクティブシートの行数を算出してくれます。
要するに、Excel2007以降ですと、1048576行のセル。

そのセルから、End(xlTop)。

すなわち、表の一番下を探して、
Offset(1)。一つ下のセルをSelect(選択)します。

1つ目の方法と2つ目の方法の違いですが、
仮に1つ目だと、表の途中に空白行が存在してしまうと、
データ入力範囲の最後のセルが正確に確認することが出来ません。

その点2つ目の方法ならば、シートの一番下のセルまでいって、
そこから、上に移動してから、その下のセルを選択しますので、
基本的に2つ目の方法を使うことが多いようですね。

なお当然の事ですが、最終行の下のセルに、
スペースなど空白が挿入されていると、空欄ではないので、
正しく選択することが出来ませんので、注意する必要があります。

範囲選択はExcelの基本操作ですが、
VBAとしても基本ですので、しっかり確認していきましょう。