- ベストアンサー
エクセルの列一括書き込み
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 へすべて入ってしまいます。 記述方法が悪いのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#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) ご参考になれば。
その他の回答 (2)
- tom11
- ベストアンサー率53% (134/251)
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次配列にしたい理由があれば別ですが。
お礼
2次配列のやり方は確認できませんでしたが 次回やってみようと思います。 ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
例えば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 こんな感じになるんですが、ご参考になれば。
お礼
うまくいきませんでした・・・ ありがとうございます。
お礼
ありがとうございます。 できました。