【VBA】可視セル(フィルタ結果)をエラー処理付きで抽出する方法
毎回手作業でフィルタ結果のデータをコピーするのは大変ですよね?この記事では、Excel VBAを使って簡単に可視セル(フィルタ結果)だけを抽出する方法をお伝えします。さらに、エラー処理も追加して安定した動作を実現します。
サンプルコード
VBA
Option Explicit
Sub ExtractVisibleCells()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' フィルタリングされたデータがあるシート名に変更してください。
Application.ScreenUpdating = False ' 画面更新を停止して処理速度を向上させる
On Error GoTo ErrorHandler ' エラー処理の開始
Dim lastRow As Long, i As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 最終行取得
For i = 1 To lastRow ' ループを回す
If ws.Rows(i).Hidden Then GoTo NextIteration ' 非表示の行はスキップする
' 可視セルのみ抽出処理(ここに具体的なコードを記述)
Debug.Print "Visible cell at row: " & i ' デバッグ用に出力
NextIteration:
Next i
Application.ScreenUpdating = True ' 画面更新を再開
Exit Sub ' 正常終了
ErrorHandler:
MsgBox "エラーが発生しました。" & vbCrLf & Err.Description, vbExclamation ' エラーメッセージ表示
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」機能では効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認し、必要に応じてコードを調整してください。