<p>Excel で 表示されているセルだけを対象にしたい場合、SpecialCells(xlCellTypeVisible) を使用します。<br /> オートフィルタで絞り込まれた範囲を対象に表示されているセルを取得するコードは以下のようになります。</p>
<pre class="brush: vb;">.AutoFilter.Range.SpecialCells(xlCellTypeVisible)</pre>
<p>ただ、これをそのまま使用すると行単位で処理を行いたい場合には、1行につき対象列数と同じ回数だけ引っかかりますので、この挙動への対応を検討する必要があります。<br /> 列数分引っかかるのは列が複数あるからですので、1列であれば1回で問題はないはずです。<br /> なので、対象の列を1列目に限定します。限定すると以下のようになります。</p>
<pre class="brush: vb;">.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)</pre>
<p>上記の状態では対象は各セルですので、列全体を処理したいときには行番号を取得したほうが、セル範囲指定などの場面で有利です。その行番号の取得には Row メンバを使用します。</p>
<p>処理全体では、以下のようになります。</p>
<pre class="brush: vb;">Sub 見えている行だけを対象に()
    With ActiveSheet
        ' Filter
        .AutoFilter
        .AutoFilter フィルター式...
        
        ' Search
        For Each c In .AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible)
            MsgBox "表示されているデータの行番号は" &amp; c.Row "です。"
        Next c
    End With
End Sub
</pre>