動作検証バージョン:Windows 10 Pro(64-bit)+ 32bit Excel(バージョン2212 ビルド15928.20216 Microsoft Store)
「VBA 可視行 for each」
「可視行 ループ VBA CurrentRegion.SpecialCells」
といった検索キーワードでアクセスがありました。
Excel VBAで、見えている行(可視行)のみFor Each~Nextループで処理するには、どのようなコードを書けばいいのかを調べていた方による検索です。
[スポンサードリンク]
可視行のみをFor Each~Nextループで処理するサンプルマクロ
アクティブシートにフィルターを設定した状態で、以下のExcelマクロを実行してください。
Sub 可視行のみループ処理する()
Dim rng As Range
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows
rng.Select
MsgBox rng.Address(False, False)
Next
End Sub
Dim rng As Range
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows
rng.Select
MsgBox rng.Address(False, False)
Next
End Sub
可視行のみが選択されて、そのセル番地がメッセージボックスに順番に表示されます。
Range.Rowsプロパティで行を表すRangeを取得
個々の可視セルに対するFor Each~Nextループ処理は既にご紹介しています。
ほとんど同じコードですが、Range.Rowsプロパティを使えば、
For Each rng In Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Rows
行を表すRangeオブジェクトを取得できます。
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » 可視行のみをFor Each~Nextループで処理する-SpecialCells(xlCellTypeVisible).Rows