エクセルマクロで、オートフィルタの抽出結果に連番を振る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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク