Dim intR(1 TO 50) As Integer ' 抽出されるデータの数が分からないので、それぞれのデータに
' 変数名を付けるのが難しいから、配列変数名を使用する。
' intR(1) から int(50) までが定義できる。
' i の値によって番号が決まる。
Worksheets(Sheet3").Range("A1:A25").ClearContents ' データのみ消去
Worksheets(Sheet1").Range("D1:D25").ClearContents
strSto = "錦店" ' 変数 strSto に店名を代入する。
ActiveSheet.Range("$A$1:$C$22").AutoFilter Field:=1, Criterial:=strSto
' A1からC22を対象に Field1 (A列)をフィルターして strSto を抽出する。
i=1
For Each FilterRow In Worksheets("Sheet1").Range("A2").CurrentRegion.Resize(,
1).SpecialCells(xlVisible)
' For _ Next であるが、この場合は To が無くて、抽出結果のデータがすべて終わるまで実行する。
If FilterRow.Row > 2 Then ' タイトル行番が 1 だから 2 以上にフィルター
intR(i) = FilterRow.Row ' 結果の行番号を intR(i) に代入する。
Range("D"&intR(i)).Value = "●" ' D列に黒丸を記入している。
Worksheets("Sheet3").Range("A" & i).Value=intR(i)
' Sheet3 に行番号を記入する。
i = i+1 ' i が 1 づつ増加する。
End If
Next FilterRow ' For _ Next の折り返し点
Selection.AutFilter ' フィルターの開始と同じ構文でも解除される。
ActiveSheet.AutoFilterMode=False ' フィルターの解除の構文
' どちらでも解除される。
2. 別シートの抽出結果の行番号を記入する。
3. フィルターを解除すると、抽出した行だけに
黒丸が付いている。
1. データベースから錦店だけを抽出する。
抽出結果のD列に黒丸を付ける。
● データベースからフィルター抽出したデータすベての
行番号を取得する。
基本的なマクロの習得
フィルター抽出結果のすべての行番号取得
実際に使っているシステムの内容で解説
EXCEL VBA 講座