【エクセルマクロ】オートフィルタの抽出結果に連番を振る:高速化する方法

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

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

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

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

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


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

Dim Buf As Long
Dim Cnt As Long
Dim LastRow As Long

    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Cnt = 1

    For Buf = 2 To LastRow
    
        If Rows(Buf).Hidden = False Then
            Cells(Buf, 4) = Cnt
            Cnt = Cnt + 1
        End If
        
    Next

End Sub

 

オートフィルタでデータ抽出する前

フィルタでデータを抽出していない状態です。


 

オートフィルタでデータ抽出した後

フィルタでデータ抽出した後に、マクロを実行して
可視セルにのみ自動で連番を表示しました。


 

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

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


Sub オートフィルタ後の抽出データに連番付与()
 
Dim Last_Row As Long
 
    '最終行を取得
    Last_Row = Cells(Rows.Count, 1).End(xlUp).Row
     
    '関数を入力
    Cells(2, 4) = "=SUBTOTAL(3,$C$1:C2)-1"
    
    '関数コピペ
    Cells(2, 4).Copy
    Range(Cells(2, 4), Cells(Last_Row, 4)).Select
    ActiveSheet.Paste

    Application.CutCopyMode = False
 
End Sub

 

マクロ実行後

SUBTOTAL関数を入力して、連番を振りました。


 

オートフィルタ実行後も崩れない連番を表示します。


 
この記事がお役に立てれば幸いです。
 

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