• ベストアンサー

オートフィルタ使用時のマクロによるセルの移動

オートフィルタによって抽出した結果、表示されている行の内容を順々に参照していきたいのですが、 どうすればよいのでしょうか? 簡単なことのような気がするのですが・・・。 ActiveCell.Offset(1, 0).Select とすると、フィルタによって非表示になっている行にも移動してしまいます。 フィルタによって抽出する項目は複数の列を使用するので、マクロでは抽出条件を設定しません。 以上、お願いしまーす。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

#1です。 Set DataRng = Range("A1").CurrentRegion を次のように変更してみて下さい。 'A列の開始セルから終了セルまで Set DataRng = Range(Range("A1"), Range("A1").End(xlDown))

who_is_aki
質問者

お礼

ありがとうございました。 思っていたように動きました。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんな感じです。ポイントは可視セルですね。 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

who_is_aki
質問者

補足

ご回答ありがとうございます。 教えていただいた方法だと一番上の行から、 (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列だけを移動したい場合はどうすればよいのでしょうか?

関連するQ&A

専門家に質問してみよう