• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VBA】オートフィルタ後のデータの扱いについて)

VBAのオートフィルタ後のデータを二次元配列に取得する方法

このQ&Aのポイント
  • VBAでオートフィルタ後のデータをVariant型の変数に取得する際、二次元配列を使用する方法をご紹介します
  • 例えば、[点数]列を[50点以上]でオートフィルタした結果を取得する場合、ActiveSheet.Range("A2:C42").SpecialCells(xlCellTypeVisible)を使用します
  • しかし、現在のコードではオートフィルタ後のデータのうち、21行目のデータしか取得できない問題があります

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

飛び飛びのセル範囲をそういう具合に格納することはできません。 素直にエクセルの機能を使って Sub macro1()  Dim arr As Variant  Dim w As Worksheet, w0 As Worksheet  Set w0 = ActiveSheet  Set w = Worksheets.Add  w0.Range("A2:C42").Copy Destination:=w.Range("A1")  arr = w.Range("A1").CurrentRegion  Application.DisplayAlerts = False  w.Delete  Application.DisplayAlerts = True End Sub のような格好で目的を達成するのが良いと思います。

noname#142160
質問者

お礼

やはり都合のいいものはないのですね。 ご回答ありがとうございました。