• ベストアンサー

エクセルの列一括書き込み

VB.NET2008を使用しております。 VB.NETより 配列のデータをエクセルのセルへ一括書き込みしたいのですが 2次元配列はうまきいきました。(下記) Dim week0_0(11, 8) As Integer ExcelSheet.Range("C3:K14") = week0_0 上記では一括で書き込みできたのですが 列のみの書き込みがうまくいきません。(下記) Dim week0_1(11) As Integer ExcelSheet.Range("L3:L14") = week0_1 先頭の配列のデータが L3~L14 へすべて入ってしまいます。 記述方法が悪いのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 こちらでのテストコードです。 Dim xlApp As Excel.Application = Nothing Dim xlBooks As Excel.Workbooks = Nothing Dim xlBook As Excel.Workbook = Nothing Dim xlSheets As Excel.Sheets = Nothing Dim xlSheet As Excel.Worksheet = Nothing Dim v() As Integer = {1, 4, 8} xlApp = New Excel.Application() xlBooks = xlApp.Workbooks xlBook = xlBooks.Open("R:\aaa.xls") xlSheet = xlBook.Worksheets("a") xlApp.Visible = True ' 今回の問題点 xlSheet.Range("H1:H3").Value = xlApp.WorksheetFunction.Transpose(v) ご参考になれば。

to727jp
質問者

お礼

ありがとうございます。 できました。

その他の回答 (2)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.3

Dim week0_1(11, 0) As Integer week0_1(0, 0) = 1111 week0_1(1, 0) = 2222 -------------------- -------------------- ExcelSheet.Range("L3:L14") = week0_1 このように、2次配列にしては、駄目ですか?? どうしても、1次配列にしたい理由があれば別ですが。

to727jp
質問者

お礼

2次配列のやり方は確認できませんでしたが 次回やってみようと思います。 ありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

例えばExcelVBAであれば、 Sub try() Dim v(1 To 3) v(1) = 1 v(2) = 4 v(3) = "aaa" Range("A1:A3").Value = v '全て1になる Range("B1:B3").Value = Application.WorksheetFunction.Transpose(v) '1,4,aaaが入る Range("C1:E1").Value = v '1,4,aaaが入る End Sub こんな感じになるんですが、ご参考になれば。

to727jp
質問者

お礼

うまくいきませんでした・・・  ありがとうございます。

関連するQ&A