◆◆MS-Excel2000スキルアップ講座/VBA編◆◆

オートフィルタによって絞り込まれたシートでの検索
オートフィルタによって絞り込まれた状態になっているシートの、可視状態の行だけを走査して各行の値を参照したいのです。フィルタがかかったシート上を、下向けの矢印キーでカーソルを移動していくイメージです。
移動そのものはセルや行を指定してActionか Selectをかければいいのですが、フィルタされたうちの、次の行はどこかという判断ができないのです。VBAからのフィルタ条件の変更や、抽出された行数の取得などはできるのですが、肝心の行移動の方法がわかりません。複数のAreaオブジェクトを移りながら参照していく方法はとれそうですが、これをやるくらいなら先頭行から順に、フィルタと同じ条件で判定しながら走査していったほうがいいように思え、現在はこれで実現しています。
しかし、この先データ数が増えてくることを考えると、Excelの持つ機能を活用できたほうが、高速に処理できるはずだと思いますが、どうすればよいでしょうか。
例えば次のようなやり方もあると思います。1例として,フィルタがかかった状態で”A”を検索して当該デ−タを”C”列に書き込む場合は,

Sub test()
Dim tmp As Range
Set tmp = Columns("a").SpecialCells(xlCellTypeVisible)
tmp.Select
Selection.SpecialCells(xlCellTypeConstants).Select
i = 1
For Each s In Selection
Cells(i, "c").Value = s.Value
i = i + 1
Next
End Sub

デ−タ全体とか行方向とか,検索方向を変えたい場合も適当にアレンジすれば可能だと思います。

このループにxlCellTypeVisibleを使ってフィルタで抽出した行数の取得を併用すれば、なんとかなりそうです。