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メソッドをあることを確認しています。
よろしくお願いいたします。
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
ご回答ありがとうございます。問題なく印刷できました。
2011/12/14 13:19:13教えて頂いたie.ExecWB( OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER )で
印刷ダイアログは表示されずに印刷できました。
Const OLECMDEXECOPT_DODEFAULT = 0だと印刷ダイアログが表示されました。
http://q.hatena.ne.jp/1323836130で別の質問もしたのでもしお答え頂けるとありがたいです。