エクセルマクロで、連番の抜けを探すVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
連番の抜けを探す
以下のExcelVBAを実行すると、連番の抜けを探します。
Sub 欠番を探す()
Dim i As Long
Dim J As Long
Dim LastRow As Long
Dim Cnt As Long
'最終行を取得
LastRow = Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1) + 1
'連番チェック用
Cnt = 1
'2行目からループ
For i = 2 To LastRow
If Cells(i, 1) = Cnt Then
'連番を入力
Cells(i, 3) = Cnt
Else
'A列をループ
For J = 2 To LastRow
'連番を入力
If Cells(J, 1) = Cnt Then
Cells(i, 3) = Cnt
Exit For
'欠番がある場合は、背景色を塗る
ElseIf J = LastRow Then
Cells(i, 3) = Cnt
Cells(i, 3).Interior.Color = 65535
Exit For
End If
Next J
End If
Cnt = Cnt + 1
Next i
End Sub
マクロ実行後
A列には重複がない連番が入力されています。
A列の連番で抜けている数字をチェックして、C列に結果を転記します。
C列で黄色マーキングの数字は、A列で抜けている連番です。
連番の抜けを探す(欠番挿入)
以下のExcelVBAを実行すると、連番の抜けを探し、欠番を挿入します。
Sub 抜けている連番を探す()
Dim i As Long
Dim LastRow As Long
Dim Cnt As Long
'最終行を取得
LastRow = Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1) + 1
'連番チェック用
Cnt = 1
'2行目からループ
For i = 2 To LastRow
If Cells(i, 1) <> Cnt Then
Rows(i).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(i, 1) = Cnt
Cells(i, 1).Interior.Color = 65535
End If
Cnt = Cnt + 1
Next i
End Sub
マクロ実行後
A列には重複がない連番が入力されています。
A列で欠けている連番をチェックし、欠番があれば行挿入して番号を入力します。
A列で黄色マーキングの数字は、追加した連番です。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】連番処理を自動化する使用例まとめ
【エクセルマクロ】連番処理を自動化する:超便利7選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク