【Excel vba】表のセル最終行・最終列番号の取得する処理・関数を紹介!コピペでOK!
janjf93 / Pixabay

Excel Vba で表の最終行する処理を知りたい!

 

このページでは Excel の表の最終行・最終列番号を取得する処理について

Excel Vba の関数(プロシージャ)として簡単にまとめましたので記述します。

 

よく使う処理の前なのによく忘れるので備忘録に残しています!

 

この処理はかなり簡単な関数(プロシージャ)としてまとめてます。

  1. セル番号を指定(たとえば B2 という形式)
  2. 最終行・列を取得(B列の最終行・列をゲット!)

 

こんな感じですごく簡単な処理になっています。

またこの処理はコピーすればすぐに実装できるようにしています。

ですので、よければ必要な方はぜひコピペして使ってください。

 

この記事でわかること!
  1. 表の最終行番号を取得する処理について
  2. 表の最終列番号を取得する処理について

 

スポンサーリンク

Excel の表の最終行番号を取得する処理について

Excel の表の最終行番号を取得する方法は2通りあります。

 

  1. セルの元々の位置から空白セルの位置まで下って移動
  2. セルの一番下から空白セルの位置まで上って移動

 

は?どういうこと??」と思われた方もいるかもしれません。

これがどういうことなのかわかりやすく説明します。

 

セルの元々の位置から空白セルの位置まで下って移動

まずは最終行取得のために「セルの元々の位置から空白セルの位置まで下って移動」する方法についてです。

 

まずはこんな感じの1~5まで含まれる1列の表があるとします。

ここの一番上のセル番号(B2)を選択します。

 

 

そしてキーボードの「↓」キーを入力すれば表の一番下のセルに移動できます。

 

 

いわばこの処理を Excel VBAで実現すればOKっていうことです。

実際の Excel Vba での最終行のセル番号を取得する処理は下記になります。

 

上記は B2セル(表の一番上)から End(xlDown) と下っていくこと処理です。

今回はこの処理を getLastRow プロシージャとしてまとめました。

この関数(プロシージャ)の引数と戻り値は下記になります。

 

項目名 説明
プロシージャ名 getLastRow 最終行番号取得
戻り値 指定したシート名の列の最終行番号 -
第1引数 nowCell セル番号(A1、B2)等

 

セルの一番下から空白セルの位置まで上って移動

次に「セルの一番下から空白セルの位置まで上って移動」する方法についてです。

 

先程と同じようにこんな感じの1~5まで含まれる1列の表があるとします。

 

 

これと同じ列の一番下のセルを選択します。

 

 

そしてキーボードの「↑」キーを入力すれば表の一番下のセルに移動できます。

 

 

この処理を Excel VBAで実現すればOKっていうことです。

実際の Excel Vba での最終行のセル番号を取得する処理は下記になります。

 

先程よりは少しややこしいです。

処理について順に説明します(例として B2セルの最終行を取得する場合を説明します)。

  1. B2 セルから B2の列番号を取得を数字として取得します(たとえば B 列ならば「2」となります)。
  2. 次に Excel の最大行数 Rows.Count を取得し、これらを組み合わせてB列の最終セル番号(Cells(Rows.Count, Range(nowCell).Column))とを取得します。
  3. 最後にB列の最終セル番号をEnd(xlUp) と上っていく処理にすればOKです。

 

今回はこの処理を getLastRow2 プロシージャとしてまとめました。

この関数(プロシージャ)の引数と戻り値は下記になります。

 

項目名 説明
プロシージャ名 getLastRow2 最終行番号取得
戻り値 指定したシート名の列の最終行番号 -
第1引数 nowCell セル番号(A1、B2)等

 

二つの処理の違いについて

これ結局何が違うの?」ってなると思います。

これらの違いは Excel の行の中に空白があるかどうかであり、

空白があると最終行の値が変わってきます。

 

 

例えば表の上から列番号を確認するとExcelの処理では空白セル直前のセル行番号になりますが、一番下から確認すると一番下のセル行番号になります。

 

これらのように違いがあるため、使い分けする必要があります。

 

ポイント!
Excel 行の間に空白セルがあるかどうかで取得できる値が変わる!

 

Excel の表の最終列番号を取得する処理について

次にExcel の表の最終列番号を取得する方法は2通りあります。

これは前章で説明した「最終行番号取得のノウハウ」と特に変わりありません。

 

  1. セルの元々の位置から空白セルの位置まで右に移動して移動
  2. セルの一番右から空白セルの位置まで右に移動

 

こちらも「は?どういうこと??」と思われた方もいるかもしれません。

これがどういうことなのかわかりやすく説明します。

 

セルの元々の位置から空白セルの位置まで右に移動して移動

まずは「セルの元々の位置から空白セルの位置まで右に移動して移動」について説明します。

こんな感じの1~5まで含まれる1行の表があるとします。

ここの一番左のセル番号(B2)を選択します。

 

 

そしてキーボードの「→」キーを入力すれば表の一番右のセルに移動できます。

 

 

この処理を Excel VBAで実現すればOKっていうことです。

実際の Excel Vba での最終列のセル番号を取得する処理は下記になります。

 

上記は B2セル(表の一番左)から End(xlToRight) と右にいくこと処理です。

今回はこの処理を getLastCol プロシージャとしてまとめました。

この関数(プロシージャ)の引数と戻り値は下記になります。

 

項目名 説明
プロシージャ名 getLastCol 最終列番号取得
戻り値 指定したシート名の列の最終列番号 -
第1引数 nowCell セル番号(A1、B2)等

 

セルの一番右から空白セルの位置まで右に移動

まずは「セルの一番右から空白セルの位置まで右に移動」について説明します。

まずはこんな感じの1~5まで含まれる1行の表があるとします。

 

 

ここで B列の最終行を選択します。

 

 

そしてキーボードの「←」キーを入力すれば表の一番右のセルに移動できます。

 

 

この処理を Excel VBAで実現すればOKっていうことです。

実際の Excel Vba での最終列のセル番号を取得する処理は下記になります。

最終行のセル番号は下記になります。

 

処理について順に説明します(例として B2セルの最終列を取得する場合を説明します)。

  1. B2 セルから B2の行番号を取得を数字として取得します(たとえば B 列ならば「2」となります)。
  2. 次に Excel の最大列数 Columns.Count を取得し、これらを組み合わせてB列の最終セル番号 Cells(Range(nowCell).row, Columns.Count) とを取得します。
  3. 最後にB列の最終セル番号をEnd(xlToLeft) と右にいく処理にすればOKです。

 

この関数(プロシージャ)の引数と戻り値は下記になります。

 

項目名 説明
プロシージャ名 getLastCol2 最終列番号取得
戻り値 指定したシート名の列の最終列番号 -
第1引数 nowCell セル番号(A1、B2)等

 

二つの処理の違いについて

これ結局何が違うの?」ってなると思います。

これらの違いは Excel の列の中に空白があるかどうかであり、

空白があると最終列の値が変わってきます。

 

 

例えば表の上から列番号を確認するとExcelの処理では空白セル直前のセル行番号になりますが、一番下から確認すると一番左のセル行番号になります。

これらのように違いがあるため、使い分けする必要があります。

 

ポイント!
Excel 列の間に空白セルがあるかどうかで取得できる値が変わる!

 

最後に

いかがでしたでしょうか?

今回はこんなことを紹介しました!

  1. Excel の表の最終行番号を取得する処理について
  2. Excel の表の最終列番号を取得する処理について

 

この記事が開発のお役に立てれば幸いです。

 

ではでは。

スポンサーリンク
おすすめの記事