三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

7/8 IE操作 で .ExecWB メソッド

IE操作 で .ExecWB メソッドのヒットが多いので補足。

詳細の解説は
http://ie.vba-ken3.jp/Methods/ExecWB/

http://www.ken3.org/vba/backno/vba112.html
を見て、笑ってください。


Sub aaa() '参照設定すると便利ですよ。なんて言ってますが・・・

Dim objIE As InternetExplorer 'IEのオブジェクトを入れる変数を1つ作成する

'オブジェクトを作り、見えるようにして、初期ページをテストで表示
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.GoHome '初期ページの表示

'ページの表示完了を.ReadyStateで待つ
While objIE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Wend

'印刷プレビューのコマンドを実行させる。
objIE.ExecWB OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT

End Sub

www.youtube.com
動画解説 http://www.youtube.com/watch?v=W71hdfqWftE


↑を参考にして、値を

? READYSTATE_COMPLETE
4
? OLECMDID_PRINTPREVIEW
7
? OLECMDEXECOPT_DODEFAULT
0
などで、確認して、


Sub aaa() '参照設定しないパターン

Dim objIE As Object 'IEのオブジェクトを入れる変数を1つ作成する

'オブジェクトを作り、見えるようにして、初期ページをテストで表示
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.GoHome '初期ページの表示

'ページの表示完了を.ReadyStateで待つ
While objIE.ReadyState <> 4
DoEvents
Wend

'印刷プレビューのコマンドを実行させる。
objIE.ExecWB 7, 0

End Sub

と、作ることもできます。※まぁ、参照設定したままのほうがいいと思いますが。

まぁ、気になるのが、コマンドIDだと思います。

OLECMDID Enumeration
http://msdn.microsoft.com/en-us/library/ms691264.aspx
をみて、対応するコマンドを探すのが、王道かなぁ。


typedef enum OLECMDID {
OLECMDID_OPEN 1 開いています。
OLECMDID_NEW 2 新機能
OLECMDID_SAVE 3 保存します。
OLECMDID_SAVEAS 4 保存と
OLECMDID_SAVECOPYAS 5 コピーと保存します。
OLECMDID_PRINT 6 印刷
OLECMDID_PRINTPREVIEW 7 印刷プレビュー
OLECMDID_PAGESETUP 8 ページのセットアップ
OLECMDID_SPELL 9 スペル
OLECMDID_PROPERTIES 10 プロパティ
OLECMDID_CUT 11 カット
OLECMDID_COPY 12 コピー
OLECMDID_PASTE 13 貼り付け
OLECMDID_PASTESPECIAL 14 特別な貼り付け
OLECMDID_UNDO 15 元に戻す
OLECMDID_REDO 16 やり直し
OLECMDID_SELECTALL 17 すべてを選択します。
OLECMDID_CLEARSELECTION 18 選択をクリア
OLECMDID_ZOOM 19 ズーム
OLECMDID_GETZOOMRANGE 20 GET ズーム範囲
OLECMDID_UPDATECOMMANDS 21 更新コマンド
OLECMDID_REFRESH 22 リフレッシュ
OLECMDID_STOP 23 停止します。
OLECMDID_HIDETOOLBARS 24 非表示にするツール バー
OLECMDID_SETPROGRESSMAX 25 MAX 進行状況を設定します。
OLECMDID_SETPROGRESSPOS 26 POS の進行状況を設定します。
OLECMDID_SETPROGRESSTEXT 27 進行状況テキストを設定します。
OLECMDID_SETTITLE 28 設定のタイトル
OLECMDID_SETDOWNLOADSTATE 29 セット ダウンロード状態
OLECMDID_STOPDOWNLOAD 30 ダウンロードを停止します。
OLECMDID_FIND 32 検索します。
OLECMDID_DELETE 33 削除します。
OLECMDID_PRINT2 49 2 を印刷します。
OLECMDID_PRINTPREVIEW2 50 印刷プレビュー 2
OLECMDID_PAGEACTIONBLOCKED 55 ブロックされているページのアクション
OLECMDID_PAGEACTIONUIQUERY 56 ページ アクション UIQUERY
OLECMDID_FOCUSVIEWCONTROLS 57 フォーカス ビュー コントロール
OLECMDID_FOCUSVIEWCONTROLSQUERY 58 フォーカス ビュー コントロールのクエリ
OLECMDID_SHOWPAGEACTIONMENU 59 ページのアクションのメニューを表示します。
OLECMDID_ADDTRAVELENTRY 60 ADD travelentry
OLECMDID_UPDATETRAVELENTRY 61 更新プログラム旅行エントリ
OLECMDID_UPDATEBACKFORWARDSTATE 62 更新裏フォワード状態
OLECMDID_OPTICAL_ZOOM 63 光学ズーム
OLECMDID_OPTICAL_GETZOOMRANGE 64 光学 GET ズーム範囲
OLECMDID_WINDOWSTATECHANGED 65 WINDOWSTATECHANGED
OLECMDID_ACTIVEXINSTALLSCOPE 66 アクティブな XINSTALLSCOPE
OLECMDID_UPDATETRAVELENTRY_DATARECOVERY 67 UPDATET ravelentry DATARECOVERY
} OLECMDID;

次に動作は
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 は、対応するコマンドのヘルプを表示が実行されません。


詳細の解説は
http://ie.vba-ken3.jp/Methods/ExecWB/

http://www.ken3.org/vba/backno/vba112.html
を見て、笑ってください。

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)