VB6からExcelシートを印刷するとエラー発生


Hoo  2005-03-12 23:05:38  No: 120215  IP: [192.*.*.*]

VB6からExcelシートを開き、印刷を行う下記コーディングを作成しました。
正常に印刷はできるのですが、「エラーが発生したため、Excel.exeを終了します。
プログラムをもう一度開始する必要があります。」のエラーメッセージが
表示されてしまいます。
  この現象はXP、Excel2000の組み合わせでは正常動作します。
Windows2000、Excel2000では上記エラーが出ます。
  どこに原因があるか、ご教授下さい。
よろしくお願い致します。

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("c:\hoge.xls")
    Set xlSheet = xlBook.Worksheets(1)
    
    xlApp.Visible = True
    
    'excelへの編集
    xlSheet.Cells(8, 2) = "testA"
    xlSheet.Cells(5, 2) = "testb"
    xlSheet.Cells(5, 3) = "testc"
    xlSheet.Cells(5, 4) = "testd"
    xlSheet.Cells(4, 3) = "teste"
    xlSheet.Cells(4, 4) = "testf"

    '印刷
    xlSheet.PrintOut
    
    'excelの終了
    xlApp.DisplayAlerts = False  '保存ダイアログを出さない(保存しない)
    xlApp.Quit
    
    'オブジェクトの開放
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing

編集 削除
LESIA  2005-03-13 07:22:35  No: 120216  IP: [192.*.*.*]

よくわからないですけど、
Excelを終了する前にBookを閉じてみてはどうでしょうか?

'印刷
xlSheet.PrintOut

xlBook.Saved = True
xlBook.Close

'excelの終了
xlApp.DisplayAlerts = False    '保存ダイアログを出さない(保存しない)
xlApp.Quit

編集 削除
Hoo  2005-03-13 11:21:02  No: 120217  IP: [192.*.*.*]

レス有難うございます。

試してみましたけど、ダメでした。。。

編集 削除
赤ペン  2005-03-13 12:15:40  No: 120218  IP: [192.*.*.*]

私のPCでは同じコードでやってもエラー出ませんけど・・・。
ちなみに win2000 Excel200 VB6SP6ですけど。
Execelのオブジェクトライブラリやめて
同じ事だけど・・・。下記のコードでは??いかがでしょう?

Private Sub Command1_Click()
    Dim ObjExcel  As Object
    
    Set ObjExcel = CreateObject("Excel.Application")
    
    ObjExcel.Workbooks.Open "c:\hoge.xls"

    ObjExcel.Visible = True
    
    'excelへの編集
    With ObjExcel.Sheets("Sheet1")
        .Cells(8, 2) = "testA"
        .Cells(5, 2) = "testb"
        .Cells(5, 3) = "testc"
        .Cells(5, 4) = "testd"
        .Cells(4, 3) = "teste"
        .Cells(4, 4) = "testf"
    
        '印刷
        .PrintOut
    End With
    
    'excelの終了
    ObjExcel.DisplayAlerts = False    '保存ダイアログを出さない(保存しない)
    ObjExcel.Quit
    
    'オブジェクトの開放
    Set ObjExcel = Nothing
End Sub

編集 削除