📘 Excel逆引き事典

【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.
シート名や列番号が正しいか確認し、必要に応じてコードを調整してください。