初めて質問します。
ブラウザーの画面を印刷ダイアログを表示せずに印刷しています。
いろいろ調べた結果
WebBrowser.Execcwb(6,10) とやればいいのはわかったのですが
Execcwb(6,10)の"10"の部分が分かりません。調べてみたんですが
0〜3は説明されているんですが、"10"は説明されているページがありません。
申し訳ありませんが、どなたかご教授ください。
怪答になるかも知れませんが?
ダイアログを表示せずに印刷するには
WebBrowser1.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
ではないでしょうか?
たまたま、
WebBrowser1.ExecWB 6, 6
WebBrowser1.ExecWB 6, 10
WebBrowser1.ExecWB 6, 202
でも同じ動作するというだけで 202 が何か意味づけられている訳では
ないとおもいます。
貴方が調べられた通り定数は 0〜3までしか用意されていないのですから
又、 WebBrowser1.ExecWB 6, 1, 1 でも同様ダイアログが表示しません
> WebBrowser1.ExecWB 6, 6
> WebBrowser1.ExecWB 6, 10
> WebBrowser1.ExecWB 6, 202
これらでが、OLECMDEXECOPT_DONTPROMPTUSER と同じ意味を持つのは、
おそらく内部で、ビットフラグによる判定が行われているからでしょうね。(^^;)
Debug.Print ( 6 And OLECMDEXECOPT_DONTPROMPTUSER)
Debug.Print ( 10 And OLECMDEXECOPT_DONTPROMPTUSER)
Debug.Print (202 And OLECMDEXECOPT_DONTPROMPTUSER)
といった値は、全て同じ結果を返しますから。。。
> 貴方が調べられた通り定数は 0〜3までしか用意されていないのですから
OLECMDID_PRINT を指定した場合、第2引数に認められているのは、
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
の3パターンなので、実質上は 0〜2 という事になりますね。
> 又、 WebBrowser1.ExecWB 6, 1, 1 でも同様ダイアログが表示しません
蛇足までに書いておきますと、OLECMDID_PRINT での第3引数に
「内部形式IntegerのVariant型」を指定した場合は、
以下のビットフラグを指定する事になるようです。
Const PRINT_DONTBOTHERUSER = &H1
Const PRINT_WAITFORCOMPLETION = &H2
これを数値で表せば、
0: ダイアログ表示、非同期
1: ダイアログ無し、非同期
2: ダイアログ表示、同期
3: ダイアログ無し、同期
という意味になります。
(第3引数省略時は、0を指定した時と同じ動作をします)
なお第3引数には、Integer以外の値として、カスタム印刷を行うための
引数形式もサポートされているようです。
# 「内部形式StringのVariant型」→印刷テンプレートのパスを指定
# 「Variant配列」→ヘッダ/フッタ制御用のString, IStream, Long値を指定
VBレスキュ−(花ちゃん)さん、魔界の仮面弁士さん
いろいろとありがとうございました。
また質問させていただいたときには
ご教授宜しくお願いします。m(_ _)m
ツイート | ![]() |