ポイント
- Range オブジェクトに配列を代入すればよい。
- Range のセル数と、配列の要素数は一致させること。
- 1次元配列 ⇒ 横方向に書き込み。
- 2次元配列 ⇒ 1次元目が行に、2次元目が列に書き込み。
- 縦方向に書き込むには、1次元配列を WorksheetFunction.Transpose 関数にかけた結果を Range に代入すればよい。
横、縦、縦横方向に書き込むサンプルコード
''' <summary>
''' 配列を左から右へ横方向にセルへ書き込みます。
''' </summary>
Public Sub Horizontal()
' 配列を生成
Dim strArray(2) As String
strArray(0) = "横1"
strArray(1) = "横2"
strArray(2) = "横3"
' 横方向に書き込み
Range("A1:C1") = strArray
End Sub
''' <summary>
''' 配列を上から下へ縦方向にセルへ書き込みます。
''' </summary>
Public Sub Vertical()
' 配列を生成
Dim strArray(2) As String
strArray(0) = "縦1"
strArray(1) = "縦2"
strArray(2) = "縦3"
' 縦方向に書き込み
Range("A1:A3") = WorksheetFunction.Transpose(strArray)
End Sub
''' <summary>
''' 配列を縦横方向にセルへ書き込みます。
''' </summary>
Public Sub HorizontalVertical()
' 配列を生成
Dim strArray(2, 2) As String
strArray(0, 0) = "縦1横1"
strArray(0, 1) = "縦1横2"
strArray(0, 2) = "縦1横3"
strArray(1, 0) = "縦2横1"
strArray(1, 1) = "縦2横2"
strArray(1, 2) = "縦2横3"
strArray(2, 0) = "縦3横1"
strArray(2, 1) = "縦3横2"
strArray(2, 2) = "縦3横3"
' 縦横方向に書き込み
Range("A1:C3") = strArray
End Sub
おわりに
環境はやっぱり Excel 2013 ですの。今回は「vba セルに一度に反映」などのキーワードで調べました。次のページが参考になりましたの。ありがとうございました♪
ちなみに、本投稿の内容を使うときによく必要になる情報のページはこちらですの。
以上です。
