[三流君] [VBAで楽しく] [VBA IE 操作]
−−> No.124 IE _BeforeNavigate2イベントでPostデータを覗き見する

IE _BeforeNavigate2イベントでPostデータを覗き見する

メルマガ発行内容

<IE _BeforeNavigate2イベントでPostデータを覗き見する>

どうも、三流プログラマーのKen3です。 今回は、読者数6人の有料メルマガから宣伝で1つサンプルを出します。

/* * 1. 今回のキッカケ */

有料版のメルマガ、読者数6人まで減りました。 内容が薄いから?なんだけど・・・(オイオイ) 先週発行したメルマガからサンプルを1つダイジェストで載せます。 気に入ったら、 http://www.ken3.org/pmagmag/office/ から、登録してみてください。 よろしくお願いします。 ----- こんな感じで書いてます ----- [ Microsoft Officeで作るツールと業務システム No.032 ] 2003/09/06 毎週土曜日 <IEの送信データを覗き見する> こんにちは、三流プログラマーのKen3です。 http://www.ken3.org/p/office-032.lzh に、 今回使用した、IEのイベントを探るテストプログラムが圧縮されてます。 動かしてテストしてみてください。 (Access2000 形式のMDBです。)

/* * 1. 今日の狙い・・・ */

今回は、IEの送信データを覗き見、してみたいと思います。 なんて書いてますが、たいしたことなく、 Formなどで送信したデータを見るだけです。

/* * 2.フォームにWebのコントロールを貼る */

まず、フォームにWebのコントロールを貼ります。 まず、Accessのフォーム作成で、 挿入・ActiveXコントロールを選択します。 次に、 Microsoft Web Browser コントロールを選択します。 すると、簡単にコントロールを貼ることが出来ます。

/* * 3.IEのイベントを探る */

通常、コントロールに対して、プロパティやメソッドを実行して、 操作を行います。
Private Sub cmdHOME_Click()
    Me.WebBrowser0.GoHome
End Sub
cmdHOMEとボタンのコントロールを作成後、 _Click()のクリックイベントに処理を記述してます。 記述した処理は、 Me.WebBrowser0.GoHome Me.自分のフォーム WebBrowser0 WebBrowserコントロール .Gohome 初期ページへ飛ぶメソッド を実行しただけです。 cmdHOME_Click() は、ボタンのクリックイベントでした。 これと同様に、 WebBrowserコントロール もイベントを持っています。 どのようなイベントがあるか、簡単な方法は、 左上のオブジェクトの選択で、 WebBrowser0(WebBrowserコントロール) を 選択後、右上のイベントボックスをみるといろいろとあります。 ↑選択のイメージ 今回は、 _BeforeNavigate2で、次のURLへ移る前のイベント、 _DocumentCompleteで、ドキュメントの完了 (_NavigateComplete2 の違い) を探ってみます。 まず、 _BeforeNavigate2 のイベント。 このイベントは、次のURLに移る前に発生します。
Private Sub WebBrowser0_BeforeNavigate2( _
            ByVal pDisp As Object, _
            URL As Variant, _
            Flags As Variant, _
            TargetFrameName As Variant, _
            PostData As Variant, _
            Headers As Variant, _
            Cancel As Boolean)
    Debug.Print "URL:" & URL
    Debug.Print "FlagsL:" & Flags
    Debug.Print "PostData2" & StrConv(PostData, vbUnicode)
    If Len(PostData) <> 0 Then
        Me![txtSENDDATA] = StrConv(PostData, vbUnicode) '送信データのチェック
    End If
End Sub
テストのポイントは、 StrConv(PostData, vbUnicode) と、送信データを変換して、テキストボックスにセットしてます。 このイベントが、次のURLに行く前に発生するので、 USER-NAME=%93%BD%96%BC%8A%F3%96%5D など、通常は見えない、IEがWebのCGIへ送るデータを横取りしてます。 下記は、おまけのテストで、 _DocumentComplete で、完了時にデータをセットしてます。 広告が別フレームで表示されている時も、発生して、少々うざいけど。
Private Sub WebBrowser0_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Debug.Print URL
    Debug.Print pDisp.Document.Title
    Me![txtURL] = URL
    Me![txtTITLE] = pDisp.Document.Title
    Me![txtHTML] = pDisp.Document.all(0).innerHTML
End Sub
Private Sub WebBrowser0_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Debug.Print "n:" & URL
    Debug.Print "n:" & pDisp.Document.Title
End Sub


/* * 3.終わりの挨拶 */

http://www.ken3.org/p/office-032.lzh に、 今回使用した、IEのイベントを探るテストプログラムが圧縮されてます。 動かしてテストしてみてください。 (Access2000 形式のMDBです。) いろいろとデーターを送信するページでテストしてみてください。 掲示板やアンケート、いろいろなデータを送っているのがわかると思います。 これを応用して、自動実行、IE操作記録ツールなんてのを狙っているんだけどなぁ。 次回は、もう少しマシな解説をしたいですが・・・ ※できたら、世に出せるくらいのツールになるといいけど、、、 プログラム作りは簡単で面白いなぁと感じるような 解説/メールマガジンを書きたいと思ってます。 月400円は高いので、気長にヒット作を待てる人は購読続けて下さいね。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ よろしくお願いします。 ※ハヤク、効果のあるツール、サンプルを作らないと、、、 AB型の変わり者、三流プログラマーのKen3でした。 ----- -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね ~~~~~~~~~~~~~~~~ オレ様、私は、SE様だ、月給30万以上ボーナス100万を探すのもありだよ。 私にみたいにVBA少しできるぐらいだと仕事無いよ・・・なんて冷たく、 と軽く言われても匿名なら気にならないし(笑) 逆にこんな簡単な仕事で月給27万貰えるの?って会社もあるし、世の中イロイロ。 http://www.ken3.org/etc/500yen/job.html ------------------------------------------------------------------------ 

/* * 2.終わりの挨拶 */

どうでしたか? えっ、これで月400円は高いって? ですよねぇ・・ Officeで作るツールと業務システム、、、とタイトルはリッパなんだけど、 中身がねぇ。 これなら、400円のシェアウエアを買ったほうがいいって? ですよねぇ・・・ なんて、いつもの自分落としネタを書いておいて、 もし、興味を持った人が居たら、 http://www.ken3.org/pmagmag/office/ の下記、有料版のメルマガ、 Microsoft Officeで作るツールと業務システム ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 発行周期 毎週土曜日(年末年始除く) 購読料 400円/月 Microsoft Officeを使用してツール、業務のシステムを作成(手順を解説します) 主にExcel -- Accessの連携、VBAの解説です 初心者歓迎です、有料版なので遠慮しないでドンドン質問下さい。 毎週土曜日発行サンデープログラマーの楽しみ〜プロまで役立つツールを作りたいと 思ってます。 ---- ヨロシク検討してね。 ※あっ、有料版の特典が1つあった。  有料版読者の質問には、真っ先に答えてます。  (出来なかった質問も3人あって、たぶん解除されたんだけど・・・) ※金返せとメール来た時はショックだったけど・・・・ ※無料版のほうが面白いけど、無料版を有料と思って購読してます  とメール来たのは、複雑な心境になったけど。  (有料版価値無いけど、無料版が役に立ったからお金払ってあげる?って感じ?) Excel/Access大好き、三流プログラマーKen3でした。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.124を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります


ページフッター(リンクや広告など)

[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・