VBA 配列を範囲に出力する
Last updated on 4月 24, 2022
このチュートリアルでは、VBAを使用して、配列を範囲に出力する方法を説明します。
配列を範囲に出力(印刷)する
配列に格納されているデータは、簡単にExcelのシートに出力することができます。 その方法は3つあります。
別の範囲にデータを出力する
Excelのある範囲のデータを配列に入力し、Excelの別の範囲にデータを出力することができます。
Public Sub TestOutput()
'配列を宣言する
Dim rnArray() As Variant
'配列に範囲を入力する
rnArray = Range("A1:H24")
'配列を別のセル範囲に出力する
Range("J1:Q24") = rnArray()
End Sub
1行のコードで配列にコピーされ、シート上の別のセル範囲に配列全体が出力されます。
配列のループ処理とデータの出力
この例では、配列をループして、範囲に出力しています。
Public Sub TestLoopArray()
'配列を宣言する
Dim rnArray() As Variant
'行番号を格納する整数を宣言する
Dim iRw As Integer
'配列変数に範囲を代入
rnArray = Range("A1:A10")
'配列の値をループする
For iRw = LBound(rnArray) To UBound(rnArray)
'別の範囲にデータを入力する
Cells(iRw, 2).Value = rnArray(iRw, 1)
Next iRw
End Sub
LBoundと UBoundは 、配列の開始インデックス(最小値)と終了インデックス(最大値)、この場合は1と10を返します。
配列データを転置する
配列のデータをExcelシートに転置することもできます。 Transposeを使用すると、Excelシート上で、垂直方向のデータを水平方向に表示することができます。
例えば、Excelに州のリストがあり、それらを転置したい場合を考えます。
その場合、以下のようなコードを実行することができます。
Public Sub TestOutputTranspose()
'配列を宣言する
Dim rnArray() As Variant
'範囲を入力する
rnArray = Range("A1:A38")
'データを転置する
Range(Cells(1, 3), Cells(1, 40)).Value = Application.Transpose(rnArray)
End Sub
結果は次のようになります。
Debug.Printで出力する
また、配列の値をデバッグウィンドウに出力することもできます。
Public Sub TestLoopArray()
'配列を宣言する
Dim rnArray() As Variant
'行番号を格納する整数を宣言する
Dim iRw As Integer
'配列変数に範囲を代入する
rnArray = Range("A1:A10")
'1~10行をループする
For iRw = 1 To UBound(rnArray)
'イミディエイトウィンドウに出力
Debug.Print rnArray(iRw, 1)
Next iRw
End Sub