きなこSHOW

VBAと日々の戯言

Excel VBAで最終行を取得するサンプルを紹介します

スポンサーリンク

Excelで事務処理系の自動化ツールを作っていますが、データが入力されている最終行とか最終列を取得したい時ってけっこうあります。
毎回コード書くのも面倒なので、汎用的に使えるプロシージャを作って使いまわしています。やりたい事はほぼカバーできている「最終行取得function」です。
コピーしてそのまま使えるサンプルを紹介します!

Excelでの転記を自動で行うツールでは、行数がいつも固定の場合は必要ないのですがそうではない時の方が多く、データが入力されている最終のセル、行を検出するvbaコードの出番はかなり多いです。
最終セルを検出する方法はいろいろありますが、それぞれに一長一短があって開発者を悩ませます。
特性を理解したうえでその場に応じた適切な方法を、となるとなかなか難しいものです。

今回紹介するサンプルは、以下の条件に対応しています。

  1. 空白が含まれない表の最終行を取得したい
  2. 空白が含まれない=データがすべて入力されている特定の列の最終行を取得したい
  3. 空白は含まれてるけど特定列の最終行を取得したい
  4. 空白は含まれてるけど全体的に最終行を取得したい

「1」「4」は簡単ですよね。「2」「3」で悩むケースが多いかと思います。
これから紹介するサンプルは、1つのプロシージャですべてのケースに対応しています。

データが入力されている最終行を取得するサンプル

サンプルコードの使用はすべて自己責任でお願いいたします。

次回はこのサンプルの呼び出し方法と、最大列を取得する関数を紹介します。