【エクセルマクロ】 連番の抜けを探す:動画あり

エクセルマクロ 連番の抜けを探す アイキャッチ ExcelVBA

エクセルマクロで、連番の抜けを探す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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説