📘 Excel逆引き事典

【VBA】可視セル(フィルタ結果)をエラー処理付きでコピーする方法

日々の業務で大量のデータを扱う際、フィルターを通した結果のみをコピーしたいことは多いでしょう。しかし手作業では時間がかかります。この記事では、エラー処理付きのVBAマクロを使用して、フィルタリングされたデータだけを選択し、安全にコピーする方法をお伝えします。

サンプルコード

VBA
Option Explicit
Sub CopyVisibleCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler
    
    ' フィルタ結果の範囲を取得
    Dim rng As Range
    Set rng = ws.Range("A2:A1000").SpecialCells(xlCellTypeVisible)
    
    ' 可視セルをコピー
    rng.Copy Destination:=ws.Range("B2")
    
    Application.ScreenUpdating = True
    MsgBox "可視セルのコピーが完了しました。", vbInformation
    Exit Sub
ErrorHandler:
    MsgBox Err.Description, vbExclamation
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、フィルタリングされたデータが存在する範囲も正しく指定されているか確認してください。