@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Word終了のタイミング

1
投稿者投稿内容
mak
会議室デビュー日: 2004/01/09
投稿数: 14
投稿日時: 2004-02-17 14:38
こんにちは。

 VB.netからWordを起動して印刷をしてWordを終了させるという処理を
行っているのですが、印刷(プレビュー)処理中にVBに制御が戻ってきてしまい
「Wordを閉じると印刷ジョブは全てキャンセルされます」のようなメッセージが
出てしまいます(プレビューだと一瞬だけ表示されてすぐにWord終了)。
エクセルの場合、エクセルの処理が終わるまでVBに制御は戻ってきません。
エクセルと同じ事がしたいのです。

 Dim wdApp As New Word.Application

 wdApp.Visible = False

 wdApp.Documents.Open(filePath)

 wdApp.ActiveDocument.PrintOut() ――@

 wdApp.Quit() ――A

 wdApp = Nothing

@の実行中にAが実行されるため前述した現象が発生します。

どうかよろしくお願いします。
きいぼー
会議室デビュー日: 2004/01/30
投稿数: 7
投稿日時: 2004-02-17 18:35
きいぼーです。
Wordはデフォルトではバックグラウンド印刷がTrueになっている為ではないでしょうか

wdApp.Options.PrintBackground = False
を行ってから、
wdApp.ActiveDocument.PrintOut()
を実行したらいかがでしょうか?

すみません環境が無いのでためしていません。
mak
会議室デビュー日: 2004/01/09
投稿数: 14
投稿日時: 2004-02-18 13:13
ありがとうございます。

引用:

きいぼーさんの書き込み (2004-02-17 18:35) より:
きいぼーです。
Wordはデフォルトではバックグラウンド印刷がTrueになっている為ではないでしょうか

wdApp.Options.PrintBackground = False
を行ってから、
wdApp.ActiveDocument.PrintOut()
を実行したらいかがでしょうか?

すみません環境が無いのでためしていません。


この方法で実行したところ、正常に印刷できました。
プレビューにすると状況変わらずですが…

とりあえず印刷ができるだけでOKです。
ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-18 13:51
引用:

makさんの書き込み (2004-02-17 14:38) より:

 wdApp.Quit() ――A

 wdApp = Nothing


 この間で、
System.Runtime.InteropServices.Marshal.ReleaseComObject(wdApp)
してくださいね。参照が残ってWordのインスタンスが、プログラム終了まで残ってしまいます。
mak
会議室デビュー日: 2004/01/09
投稿数: 14
投稿日時: 2004-02-18 15:12
ありがとうございます。

引用:

Jittaさんの書き込み (2004-02-18 13:51) より:
引用:

makさんの書き込み (2004-02-17 14:38) より:

 wdApp.Quit() ――A

 wdApp = Nothing


 この間で、
System.Runtime.InteropServices.Marshal.ReleaseComObject(wdApp)
してくださいね。参照が残ってWordのインスタンスが、プログラム終了まで残ってしまいます。


ReleaseComObjectを実行することでリソースがすぐに解放されるみたいですね。
勉強になります。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)