【VBA】可視セル(フィルタ結果)を完全一致で配列に格納する方法
日々の業務で大量のデータから特定の情報を抽出するのは大変な作業です。特にフィルタリング後の結果だけを取り出す場合、手作業では時間がかかります。この記事では、VBAを使用してフィルター後の可視セルを完全一致で配列に格納する方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub FilteredCellsToArray()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' フィルタリング後の可視セル範囲を取得
Dim visibleRange As Range
Set visibleRange = ws.UsedRange.SpecialCells(xlCellTypeVisible)
' 配列の初期化
Dim arr() As Variant
ReDim arr(1 To visibleRange.Rows.Count, 1 To visibleRange.Columns.Count)
' フィルタリング後の可視セルを配列に格納
Dim i As Long, j As Long
For i = 1 To visibleRange.Rows.Count
For j = 1 To visibleRange.Columns.Count
arr(i, j) = visibleRange.Cells(i, j).Value
Next j
Next i
' 配列を表示(デバッグ用)
Debug.Print "配列の内容:"
Dim k As Long, l As Long
For k = LBound(arr, 1) To UBound(arr, 1)
For l = LBound(arr, 2) To UBound(arr, 2)
Debug.Print arr(k, l);
Next l
Debug.Print
Next k
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。