ポイント
- 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 セルに一度に反映」などのキーワードで調べました。次のページが参考になりましたの。ありがとうございました♪
ちなみに、本投稿の内容を使うときによく必要になる情報のページはこちらですの。
以上です。