Excel VBA マクロでP列に連番を入力する方法: 最終行まで自動で入力する

Visual Basic

Excel VBAでデータが入力されている最下行に基づき、P列に連番を入力する方法を説明します。質問者の方が求めているように、B列にデータが入力されている最下行を基準に、P列に1行目から11個ごとに連番を入力するマクロを作成します。

1. 目標とするマクロの動作

目標は、B列にデータが入力されている最終行まで、P列に1から始めた連番を入力することです。連番は1行目から11行ごとに入力されます。元々のコードは「2064行目まで」という固定範囲で連番を入力していましたが、これを動的に最終行までに変更する方法を解説します。

2. 修正後のVBAコード

以下のコードは、B列のデータが入力されている最下行を基準に、P列に連番を入力するものです。

Sub 連番改良() 
Dim i As Long
Dim j As Long
Dim lastRow As Long
j = 1
' B列の最終行を取得
lastRow = Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To lastRow
If i Mod 11 = 1 Then
Cells(j, 16).Value = i
j = j + 1
End If
Next i
End Sub

このコードは、B列の最下行までをループして、P列に連番を入力します。1行目から11行ごとに連番が入力されます。

3. コードの解説

このコードのポイントは以下の通りです。

  • lastRow変数で、B列にデータが入力されている最終行を動的に取得します。
  • 「i Mod 11 = 1」の条件で、1行目から11行ごとに連番をP列に入力しています。
  • j変数を使って、P列のセルを11行ごとに移動しています。

4. 使用例と注意点

このマクロを使うことで、指定された条件に従って連番を入力することができます。特に、データの範囲が変動する場合に役立ちます。注意点として、もしB列のデータが途中で空白になる場合は、その行までが最終行として扱われるため、空白セルの処理を追加する必要がある場合があります。

まとめ

このVBAコードを利用することで、動的に最終行を基準に連番をP列に入力することができます。条件に応じて連番を入れたい場合に非常に便利な方法となるため、他のマクロにも応用できる技術です。マクロを使って効率的な作業を進めていきましょう。

コメント

タイトルとURLをコピーしました