Return to VBA Code Examples

VBA 配列を範囲に出力する

このチュートリアルでは、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に州のリストがあり、それらを転置したい場合を考えます。

vba array transpose 1

その場合、以下のようなコードを実行することができます。

Public Sub TestOutputTranspose()
'配列を宣言する
   Dim rnArray() As Variant
'範囲を入力する
   rnArray = Range("A1:A38")
'データを転置する
   Range(Cells(1, 3), Cells(1, 40)).Value = Application.Transpose(rnArray)
End Sub

結果は次のようになります。

vba array transpose 2

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

 

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples