VBAからAdobe ReaderでPDFファイルを印刷する。(追記)
VBAからAdobe Readerで印刷する。(その2)
などで、解決済みなのですが、未だに頓珍漢な情報が流されてるようで困ったものです。:-(
この例で、特に支障なく動作するのですが、それを実際に試しもせずに、SendKeysを使ってるから駄目とか、教条主義的に決め付けるのはやめましょう。
また、代わりに、思い付きで、まともに動かない例を提示するのもやめましょう。
ちゃんと動作検証して、問題を十分理解してからにしてください。つーの。全く。。。
例えば、ShellExecuteやInvokeVerbでPrint Verbをキックする。
→ アプリが終了しないで残る。
→ 初回複数連続印刷で抜けが生じる。
⇒ これは、ダミーのインスタンスを起こして、後始末すれば大丈夫なんだけど。。。
例えば、FindWindow+WM_CLOSEやSC_CLOSEをSendMessageする。
→ 別のインスタンスを誤爆。
⇒ これは、プロセスIDで識別すれば大丈夫なんだけど。。。
例えば、COMオブジェクトを使え。
→ アプリ終了手段が用意されてないので、アプリが終了しないで残る。
→ 印刷しようとすると、警告ダイアログが出る。次から出さないようにはできるが、ユーザ依存だし、自動化できない。
例えば、DDEを使え。
→ 多重に使うと、別のインスタンスを誤爆するリスクが若干あるものの、シングルで使う分には確実なのでお勧め。
« 一時ファイルにスクリプトを書いて子プロセスを起こす。(その3) | トップページ | 関連付けは非同期実行なので、連続処理に向かない。 »