GetEndCellRightButtom|右下最終セルの取得 | Excel VBA
- yuji fukami
- 1月14日
- 読了時間: 2分

<概要 VBA 右下セル>
GetEndCellRightButtomは、指定したセルを基準として、データが存在する範囲の「右下端セル」を安全に取得するための汎用プロシージャです。
行方向にはGetEndRow、列方向にはGetEndColを内部で利用し、
それぞれの最終行番号・最終列番号を組み合わせたセルを返します。
Range.End(xlDown / xlToRight)では正しく取得できない、
オートフィルタ設定時や非表示行・列が存在するシートにおいても、
実務で安定した結果を得られる点が特長です。
帳票データや一覧表を処理する際に、
「開始セルは分かっているが、データの終端が可変である」
といったケースで特に有効です。
<実行例>
実行例のサンプルコードは次の通りです
実行サンプルでは、B2セルを基準として右方向および下方向に存在するデータ範囲を探索し、その結果得られた右下端のセルを取得しています。
イミディエイトウィンドウには、実際に取得された最終セルのアドレスが表示されます。
例えば下記の様にシートに入力してあるとすると、

イミディエイトウィンドウには下記の様に表示されます。

この処理により、データ行数や列数が毎回変わるシートであっても、固定的なRange指定を行う必要がなくなります。
特に、
・オートフィルタが設定されている表
・途中に空白行や空白列が混在する表
といったケースでも、
想定通りの最終セルを取得できる点が重要です。
<関連コード>
今回の汎用プロシージャは、下記の別で紹介している汎用プロシージャを使用しています。
・GetEndRow→ https://www.softex-celware.com/post/getendrow
・GetEndCol → https://www.softex-celware.com/post/getendcol
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



