背景・目的
下図のようなデータ一覧表を考える。
「番号」列の開始行から最終行までに、自動で連番を振るマクロを作成したい。

単に連番を振るだけであれば、手入力したり、ROW関数を使えばよい。
ただ、それだと、行の挿入・入れ替えやフィルター、並び替え時に、問題が起こることがある。
そこで、マクロで連番を振れるようにしたい。
方法
「番号」列の開始行と最終行を求める方法を考える。
開始行は、基本的に固定のはずで、今回の例だと「3」となる。
最終行は、「名前」列の最終行に対応するはずなので、それを利用する。
Sub 連番を振る()
'「番号」列の開始行
Const NumRowStart As Integer = 3
'「番号」列の最終行
Dim NumRowEnd As Integer
'「番号」列の列番号
Const NumCol As Integer = 2
'「名前」列の列番号
Const NameCol As Integer = 3
'「番号」列の最終行=「名前」列の最終行を求める
NumRowEnd = ActiveSheet.Cells(Rows.Count, NameCol).End(xlUp).Row
'カウンタ
Dim i As Integer
'連番
Dim Num As Integer
Num = 1
'連番を振る
For i = NumRowStart To NumRowEnd
ActiveSheet.Cells(i, NumCol).Value = Num
Num = Num + 1
Next i
End Sub
このコードを実行すると、下図のように連番が振られる。

投稿時の環境
- Windows11 Home Ver. 24H2
- Excel for Microsoft 365 Ver. 2505