dポイントプレゼントキャンペーン実施中!

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 へすべて入ってしまいます。
記述方法が悪いのでしょうか?

よろしくお願いします。

A 回答 (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)

ご参考になれば。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/19 09:41

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次配列にしたい理由があれば別ですが。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/19 09:42

例えば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


こんな感じになるんですが、ご参考になれば。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/18 17:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!