人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

UWSCについて教えて下さい。

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.yahoo.co.jp/")
IE.print()

とやっても、プリントができません。COM Error:例外が発生しました。
と表示されます。

IE.Navicateでは問題なく、yahooにアクセスできますが、print()とやるとエラーになります。下記のサイトを参考に、printメソッドがあったので使用してみたのですが、できませんでした。

Microsoftのサイトでweb browser controlについて調べましたが、printメソッドをあることを確認しています。

よろしくお願いいたします。


●質問者: akaired
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
●100ポイント ベストアンサー

Microsoftのサイトでweb browser controlについて調べましたが、printメソッドをあることを確認しています。

WebBrowser Control ですが、

の2種類があります。
残念ながら、ActiveX 版(COM 版)の WebBrowser Control には、Print メソッドはされていないようです。

■ WebBrowser Control - メソッド一覧(ActiveX版)
http://msdn.microsoft.com/en-us/library/aa768399.aspx
■ WebBrowser Control - メソッド一覧(.NET Framework 版)
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser_methods.aspx

ken3memo さんが提示されているように ExecWB メソッドを使用するか

// File : IEPrintTest.uws
Option Explicit

Const OLECMDID_PRINT = 6
Const OLECMDEXECOPT_DONTPROMPTUSER = 2

Dim ie
ie = CreateOLEObj("InternetExplorer.Application")
ie.Visible = True
ie.Navigate("http://www.yahoo.co.jp/")
Sleep(1)
ie.ExecWB( OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER )

ie.Document.ParentWindow.Print で印刷処理が呼ばれるようです。ただし、こちらは、印刷ダイアログが表示されてしまうようですが。。。

ie.Document.ParentWindow.Print

あと、UWSC の機能を使用して、Ctrl+P(印刷のキーボードショートカット)を呼び出すという方法があります。こちらも、同様に、印刷ダイアログが表示されてしまいます。

Dim id
id = GetId( "Internet Explorer", "IEFrame" )
CtrlWin( id, ACTIVATE )
ScKey( id, VK_CTRL, P )

■ 画面を印刷する - VBAによるIE自動制御入門
http://vbaie.blog111.fc2.com/blog-entry-23.html


akairedさんのコメント
ご回答ありがとうございます。問題なく印刷できました。 教えて頂いたie.ExecWB( OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER )で 印刷ダイアログは表示されずに印刷できました。 Const OLECMDEXECOPT_DODEFAULT = 0だと印刷ダイアログが表示されました。 http://q.hatena.ne.jp/1323836130で別の質問もしたのでもしお答え頂けるとありがたいです。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ