【エクセルマクロ】オートフィルタの抽出結果に連番を振る:自動化

エクセルマクロ_オートフィルタ抽出データに連番振る_アイキャッチ ExcelVBA

エクセルマクロで、オートフィルタの抽出結果に連番を振るVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

オートフィルタの抽出結果に連番を振る(可視セル)

以下のExcelVBAを実行すると、オートフィルタ後の可視セルに連番をうちます。


Sub オートフィルタ可視セルに連番表示()

Dim i As Long
Dim Cnt As Long
Dim LastRow As Long

    '最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    '連番用
    Cnt = 1

    'フィルターでデータ抽出
    Range("A1").CurrentRegion.AutoFilter _
        Field:=3, _
        Criteria1:="埼玉県"
        
    '2行目~最終行までループ
    For i = 2 To LastRow
        
        '行が非表示じゃなければ連番入力
        If Rows(i).Hidden = False Then
            Cells(i, 4) = Cnt
            Cnt = Cnt + 1
        End If
    Next

End Sub

 

マクロ実行後

フィルタ後の可視セルの上から順番に、連番を入力します。


 

フィルタを解除した後の状態です。


 

オートフィルタの抽出結果に連番を振る(崩れない連番)

以下のExcelVBAを実行すると、オートフィルタ後のデータに通し番号を表示します。


Sub オートフィルタ後の抽出データに連番付与()

Dim LastRow As Long

    '最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    'セルD2に関数入力
    Cells(2, 4) = "=SUBTOTAL(3,$C$1:C2)-1"

    'D列に関数コピペ
    Cells(2, 4).Copy
    Range(Cells(2, 4), Cells(LastRow, 4)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

    'フィルターでデータ抽出
    Range("A1").CurrentRegion.AutoFilter _
        Field:=3, _
        Criteria1:="埼玉県"

End Sub

 

マクロ実行後

SUBTOTAL関数を使用して、D列に連番を入力します。


 

C列を「埼玉県」でフィルタ抽出した場合、連番1~5が自動表示されます。

フィルタ抽出後も崩れない連番をふることができます。


 

C列を「東京都」でフィルタ抽出した場合、連番1~3が自動表示されます。


 

フィルタを解除した後の状態です。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】連番処理を自動化する使用例まとめ
 

【エクセルマクロ】連番処理を自動化する:超便利7選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説