Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Word 2016)
印刷がスプール中のままになります
投稿日時: 19/04/09 21:44:29
投稿者: Trackyqwer

教えてください。
下記のように新旧の文書を比較した結果を印刷したいのですが、Msgboxが表示されているためか?印刷がスプール中のままになります。
Doeventsをいれてもだめでした。
対処方法を教えてください。
宜しくお願いします。
 
-------------------------------------
Sub Macro1()
 
Do
'文書の比較処理(省略)
 
'結果印刷
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    res = MsgBox("", vbOKCancel)
Loop Until res = vbCancel
 
End Sub
-------------------------------------

回答
投稿日時: 19/04/10 10:21:07
投稿者: Suzu

Trackyqwer さんの引用:
Msgboxが表示されているためか?印刷がスプール中のままになります。

 
Msgboxが影響しているのかどうかは、
ループの部分と、Msgboxの部分をコメントアウトすれば確認できるのでは?
 
 
・印刷ページ数
・レイアウトに時間がかかる
・写真等がたくさん入っている
・スプール先のプリンタは希望のプリンタなのでしょうか。
 
PrintOutの直前で止めて、手動で印刷してみては?

投稿日時: 19/04/10 19:44:37
投稿者: Trackyqwer

Suzuさん
 
ご指摘ありがとうございます。

引用:

ループの部分と、Msgboxの部分をコメントアウトすれば確認できるのでは?

確認した結果、Msgboxがなければ印刷できました。
Msgboxで別の文書比較を行うか中止するかを選択しています。
何か手段はないでしょうか?
 
よろしくお願いいたします。

回答
投稿日時: 19/04/11 07:48:09
投稿者: Suzu

Trackyqwer さんの引用:
確認した結果、Msgboxがなければ印刷できました。

 
と言う事は、MsgBox が起因している可能性が高いのですね。
 
・PrintOut の Background を設定してみる
・MsgBoxではなく、ユーザーフォームでキャンセルを待たせてみる
を試されてはいかがでしょう。

投稿日時: 19/04/12 21:19:58
投稿者: Trackyqwer

Suzuさん
 
ありがとうございます。

引用:
・MsgBoxではなく、ユーザーフォームでキャンセルを待たせてみる

で解決しました!!