(´-`).。oO(VB初心者質問スレ Part12)

このエントリーをはてなブックマークに追加
603デフォルトの名無しさん
IEで現在表示中の内容をユーザーに1クリックで印刷させたくて
いろいろ検索した結果

<html>
<head>

<!-- ブラウザオブジェクトを宣言する -->
<OBJECT ID="thebrowser" WIDTH=0 HEIGHT=0
CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</OBJECT>

<SCRIPT LANGUAGE="VBScript">
<!--
'--- 印刷ルーチン
On Error Resume Next
Sub EnlivenPrint
On Error Resume Next
thebrowser.ExecWB 6, 2
End sub
-->
</SCRIPT>
</head>

<body>
<FORM>
<INPUT TYPE="BUTTON" VALUE="印刷" ONCLICK="EnlivenPrint()">
</body>
</html>

の様な形で実現できそう(たしか動作報告もあった)なのですが、
.ExecWBの引数に関わらず印刷ダイアログが出てしまいます。


ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/oen_a2z_5k38.asp

によれば、.ExecWBメソッドはolecmdexecoptの値として

OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
OLECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3

を取れるようになっていて、実際VBでフォーム上のWebBrowserコントロールに対し

Private Sub Command1_Click
WebBrowser1.ExecWB 6, 2
(もしくは WebBrowser1.ExecWB olecmdid_print, olecmdexecopt_dontpromptuser )
End Sub

とすると印刷ダイアログを出さずに印刷を実行できます。

この.ExecWBメソッドの振る舞いの違いに頭を悩ませているのですが
何か解決方法はありますでしょうか?。