Execwb

解決


若葉マーク  2003-05-10 00:59:50  No: 77897

初めて質問します。

ブラウザーの画面を印刷ダイアログを表示せずに印刷しています。
いろいろ調べた結果
WebBrowser.Execcwb(6,10) とやればいいのはわかったのですが
Execcwb(6,10)の"10"の部分が分かりません。調べてみたんですが
0〜3は説明されているんですが、"10"は説明されているページがありません。
申し訳ありませんが、どなたかご教授ください。


VBレスキュ−(花ちゃん)  2003-05-10 20:28:12  No: 77898

怪答になるかも知れませんが?
ダイアログを表示せずに印刷するには
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  でも同様ダイアログが表示しません


魔界の仮面弁士  2003-05-11 02:55:25  No: 77899

> 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値を指定


若葉マーク  2003-05-13 18:27:46  No: 77900

VBレスキュ−(花ちゃん)さん、魔界の仮面弁士さん
いろいろとありがとうございました。
また質問させていただいたときには
ご教授宜しくお願いします。m(_ _)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加