[三流解説IEのトップページへ]
/ [IE メソッドの一覧へ 戻る]
.ExecWBメソッド とは
メソッド .ExecWB とは、機械和訳だと ExecWB です。(あまり意味無いか)
三流プログラマーの勝手な解釈・方言だと:
.ExecWB メソッド で いろいろなコマンドを発行できます。(動作が可能です。)
使い方は、
.ExecWB OLECMDID(コマンドID) , OLECMDEXECOPT(コマンドの動作)
です。
なので、IEで表示されているページを印刷、確認無しで即時印刷実行なら、
objIE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
で印刷を実行します。
'印刷コマンド OLECMDID_PRINT = 6
'動作はOLECMDEXECOPT_DONTPROMPTUSER=2(DONT PROMPT USER)ユーザー入力無し
なので、
objIE.ExecWB 6, 2
でもOKです。
OLECMDID Enumeration
http://msdn.microsoft.com/en-us/library/ms691264.aspx
をみて、対応するコマンドを探します。
OLECMDID_PRINT = 6
OLECMDID_PRINTPREVIEW = 7
など、イロイロとあります。
次は、
OLECMDEXECOPT Enumeration
http://msdn.microsoft.com/en-us/library/ms683930(VS.85).aspx
を見て、コマンドの動作を指定します。
OLECMDEXECOPT_DODEFAULT = 0ユーザーに入力を要求すると、既定の動作方が。
OLECMDEXECOPT_PROMPTUSER = 1、ユーザー入力の取得後、コマンドを実行します。
OLECMDEXECOPT_DONTPROMPTUSER = 2 ユーザーを確認せず、コマンドを実行します。
たとえば、[印刷] ツールバー ボタンをクリックしてがドキュメントをすぐにユーザー入力なし刷れています。
OLECMDEXECOPT_SHOWHELP = 3 は、対応するコマンドのヘルプを表示が実行されません。
下記、私がExecWBを探った時のドタバタ劇です。※みて笑ってください。
いろいろなコマンドがあるので、試してみてください
正式な解説・説明はMSDNで:[.ExecWB Methods]を見てください。
.ExecWB を 使用した三流サンプル
.ExecWBメソッド を 使用した三流サンプル を 紹介します
印刷処理
.ExecWBメソッド の テストで、印刷処理にチャレンジしてみました。※参照設定してから組むと楽ですよ。
'参照設定 Microsoft Internet Controls(Microsoft Browser Helpers)
'参照設定の方法は、 http://www.ken3.org/cgi-bin/group/vba_ie_object.asp をみてください。
Sub ie_test_0618() 'IEのコマンド 処理 ExecWB をテストする。
'IEの起動
Dim objIE As InternetExplorer '変数を定義します。
Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
objIE.Visible = True '可視、Trueで見えるようにします。
'表示位置(左上の座標)とサイズ(高さ・幅)を調整する
objIE.FullScreen = False '※Trueのモードだとびっくりするよ
objIE.Top = 100 '左上 上位置
objIE.Left = 100 '左上 左位置
objIE.Width = 800 '横幅
objIE.Height = 600 '高さ
'XXXバー、外観・外枠の調整。
objIE.Toolbar = True 'タブの切り替えで必要なので、ツールバーを表示にする
objIE.MenuBar = False 'メニューは非表示にする
objIE.AddressBar = True 'URLなど アドレスバーは確認のため、表示する
objIE.StatusBar = True '一番下のステータスバーを表示。
'処理したいページを表示します。
objIE.Navigate "http://www.google.co.jp/" '.Navigate メソッドで googleを表示する。
'ページの表示完了を待ちます。
While objIE.ReadyState <> READYSTATE_COMPLETE Or objIE.Busy = True '.ReadyState <> 4の間まわる。
DoEvents '重いので嫌いな人居るけど。
Wend
'ページが表示されたので、表示された文章に対して、処理を行います。
'Document(タグ付き文章)からデータを取得したり、
'.Formにデータをセットして送信したり。
'.Linkリンク、リンク情報を取得したり、リンク先に移動したり。
'フレームのページはイヤだけど
'イメージなんて取り出せたりします。
'今回は、.ExecWB メソッドを使い
'印刷コマンド OLECMDID_PRINT = 6
'動作はOLECMDEXECOPT_DONTPROMPTUSER = 2 ユーザー入力無し(DONT PROMPT USER)
objIE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
'↑こんな感じで、印刷コマンドを実行させてみました。
'処理が終わったので、IEを閉じます。
'テストの時は、コメントアウトして残しておくと便利ですよ。
'objIE.Quit '.Quitで閉じる
Set objIE = Nothing '使用したオブジェクト変数もキレイにしてね。
End Sub
|
下記、実行結果(私がExecWBを探った時のドタバタ劇)です。※みて笑ってください。
いろいろなコマンドがあるので、試してみてください
コピーと貼り付け
test028-2.aspのページを表示後、全て選択(OLECMDID_SELECTALL = 17)発行後、コピー(OLECMDID_COPY = 12)を連続発行してから、Excelに貼り付けてみます。
シートを追加しながら、3パターンの貼り付けを実行してみます
'IEコマンド発行のテスト 全てを選択・コピーしてから、シートに貼り付けてみる
Sub ie_test_ExecWB()
Dim objIE As Object 'IEオブジェクト参照用
Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
objIE.Visible = True '見えるようにする(お約束)
'.Navigate で 指定した文字列のURLを開く
objIE.Navigate "http://www.ken3.org/cgi-bin/test/test028-2.asp"
'手抜きで2秒待つ(オブジェクトの展開時間を待つ)
Application.Wait Time:=Now + TimeValue("00:00:02") '2秒間 ボーっとする
'テスト用に新規のブックを追加する
Workbooks.Add '新規ブックを追加
'形式を選択して貼り付け HTML貼り付けのテスト
objIE.ExecWB 17, 0 'OLECMDID_SELECTALL = 17 全てを選択
objIE.ExecWB 12, 0 'OLECMDID_COPY = 12 コピー
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "FormatHTML" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML"
'形式を選択して貼り付け Unicode テキスト貼り付けのテスト
objIE.ExecWB 17, 0 'OLECMDID_SELECTALL = 17 全てを選択
objIE.ExecWB 12, 0 'OLECMDID_COPY = 12 コピー
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "FormatUnicode テキスト" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Unicode テキスト"
'形式を選択して貼り付け テキスト貼り付けのテスト
objIE.ExecWB 17, 0 'OLECMDID_SELECTALL = 17 全てを選択
objIE.ExecWB 12, 0 'OLECMDID_COPY = 12 コピー
Sheets.Add 'テスト用のシートを新規追加する
ActiveSheet.Name = "Formatテキスト" 'シートに名前を付ける
Range("A1").Select
ActiveSheet.PasteSpecial Format:="テキスト"
End Sub
|
操作手順と実行結果の動画:VBA IE ExecWBコマンドのテスト
う〜ん、使えそうな、使えなさそうな・・・全てじゃなくて、テーブルを指定して(範囲指定でドラックして)コピーできるといいんだけどなぁ。
.ExecWB 関連項目 リンク
三流君が .ExecWB の 関連項目 を 紹介します
おっと、その前に正式な場所は(繰り返し紹介すると) MSDNで:[.ExecWB Methods]を見てください。
Googleを使用して検索する
読者の声:三流君の説明・解説じゃ .ExecWBメソッド が よくわからなかったから、Googleを使って、自分で検索します。
三流君:残念です。あっ、下記にGoogleの検索窓を設置しました。
よく使われる変数名 : oIE,MyIE,objIE
と
オブジェクトの指定として : InternetExplorer と WebBrowser
を指定しました。※この指定で検索するとサンプルが拾いやすいと思います。
ページフッター リンクや広告、質問送信など
三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。
質問や要望など メッセージを送る(三流君に連絡する)
三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。
急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。
[トップページへ 戻る]
/ [メソッドの一覧へ 戻る]