- ベストアンサー
オートフィルタ使用時のマクロによるセルの移動
オートフィルタによって抽出した結果、表示されている行の内容を順々に参照していきたいのですが、 どうすればよいのでしょうか? 簡単なことのような気がするのですが・・・。 ActiveCell.Offset(1, 0).Select とすると、フィルタによって非表示になっている行にも移動してしまいます。 フィルタによって抽出する項目は複数の列を使用するので、マクロでは抽出条件を設定しません。 以上、お願いしまーす。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 Set DataRng = Range("A1").CurrentRegion を次のように変更してみて下さい。 'A列の開始セルから終了セルまで Set DataRng = Range(Range("A1"), Range("A1").End(xlDown))
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんな感じです。ポイントは可視セルですね。 Dim DataRng As Range, QueryRng As Range Dim rngCell As Range 'データ範囲 Set DataRng = Range("A1").CurrentRegion 'Auto Filterで抽出されたデータ範囲をQueryRngにセット 'DataRng内の可視セル Set QueryRng = DataRng.SpecialCells(xlCellTypeVisible) 'QueryRng内のセルを一つずつ参照 For Each rngCell In QueryRng '実際の処理 Debug.Print rngCell.Text & vbCrLf Next rngCell
補足
ご回答ありがとうございます。 教えていただいた方法だと一番上の行から、 (A,1)→(A,2)→(A,3)→(A,4)→(B,1)→(B,2)→(B,3)→(B,4)→(C,1)→(C,2)→(C,3)→(C,4)→(D,1)→(D,2)→(D,3)→(D,4) のように移動していくのですが、 A列だけを移動したい場合はどうすればよいのでしょうか?
お礼
ありがとうございました。 思っていたように動きました。