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


Hoo  2005-03-13 08:05:38  No: 120215

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 16:22:35  No: 120216

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

'印刷
xlSheet.PrintOut

xlBook.Saved = True
xlBook.Close

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


Hoo  2005-03-13 20:21:02  No: 120217

レス有難うございます。

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


赤ペン  2005-03-13 21:15:40  No: 120218

私の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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加