【VBA】表の先頭セルと終端セルを取得する方法|範囲・UsedRangeでの位置特定

Excel VBAを使って表データを操作する際、「表の先頭セルと終端セルを自動的に取得したい」という場面は多くあります。たとえば、データ入力の開始位置を特定したり、終端に新しいデータを追加したりする処理などです。

本記事では、固定範囲とUsedRangeの両方を用いて、先頭セル・終端セルを取得する方法を、具体的なコードとともに解説いたします。


目次

固定範囲の中から先頭・終端セルを取得する

以下は、「B2:D4」のような明示的に指定された範囲の中から、先頭セルと終端セルを取得する方法です。

Range("B2:D4").Cells(1).Select   ' 先頭セル(B2)
Range("B2:D4").Cells(9).Select   ' 終端セル(D4)

解説:

  • Range("B2:D4") は、3行×3列の合計9セルの範囲です。
  • .Cells(1) は、**範囲内の1番目のセル(左上)**を指します。
  • .Cells(9) は、**範囲内の9番目のセル(右下)**を指します。

セルの順序は、左から右へ → 上から下へと進む「列方向優先」の順番です。


シート全体のUsedRangeから先頭・終端セルを取得する

ワークシート内で実際に使用されている範囲全体から、先頭セル・終端セルを取得するには、UsedRangeを使います。

With ActiveSheet.UsedRange
    MsgBox "先頭セル:" & .Cells(1).Address & vbCrLf & "終端セル:" & .Cells(.Cells.Count).Address
End With

解説:

  • .Cells(1) は、UsedRange の中で最初のセル(左上)です。
  • .Cells(.Cells.Count) は、最後のセル(右下)です。
  • .Address は、それぞれのセルのアドレス(例:$B$2)を文字列として取得します。

どんなときに使うのか?

  • 先頭セル:データ処理の起点を自動で決めたいとき
  • 終端セル:次の空きセルを特定してデータ追加したいとき
  • 範囲全体をループ処理したいとき:先頭・終端を明確にしておくと安全です

まとめ

方法使用コード特徴
固定範囲から取得Range("B2:D4").Cells(1)範囲内の左上セル
固定範囲から終端取得Range("B2:D4").Cells(9)範囲内の右下セル
使用範囲から取得UsedRange.Cells(1)ワークシート全体の最初のセル
使用範囲の終端UsedRange.Cells(UsedRange.Cells.Count)最後に使用されたセル

先頭セルと終端セルを正しく取得することで、ループ処理・データ追加・クリア処理などの信頼性が大きく向上します。
範囲が動的に変化する表を扱う場合は、UsedRangeと組み合わせて柔軟に処理することが重要です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次