• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 選択範囲のループ処理ができない)

Excel VBAで選択範囲のループ処理がうまくいかない

このQ&Aのポイント
  • Excelのバージョンは2007、OSはWindows Vistaです。セルの選択範囲をループ処理しようとした際、全行分ループしてしまいます。画面上の選択範囲は正しいのに、なぜ正しくループさせることができないのか、教えてください。
  • Excel VBAで選択範囲のループ処理に関して困っています。セルの選択範囲を正しくループさせる方法が分からず、全行分ループしてしまいます。なぜ選択範囲が正しくループされないのか、教えていただけないでしょうか。
  • Excel VBAで選択範囲のループ処理に関して質問があります。セルの選択範囲をループさせる際、全行分ループしてしまい、正しくループさせることができません。画面上の選択範囲が正しいのに、なぜ正しくループされないのでしょうか。お知恵をお貸しください。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

可視セルを使えば良いと思います。 下記操作を「マクロの記録」すれば参考コードが得られます。 A列のオートフィルタ範囲を選択 Ctrl+G (ジャンプ) Alt+S (セルの選択) Y (可視セル) Enter (確定) 得られたコードが上手く適用出来ない場合、遠慮なく捕捉質問してください。

murabee
質問者

お礼

できました! SpecialCellsで選択範囲を可視セルだけにすることで出来るんですね。 大変助かりました。ありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 #1さんの指示で間違いありませんし、マクロが出来ている以上、実際のコードを書くまでもないとは思いますが、記録マクロでは解決できない、2点ほど気をつけなくてはならない点があります。 SpecialCells で、Visible セルを選択する、というものには、タイトル(フィールド)行を含めていますから、その次のセルからです。タイトル行を含めないと、エラーを生じることがあります。 選択された範囲は、Range 型ですが、取得した範囲の末尾に、Cells を付けないと、ループすると、Area(複数のセル) になる可能性があります。 例: Range("A2", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells

murabee
質問者

補足

アドバイスありがとうございます。 Each xxx in Selection~Next でループするより、 rng1 = Range("A2", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells Each xxx in rng1 ... Next としたほうが安全ってことですよね。

関連するQ&A

専門家に質問してみよう