【エクセルマクロ】配列をセルに一括出力する:使用例6選

vba-配列をセルに出力 ExcelVBA

エクセルマクロで、配列をセルに一括代入するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

配列をセルに一括出力(1次元配列_For)

以下のExcelVBAを実行すると、一次元配列をセルにコピーします。


Sub 配列をセルに出力()

Dim buf(2) As Variant
Dim i As Long

    buf(0) = "りんご"
    buf(1) = "みかん"
    buf(2) = "いちご"
    
    For i = 0 To UBound(buf)
        Cells(i + 1, 1) = buf(i)
    Next i

End Sub

 

マクロ実行後

一次元配列の中身を、セルへ代入します。


 

配列をセルに一括出力(1次元配列_Array)

以下のExcelVBAを実行すると、一次元配列をセルに代入します。


Sub 配列をセルにコピー()

Dim buf As Variant
Dim i As Long

    buf = Array("りんご", "みかん", "いちご")
    
    For i = LBound(buf) To UBound(buf)
        Cells(i + 1, 1).Value = buf(i)
    Next i

End Sub

 

マクロ実行後

一次元配列の中身を、セルへ代入します。


 

配列をセルに一括出力(1次元配列_最終行から追加)

以下のExcelVBAを実行すると、一次元配列をセルに代入します。


Sub 配列をセルに転記()

Dim buf As Variant
Dim i As Long
Dim LastRow As Long

    buf = Array("りんご", "みかん", "いちご")

    For i = LBound(buf) To UBound(buf)
    
        '最終行を取得
        LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        
        '配列をセルへコピー
        Cells(LastRow + 1, 1).Value = buf(i)
    Next i

End Sub

 

マクロ実行後

一次元配列を、A列の最終行から追記します。


 

配列をセルに一括出力(2次元配列_For)

以下のExcelVBAを実行すると、二次元配列をセルに書き込みします。


Sub 配列をセルに代入()

Dim buf(1, 2) As Variant
Dim i As Long
Dim j As Long

    buf(0, 0) = 1
    buf(0, 1) = 2
    buf(0, 2) = 3

    buf(1, 0) = 4
    buf(1, 1) = 5
    buf(1, 2) = 6

    For i = 0 To 1
        For j = 0 To 2
            Cells(i + 1, j + 1).Value = buf(i, j)
        Next j
    Next i

End Sub

 

マクロ実行後

二次元配列の中身を、セルへ貼り付けます。


 

配列をセルに一括出力(2次元配列_Range)

以下のExcelVBAを実行すると、二次元配列をセルに一括出力します。


Sub 配列をセルに入力()

Dim buf(1, 2) As Variant

    buf(0, 0) = 1
    buf(0, 1) = 2
    buf(0, 2) = 3

    buf(1, 0) = 4
    buf(1, 1) = 5
    buf(1, 2) = 6

    Range(Cells(1, 1), Cells(UBound(buf, 1) + 1, _
        UBound(buf, 2) + 1)).Value = buf

End Sub

 

マクロ実行後

二次元配列の中身を、セルへ転記します。


 

配列をセルに一括出力(2次元配列_特定データ)

以下のExcelVBAを実行すると、二次元配列をセルにまとめて出力します。


Sub 配列をセルに出力()

Dim buf As Variant
Dim i As Long
Dim j As Long
Dim Q As Long

    'A1:D20の範囲を配列格納
    buf = Range("A1").CurrentRegion
    
    Q = 1
    
    Application.ScreenUpdating = False

    For i = 1 To UBound(buf, 1)
    
        If InStr(buf(i, 4), "東京") >= 1 Then
        
            For j = 1 To UBound(buf, 2)
                Cells(Q, 5 + j).Value = buf(i, j)
            Next j
            Q = Q + 1
        End If
    Next i

    Application.ScreenUpdating = True

End Sub

 

マクロ実行後

「住所」に ”東京” を含むデータ検索して、F列から配列をセルへ代入します。


 
 
この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】配列処理を自動化する:超便利12選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説