Excel

【Excel】VBAマクロで2次元配列を貼り付ける方法(セル、一部や一括や1行や行列など)【Range, Cells, Resize】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロで2次元配列を貼り付ける方法(セル、一部や一括や1行や行列など)【Range, Cells, Resize】について解説していきます。

ポイントとしては、

`Range`、`Cells`、`Resize`メソッド

を使用することです。

マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

 

VBAマクロで2次元配列を1次元ごとにセルに貼り付けする方法【1行に貼り付ける】

それではまず、1次元ごとにセルに貼り付ける方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub PasteArrayRowWise()
    Dim aaaaaArraaaaa As Variant
    ' 2次元配列の定義(2行3列)
    aaaaaArraaaaa = Array(Array(1, 2, 3), Array(4, 5, 6))
    
    Dim aaaaaIRowaaaaa As Long
    For aaaaaIRowaaaaa = LBound(aaaaaArraaaaa) To UBound(aaaaaArraaaaa)
        ' 配列の各行をA列から順に貼り付ける
        Range("A" & aaaaaIRowaaaaa + 1).Resize(, UBound(aaaaaArraaaaa(aaaaaIRowaaaaa)) + 1) = aaaaaArraaaaa(aaaaaIRowaaaaa)
    Next aaaaaIRowaaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でPasteArrayRowWise関数を実行します。

このコードでは、2次元配列の各行をExcelシートの1行に貼り付けています。

`Resize`メソッドを使用して、貼り付ける範囲の列数を動的に指定しています。

 

VBAマクロで2次元配列をすべて各値としてセルに貼り付けする方法【1行に貼り付ける】

続いては、すべての値を1行に貼り付ける方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub PasteArrayAsSingleRow()
    Dim aaaaaArraaaaa As Variant
    ' 2次元配列の定義(2行3列)
    aaaaaArraaaaa = Array(Array(1, 2, 3), Array(4, 5, 6))
    
    Dim aaaaaIRowaaaaa As Long, aaaaaIColaaaaa As Long
    Dim aaaaaOneRowaaaaa() As Variant
    ReDim aaaaaOneRowaaaaa(1 To (UBound(aaaaaArraaaaa, 1) + 1) * (UBound(aaaaaArraaaaa, 2) + 1))
    
    Dim aaaaaIndexaaaaa As Long
    aaaaaIndexaaaaa = 1
    
    For aaaaaIRowaaaaa = LBound(aaaaaArraaaaa, 1) To UBound(aaaaaArraaaaa, 1)
        For aaaaaIColaaaaa

 = LBound(aaaaaArraaaaa, 2) To UBound(aaaaaArraaaaa, 2)
            ' 2次元配列の値を1次元配列に格納する
            aaaaaOneRowaaaaa(aaaaaIndexaaaaa) = aaaaaArraaaaa(aaaaaIRowaaaaa, aaaaaIColaaaaa)
            aaaaaIndexaaaaa = aaaaaIndexaaaaa + 1
        Next aaaaaIColaaaaa
    Next aaaaaIRowaaaaa
    
    ' 1次元配列をA1から横に貼り付ける
    Range("A1").Resize(, UBound(aaaaaOneRowaaaaa)) = aaaaaOneRowaaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でPasteArrayAsSingleRow関数を実行します。

このコードでは、2次元配列のすべての要素を1行に並べて貼り付けます。

2次元配列を1次元配列に変換することで、Excelシート上で1行に連続して値を出力することができます。

この処理は、特に複数のデータ行を一括して処理する際に便利です。

 

VBAマクロで2次元配列をすべて各値としてセルに貼り付けする方法【元の形のまま行列で貼り付ける】

最後に、2次元配列をそのままの形でセルに貼り付ける方法について解説します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub PasteArrayAsMatrix()
    Dim aaaaaArraaaaa As Variant
    ' 2次元配列の定義(2行3列)
    aaaaaArraaaaa = Array(Array(1, 2, 3), Array(4, 5, 6))
    
    ' 配列全体を指定した範囲に貼り付ける
    Range("A1:C2").Value = aaaaaArraaaaa
End Sub

コードのAlt+F8を押し、マクロ選択画面でPasteArrayAsMatrix関数を実行します。

このコードは非常にシンプルで、定義した2次元配列をシートにそのままの形で貼り付けます。

 

まとめ

VBAを使った2次元配列の貼り付け方法には、1次元ごとに貼り付ける方法、全値を1行に貼り付ける方法、そして元の形のまま行列で貼り付ける方法があります。これらの方法を使い分けることで、さまざまなデータ処理が可能になります。ぜひこの記事を参考に、あなたの作業効率をアップさせてください。