Excel VBA でフィルター抽出後の可視セルだけを別シートへコピーする方法

目次

概要

オートフィルターで絞り込んだ行を、そのまま別シートへ転記したい場面は多いかと存じます。単純に Copy を実行すると非表示行までコピーされてしまいますが、SpecialCells(xlCellTypeVisible) を併用すると可視セルのみを転記できます。本記事では、抽出 → 可視セルコピー → 見出し行削除までを自動化する VBA サンプルを丁寧にご説明いたします。


前提条件

項目内容
対応 ExcelMicrosoft 365 または 2016 以降
元データシート Data のセル C3 を起点とする表(見出し行付き)
転記先シート Result
マクロ設置先標準モジュール

サンプルコード(VBA)

Sub CopyVisibleRows()

    Dim srcSheet  As Worksheet        ' 元データシート
    Dim dstSheet  As Worksheet        ' 転記先シート
    Dim filterRng As Range            ' フィルター対象範囲
    
    Set srcSheet  = Worksheets("Data")
    Set dstSheet  = Worksheets("Result")
    Set filterRng = srcSheet.Range("C3").CurrentRegion   ' 見出し行を含む表
    
    '--- 「担当者」列(3 列目)で「Mori」を抽出 ---
    filterRng.AutoFilter _
        Field:=3, _
        Criteria1:="Mori"
    
    '--- 可視セルのみを Result シート A1 へコピー ---
    filterRng.SpecialCells(xlCellTypeVisible).Copy _
        Destination:=dstSheet.Range("A1")
    
    '--- 転記先シートの見出し行を削除(任意)---
    dstSheet.Rows(1).Delete
    
    '--- メッセージ表示 ---
    MsgBox "抽出済みデータを Result シートへコピーしました。", vbInformation

End Sub

コードのポイント

説明
9CurrentRegion で見出しを含む表全体を取得しています。開始セルは実データに合わせて調整ください。
12–14Field:=3 は表内 3 列目(担当者列)を示し、Criteria1:="Mori" で該当行を抽出しています。
17–18SpecialCells(xlCellTypeVisible) により、抽出後に表示されているセルだけをコピーします。
21見出し行が不要な場合は Rows(1).Delete で削除できます。必要に応じて削除処理を省略してください。

応用例

要件実装のヒント
見出し行を残したいRows(1).Delete をコメントアウトしてください。
複数条件で抽出AutoFilter を複数回呼び出し、別フィールドに条件を設定すると AND 条件を構築できます。
コピー後に列幅を調整dstSheet.Columns.AutoFit を追加すると自動で列幅が整います。

よくある質問

質問回答
テーブル(ListObject)でも利用できますか。ListObject.DataBodyRangefilterRng に設定すれば同じ手順で可視セルのみを転記できます。
非表示行が多いとコピー速度に影響しますか。可視セルのみをコピーするため、大量データでも比較的高速です。パフォーマンスが気になる場合は Application.ScreenUpdating = False を併用するとさらに改善します。

まとめ

SpecialCells(xlCellTypeVisible) を併用すると、オートフィルターで抽出した行だけを確実にコピーできます。まずはサンプルコードを実行し、抽出結果が Result シートに正しく転記されることをご確認ください。列番号や抽出条件を変更するだけで、さまざまなデータ転記タスクへ応用していただけます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次