カテゴリー
Microsoft

【Excel VBA】配列を横方向に、縦方向に、縦横範囲に 1 度の操作で書き込むコード

ポイント

  • 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 セルに一度に反映」などのキーワードで調べました。次のページが参考になりましたの。ありがとうございました♪

ちなみに、本投稿の内容を使うときによく必要になる情報のページはこちらですの。

以上です。

コメントを残す