Excel VBAで最終行を取得する
Excel VBAは、Microsoft Excelで使用できるプログラミング言語です。
Excelをより効率的に使用するためのプログラミング言語です。Excelをもっと便利に使いたい人におすすめのプログラミング言語です。Excel VBAを覚えると、Excelの作業が楽になります
具体的に出来ることは以下のとおりです。
- Excelの操作を自動化
- 独自の機能を作成
- データの分析・処理
- レポートの作成
- フォームの作成
- マクロの作成
このExcel VBAというカテゴリーでは、私が学んだExcel VBAのコツやテクニックを紹介していきます。
今回は、Excel VBAで、最終行を取得する方法を今回ご紹介します。
Excel VBAで最終行を取得する方法
Excel VBAで最終行を取得するコード
For文を使って、2から21行まで計算させるコードを、前回ご紹介しました(ご覧になっていない方は、こちらをクリックしてください)。
しかし、これだと行数が21行以上になった場合、全ての計算をさせることが出来ません。
毎回、最終値をその行数の数を入力してするのは面倒です。
これを解決するには、Excel VBAで最終行を取得する必要があります。
Excel VBAで最終行を取得するコードを入力すれば、常に全ての行数の計算が出来ます。
最終行の取得によく使われるコードは以下のものです。
Cells(Rows.Count, 1).End(xlUp).row
このコードの説明をします。
①Cells(Rows.Count,1).
Cellsとは、Range以外のセルの指定させるプロパティです。()内に行と列を指定します。
Cells(行.列)
例えば、A3を指定する場合は、
Cells(3.1)又は、Cells(3.”A”)
となります。
Rows.Count, 1ですが、開いているシート(アクティブシート)の最後の行の最初のセルを取得するコードです。
なお1は、1列目の意味でA列のことです。
なおA列に余計なデータが入っていると、バグが起きるので、それがないかを確認する必要があります。
②End(xlUp)
End(xlUp).Rowは、開いているシート(アクティブシート)の上方向にセルを移動し、その位置を取得するコードです。
③row
セルの行番号を取得するコードです。
と書いても初心者にはわかりにくいので、最終行を求める場合は、Cells(Rows.Count, 1).End(xlUp).rowという使うんだ程度に、コードそのものを丸暗記してください。
Excel VBAで最終行を取得するコードの使用例
For文を使って、2から21行まで計算させるコードを、2から最終行まで計算させるコードに変更してみます。
コードは以下の通りです。
最初に変数を宣言します。今回は変数名を、最終行まで計算、にしました。
Dim 最終行まで計算 As Long
最終行まで計算という変数に、Cells(Rows.Count, 1).End(xlUp).rowを代入します。
最終行まで計算 = Cells(Rows.Count, 1).End(xlUp).row
前回のコードのFor i = 2 To 21の21を削除し、最終行まで計算という変数を入力します。
For i = 2 To 最終行まで計算
F5キーを押して実行すると、最終行まで計算されます。
プログラミングは1から覚えるのが理想だと思いますが、実際は、最初は意味は分からなくても、そのコードを丸暗記するか、メモ帳などに書いておきコピー・アンド・ペーストして使い回す(これをスニペットと言います)、それでも構いません。実際のプログラマーさんなども、過去に使ったコードをそのようにして使いまわしています。その方が作業効率がいいからです。特にExcel VBAは他のプログラミング言語と異なり、Excelの作業を自動化させることで効率化させる言語です。このコードは使い回せると思ったら、どんどん使いまわしていきましょう。