Vba最終行取得がズレる盲点とは?失敗防ぐ書き方と対策【2026】

Vba最終行取得がズレる盲点とは?失敗防ぐ書き方と対策【2026】についての最新情報をお届けします。

Q1:End(xlDown)を使って最終行を取得するのはなぜ危険なのですか?
A1:End(xlDown)は上から下に向かって連続データを探索するため、途中に1箇所でも空白セルがあるとそこで探索が停止してしまいます。途中に抜けがないと保証されている場合を除き、実務コードでの使用は原則として厳禁です。

Q2:オートフィルタで絞り込み中のシートで正確な最終行を取るにはどうすればいいですか?
A2:事前に「ws.AutoFilterMode = False」または「ws.ShowAllData」を実行してフィルタを解除するか、非表示行の影響を受けないFindメソッド(LookIn:=xlValues)を使用してシート全体の最終行を走査してください。

Q3:数式で「""」を出力しているセルを無視して、文字が実際に見えている最終行だけを取る方法は?
A3:Findメソッドのパラメータに「LookIn:=xlValues」を指定します。「xlFormulas」を指定すると数式自体を検出してしまいますが、「xlValues」に設定することで画面上に実体のある値が表示されているセルのみを対象にできます。

高橋 健太

高橋 健太

ライフスタイル編集者

Webメディアでの編集・執筆歴10年。読者の好奇心を刺激するストーリー作りを心がけています。

Share this article
Twitter Facebook Pinterest