VBA 配列を範囲に出力する

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

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

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