Excel VBA > tips 高速化 > シートにVariant型の配列データを一気に展開(出力)する
このエントリーをはてなブックマークに追加

シートにVariant型の配列データを一気に展開(出力)する

できるだけ簡素化して展開する

2次元配列はシートだけでなくリストボックスなどでもよく使います。
そこで今回はできるだけ簡単にループを使わないで一気にシートへ書き込める方法を紹介します。

Cells(1, 1).Resize(UBound(var, 1), UBound(var, 2)).Value = var

ポイントはVariant変数「var」の行の最大値、列の最大値を取得し、それをResizeで使用する点です。

Sub Variant型の配列をシートに出力()

    Dim var As Variant

    ‘===============================
    ‘シート1のデータをシート2に出力
    ‘===============================

    ‘シート1をバリアント配列「var」へ格納
    var = Worksheets(1).Cells(1, 1).CurrentRegion.Value

    ‘シート2へ出力
    Worksheets(2).Cells(1, 1).Resize(UBound(var, 1), UBound(var, 2)).Value = var

End Sub

開始インデックスに注意

Variant型の配列に入れるときに、インデックスが0から始まる場合と1から始まる場合があるので注意です。
気を付けて「ubound(var,1)+1」しておかないと1行(1列)少ない値が出力されます。

カテゴリ:tips 高速化