VBA オートフィルタの抽出結果に連番を振る 2選

エクセルマクロ_オートフィルタ抽出データに連番振る_アイキャッチ 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選
エクセルマクロで、連番処理を自動化するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている