|
分類:[.NET 全般]
開発環境:WinXP SP3
開発言語:VB2003
クライアント:Win2000 SP4
DataGridのデータをエクセルに出力したいのですが、開発環境(WinXP)では問題なく
処理できるのですが、クライアント(Win2K)ではエラー「HRESULT からの例外です : 0x800A03EC」
が発生します。
いろんなサイトを探していじってみましたが、いまだ解決しません。。。
皆さんのお助けお願いします。
↓↓↓ソース
Dim objExcel As Object
Dim objExcelBooks As Object
Dim objExcelBook As Object
Dim objExcelSheets As Object
Dim objExcelSheet As Object
Dim intRowCnt, intColCnt As Integer
Dim Range As Object
Dim i, j As Integer
objExcel = CreateObject("Excel.Application")
objExcelBooks = objExcel.workbooks
objExcelBook = objExcelBooks.add
objExcelSheets = objExcelBook.worksheets
objExcelSheet = objExcelSheets.item(1)
Me.dgdWillDelay.Select()
Dim dt As DataTable = CType(dgdWillDelay.DataSource, DataTable)
Dim dtRow As DataRow
Dim dtColumn As DataColumn
'DataArray定義
Dim DtArCol, DtArRow As Double
DtArCol = 0
For Each dtColumn In dt.Columns
DtArCol = DtArCol + 1
Next
DtArRow = 0
For Each dtRow In dt.Rows
For i = 0 To dt.Columns.Count - 1
DtArRow = DtArRow + 1
Next
Next
Dim DataArray(DtArRow, DtArCol) As Object
'列名を格納
j = 0
For Each dtColumn In dt.Columns
DataArray(0, j) = dtColumn.ColumnName
j = j + 1
Next
'明細を格納
j = 0
For Each dtRow In dt.Rows
j = j + 1
For i = 0 To dt.Columns.Count - 1
DataArray(j, i) = dtRow(i)
Next
Next
'タイトル
objExcelSheet.range("A1") = Me.lblTitle.Text
objExcelSheet.range("C1") = Me.cboClass.Text
objExcelSheet.range("E1") = "出荷日:" & Me.DateTimePicker1.Text
'DataArrayをExcelSheetに貼り付け
Range = objExcelSheet.range("A2", Reflection.Missing.Value)
Range = Range.resize(DtArRow, DtArCol)
Range.value = DataArray
'Excelを可視状態にする
objExcel.Application.Visible = True
objExcel.UserControl = True
|