📘 Excel逆引き事典

【VBA】可視セル(フィルタ結果)を開かずに取得する方法

日々の業務で大量のデータから必要な情報を抽出するのは大変な作業です。特にフィルタリングした結果を他の用途に活用したい場合、手動でのコピーは効率が悪く時間がかかります。この記事では、VBAを使用してフィルタリングされた可視セルだけを取得する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub GetVisibleCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' フィルタ結果の最後の行を取得
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    ' 可視セルだけを取得する配列を作成
    Dim visibleCells() As Variant
    visibleCells = ws.Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible)
    
    ' 結果の表示(ここではコンソールに出力)
    For i = 1 To UBound(visibleCells)
        Debug.Print visibleCells(i, 1)
    Next i
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。