none
vb 6 word 列印 RRS feed

  • 問題

  • 各位大大好

    小弟目前正在寫一個有關VB6 開啟WORD檔後列印的功能

    程式如下:

          Dim temp As Object
          Dim objdoc As Object
          Set temp = CreateObject("Word.Application")
          temp.Visible = False

           Set objdoc = temp.Documents.Open("D:\特殊作業問卷B02.doc")

           temp.Application.PrintOut
                DoEvents
                objdoc.Close
                temp.Quit
                Set objdoc = Nothing
                Set temp = Nothing

    每當在開啟WORD檔列印時(版本office 2003),不知道是因為讀到objdoc.close後

    就會跳出一個視窗說 word正在列印中 是否要關閉word  是 (關閉)  否(繼續列印)

    不知道有沒有什麼方法,可以判斷該word檔已經列印完,再去執行objdoc.close

    不然每次按列印都會出現那個視窗 對user會很麻煩

    ps.我office的版本為2007 就可以正常的開啟列印關閉 user那為office 2003 就會出現該視窗..

    請大大們幫忙..謝謝!!!

     

     


    • 已變更類型 PennyMax 2011年3月22日 上午 01:40
    • 已變更類型 PennyMax 2011年3月22日 上午 01:40
    • 已變更類型 PennyMax 2011年3月22日 上午 01:41
    2011年3月22日 上午 01:25

解答

  • 您可以設定在背景列印, 列印完畢後自動關掉Word, 例如:
    Application.PrintOut
       
    'If user is using Background printing
    If Application.Options.PrintBackground = True Then
        'While jobs in queue
        While Application.BackgroundPrintingStatus
            DoEvents
        Wend
    End If

       
    'Close Word
    ActiveDocument.Close False
    Application.Quit

    • 已標示為解答 PennyMax 2011年3月22日 上午 08:24
    2011年3月22日 上午 02:44

所有回覆

  • 如何: 關閉對話方塊,顯示由 Office 應用程式使用 Visual Basic.NET

    http://support.microsoft.com/kb/307292/zh-tw

    How To Dismiss a Dialog Box Displayed by an Office Application with Visual Basic

    http://support.microsoft.com/kb/259971/EN-US

     

    2011年3月22日 上午 02:10
  • 感謝 JOE HUNG 大大的分享

    這個是要設定Application.DoCmd.SetWarnings False 嗎?

    要怎麼設定丫?

    我現在的解決方式是在

      temp.Application.PrintOut
                DoEvents
                objdoc.Close

    多加了 SLEEP 5000

      temp.Application.PrintOut
                DoEvents

               SLEEP 5000
                objdoc.Close

    讓他睡眠五秒後再關閉檔案就不會出問題了..

    但..這種方式..只是治標不治本..~"~

    2011年3月22日 上午 02:35
  • 您可以設定在背景列印, 列印完畢後自動關掉Word, 例如:
    Application.PrintOut
       
    'If user is using Background printing
    If Application.Options.PrintBackground = True Then
        'While jobs in queue
        While Application.BackgroundPrintingStatus
            DoEvents
        Wend
    End If

       
    'Close Word
    ActiveDocument.Close False
    Application.Quit

    • 已標示為解答 PennyMax 2011年3月22日 上午 08:24
    2011年3月22日 上午 02:44