VBAで配列を扱うときに困るのが、中身を確認するのにひと手間かかることです。
シートと違ってすぐに値を見ることができませんし、
ローカルウィンドウを使っても表形式では見せてくれません。
この対策として「配列を新規シートに出力する」マクロを用意するのがおすすめです。
ワークシートに書き出せば視覚的にもとても見やすくなりますし、
オートフィルターを付けるだけでソートや検索も使えるようになります。
デバッグ作業のいいお供になりますので、汎用関数に追加してみてください。
ソースコード
' 一次元配列 → 新規シート Sub 一次元配列を新規シートに出力する(一次元配列 As Variant, Optional 配列名 As String = "配列") ' 新規シートを出力してシート名を配列名に Dim ws As Worksheet Set ws = Workbooks.Add.Worksheets(1) ws.Name = 配列名 ' 縦方向に出力 Dim 要素数 As Long: 要素数 = UBound(一次元配列) - LBound(一次元配列) + 1 ws.Range("A1").Value = 配列名 ws.Range("A2").Resize(要素数) = GetArray一次元配列→n行1列の二次元配列(一次元配列) ' フィルターを設置 ws.Rows(1).AutoFilter ' 全セルをセンタリング ws.Cells.HorizontalAlignment = xlCenter End Sub ' 一次元配列 → 二次元配列 Function GetArray一次元配列→n行1列の二次元配列(Arr As Variant) As Variant Dim 生成配列() ReDim 生成配列(LBound(Arr) To UBound(Arr), 1 To 1) Dim i As Long For i = LBound(Arr) To UBound(Arr) 生成配列(i, 1) = Arr(i) Next GetArray一次元配列→n行1列の二次元配列 = 生成配列 End Function ' 二次元配列 → 新規シート Sub 二次元配列を新規シートに出力する(二次元配列 As Variant, Optional 配列名 As String = "配列") ' 新規シートを出力してシート名を配列名に Dim ws As Worksheet Set ws = Workbooks.Add.Worksheets(1) ws.Name = 配列名 ' 要素番号を見出しに使用 Dim i As Long, C As Long: C = 1 For i = LBound(二次元配列, 2) To UBound(二次元配列, 2) ws.Cells(1, C).Value = "要素" & i C = C + 1 Next ' 配列をセルに出力 Dim 行数 As Long: 行数 = UBound(二次元配列, 1) - LBound(二次元配列, 1) + 1 Dim 列数 As Long: 列数 = UBound(二次元配列, 2) - LBound(二次元配列, 2) + 1 ws.Range("A2").Resize(行数, 列数) = 二次元配列 ' フィルターを設置 ws.Rows(1).AutoFilter ' 全セルをセンタリング ws.Cells.HorizontalAlignment = xlCenter End Sub
解説
中身は基本的な「配列をセルに書き出す」コードです。
配列→セル出力の基本コードについてはこちらをご覧ください。
www.limecode.jp
一次元配列を横に書き出してもオートフィルターは使えないので、
縦に出力してオートフィルターを設置しています。
縦に出力する場合は、要素数が少ないときは
ws.Range("A2").Resize(要素数) =WorksheetFunction.Transpose(一次元配列)
これで一発なのですが、Transpose関数は要素数上限が65,536であるため、
ここはしっかり「一次元配列→二次元配列」の関数を作って対応しています。
※ Transpose上限の詳しい解説はこちらをどうぞ
www.limecode.jp
デバッグ用の関数ということで大事にしたいのが、
ws.Name = 配列名
この「配列の名称をシート名に設定する」機能です。
このコードをマクロ本体やイミディエイトウィンドウで実行する際に、
Call 二次元配列を新規シートに出力する(Arr品物リスト, "Arr品物リスト")
このように変数名も文字列として渡しておくことで、

こんな風に変数名がシート名になってデバッグが捗ります。
なかなか重宝する機能ですので是非ご活用ください。