[トップページ] / [サンプル一覧へ]

2009-02-17 三流解説 VBA IE デバック用 Webページのソースを表示する プログラム

Excel UserForm に WebBrowserを貼り、
デバック用のツールの作成を開始しました。
最新情報と作成履歴は→[更新履歴と最新を表示]


ユーザーの要望を聞き、設計を開始する

システム名 デバック用 Webページのソースを表示する プログラム 客先、ユーザーからの要望・希望を聞く え〜と(おぃおぃ)、とある事情から、 htmlソースの表示処理にチャレンジしてみたいと思います。 ※システム化の背景を知らないと変な設計になるよ  (よく聞くことば、[ボタンのかけ違い] ← 双方のプライドを傷つけない便利な言葉?) 持ち帰った、要求・要望をシステム化するイメージを作る。

いいかげんな 基本設計

基本設計・要求設計を兼ねて、 ^^^^^^^^^^^^^^^^^^ システム名:デバック用 Webページのソースを表示する プログラム 概要: WebBrowserをExcel User Form に 貼り、 Webページの表示が完了したら、そのページのソースをテキストボックスに表示する。 必要な環境 : Excel2003 と Windows XP SP2 + IE7 作業日数・費用: 開発スケジュール: ↑こんな概要・要求設計だと、見積もり誤差が、、、あとあと、要求が増えないように(笑) さてと、発注されたら、詳細設計に入りますか。

さらにいいかげんな 詳細設計

詳細設計 ^^^^^^^^ ファイル一覧 : なし ファイルの設計は無し ファイルI/Oイメージ: 無し ファイル詳細 : 無し 画面一覧: F001 htmlソースの表示画面 ※ 画面遷移図: 1画面なので無し 画面詳細(入出力) F001詳細 画面名:htmlソースの表示画面 処理概要: URL後、Webページを表示、表示したページのソースをテキストボックスで表示する。 Excel UserFormに下記のイメージでFormを作成する URL:[ txtURL : XXXXXXXXXXXXXXXXXXXXXx ] ------------------------------ | WebBrowser1 | | WebBrowserコントロール | | | | | | | | | ------------------------------ HTMLソース [ テキストボックス複数行 ] [ txtHTML_SRC ] [ ] [ ] [ ] ------------------------------------ オブジェクトの説明(入力・処理・出力) フォーム全体: 初期処理: 初期状態として、 txtURLに www.google.co.jp をセット WebBrowser1 表示を www.google.co.jp にする 終了処理: 特になし txtURL: オブジェクトの種類: テキストボックス 機能:処理中のURLを表示する    ユーザーが直接入力して、処理するURLを指定可能とする。 WebBrowser1: オブジェクトの種類: WebBrowser 機能:表示が完了したら(表示完了のイベントで)    ア.表示したURLを txtURLへセット イ.現在表示中のHtmlドキュメントのソースをtxtHTML_SRCにセットする txtHTML_SRC: オブジェクトの種類: テキストボックス ※マルチライン 機能:ソース表示用、結果表示用    ユーザーがコピーするなり、お好きなように。    ※ここのソースを変更しても、特に何もしない(WebBrowserには反映させない)

プログラムの作成に入る

上記のかなりラフな設計から、プログラムの作成に入ります。 コーディング 画面に(Formに)オブジェクトを配置します。

各オブジェクトに対して、処理を記述します。

UserForm_Initialize >初期処理: 初期状態として、 > txtURLに www.google.co.jp をセット > WebBrowser1 表示を www.google.co.jp にする フォームの初期処理なので、_Initializeに
Private Sub UserForm_Initialize()
    Me.txtURL.Text = "http://www.google.co.jp/"
    Me.WebBrowser1.Navigate "http://www.google.co.jp/"
End Sub
と書きました。 txtURL 次は、txtURLの入力処理です。 >txtURL: >オブジェクトの種類: テキストボックス >機能:処理中のURLを表示する >   ユーザーが直接入力して、処理するURLを指定可能とする。 単純にテキストボックスを出たら、.Navigate で飛ばしました。
Private Sub txtURL_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Me.WebBrowser1.Navigate Me.txtURL.Text
End Sub
WebBrowser1 >WebBrowser1: >オブジェクトの種類: WebBrowser >機能:表示が完了したら(表示完了のイベントで) >   ア.表示したURLを txtURLへセット > イ.現在表示中のHtmlドキュメントのソースをtxtHTML_SRCにセットする WebBrowserをExcel User Formに貼ってダブルクリックすると、 (別にダブルクリックじゃなくっても、いいんだけど) IEの(WebBrowserの) イベントにコードがかけます。 こいつを利用して、IEが表示完了したら(表示完了のイベントで)、 ドキュメントのソースをテキストボックスに表示したいと思います。
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Me.txtHTML_SRC.Text = Me.WebBrowser1.Document.all(0).innerHTML
    Me.txtURL.Text = Me.WebBrowser1.Document.URL

End Sub
う〜ん、どっちのイベントかチェックしないとなぁ。
う〜ん、どっちのイベントかチェックしないとなぁ。

テストのケース シナリオを作る

次は、テストの仕様書 と 簡単なシナリオを考えます。 テスト F001 画面名:htmlソースの表示画面 処理概要: URL後、Webページを表示、表示したページのソースをテキストボックスで表示する。 総合テスト概要: URL入力後のページ切り替え と HTMLソースの表示を確認する テストケース1 www.ken3.org 動作(確認操作) http://www.ken3.org/ を URLへ入力する リンクをクリックして他のページに飛ぶことを確認。 新しいページのソースが表示されることを確認する。 確認事項(確認方法)  ・ページの表示を確認  ・HTMLソースの表示を確認 テストケース2 yahoo.co.jp 動作(確認操作) http://www.yahoo.co.jp/ を URLへ入力する スポーツを選択する 競馬を選択する 出馬表を見る 確認事項(確認方法)  ・ページの表示を確認  ・ソースの表示を確認

テスト結果を報告する

ほらね、やっぱり、バグが出た。。。なんて喜んでないで、 バグ票 と 要望票 を 書く さてと、口頭の報告で済ませてもいいんだけど、 アイツ 三流プログラマーのクセに調子こいてるから、 バグ票と要望票を書いて、紙に証拠として残して、 突きつけてやるか。 逆に仲の良い作成者・プログラマーには、 テスト不合格をこっそり教え、修正してもらい、不合格の実績を残さない、 そんな温情処理もアリなんだけど、 ※テスト報告書作らない 一番の理由は、書類作りは面倒だし、もめたくないし(笑) なんて、いつもの前置きは置いといて、 今後に生かすために、バグ票・要望票を書きます。 システム名 デバック用 Webページのソースを表示する プログラム バグ・不具合 必ず修正しないといけない項目。納品前のテストで見つかって、よかったね(おぃおぃ)
バグ001 : Yahooのスポーツのソースが表示されない
内容
http://www.yahoo.co.jp/ を URLへ入力後、スポーツを選択する
表示されるはずのHTMLソースが表示されない
証拠画像
システム名 デバック用 Webページのソースを表示する プログラム 要望・改善点(気が付いたこと) 仕様書通りに作りました これは 仕様です。 ^^^^^^^^^^^^^^^^^^^^^^ じゃねぇだろ、設計者の力量不足もあるけど、 開発時・テスト時に確認して、使い易いシステムを目指そうよ。 えっ、予算と納期をお前が用意してくれたらやってやるって?
要望001 : UserFormの起動ボタンがほしい
内容
VBAの編集画面から実行 じゃなくて
シートに貼ったボタンからUserFormを起動できないか?
証拠画像
要望002 : URLの初期値を自由に設定したい
内容
現在、Googleが初期値でセットされているが、
シートに設定値を書き、参照するなどして、
自由にテスト用の初期ページを設定したい。
証拠画像
要望003 : HTMLソースを読み込み前にクリアしてみては?
内容
読み込みに時間のかかるwebページだと、
前のソースが残っていて、切り替えがわかりにくい。
読み込み前にソースのエリアをクリアするなど、
わかりやすい表示にしてください。
証拠画像

終わりの挨拶

バグも出てるし、修正しないとなぁ・・・・
で、問題の解決編は→[2009-03-07 続きを見る]

最新情報と作成履歴は→[更新履歴と最新を表示]


ページフッター リンクや広告、質問送信など

三流解説を読んでいただき、どうもです。ここから下は、三流君宛のメッセージ送信や 三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、※質問や感想は、気軽に送ってくださいね。

質問や要望など メッセージを送る(三流君に連絡する)

三流プログラマーのKen3 が 皆さんの質問にお答えします
と カッコつけて言っても、実力不足ですべての質問に回答することはできないのが現実なのですが、できる範囲で 三流的な逃げ手 や 解決方法 を探します(回答します)。

感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。
あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい



(感想や質問・要望 メッセージはHPで記事に載せることがあります。)

急ぎで連絡がほしい、そんな時は:[三流君連絡先]に連絡してください。

IE関係、VBA関係 の 三流君のホームページの紹介・案内

[IE操作 三流解説のトップページへ 戻る] / [IE操作の三流サンプル一覧へ 戻る]

[三流君 VBAでWebBrowser IEを操作する] / [三流君 VBAで楽しくプログラミング] / [AB型の変わり者 三流プログラマー Ken3 三流君Top]

F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。
なれると当たり前に操作している方法が↓かなぁ。
[F1ヘルプ マクロ記録ほか]・・・基本のF1を押してヘルプを見る方法など
[実行時エラー、デバッグモード]・・・デバッグの流れを簡単に(ハマった時はツライけど)
[イミディエイト ウインドウ と Debug.Print]・・・プログラム作成時に便利なイミディエイト ウインドウ
[VBA ウォッチ式とSTOPを使ってみた]・・・STOPで止め、ウォッチ式でオブジェクトの中身を確認する方法など
[参照設定のお話]・・・設定すると便利な(設定しないと使えない)、参照設定のお話

項目別に↓にプログラマーの本音?それとも建て前?的な記事をまとめました。お探しのジャンルを選択してください。
[プログラムは心? spirit]・・・プログラマー 心・気質・魂
[学ぶ study]・・・学習、技術の取得
[仕様書 doc]・・・仕様書・設計書関係の話

項目別に↓に人気の記事をまとめてみました。お探しのジャンルを選択してください。
[VBAでIE ウェブブラウザーを操作]・・・VBAでIE,WebBrowserを操作する サンプルです
[MSアクセス から エクセル を呼ぶ Excel.Application]・・・AccessからExcelを操作したりデータの書き出しなどです
[アウトルック メールの操作 Outlook.Application]・・・VBAからOutlookを使い、メール関係を処理するサンプルです
↑上記3つみたいなCreateObjectで他のアプリケーションを操作するサンプルが人気です。

Excel関係:
[エクセル ユーザーフォームを操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
[エクセルからアクセスを操作する]・・・ExcelからAccessのマクロを起動してみました、
[エクセル関係 関数、その他]・・・その他Excel関係です

Access関係:
[アクセス ユーザーフォーム/サブフォーム 操作]・・・アクセスでフォームを使ったサンプルです
[アクセス レポート操作]・・・レポートを操作してみました
[アクセス クエリーやその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です

その他:VBAの共通関数やテキストファイルの操作など
[テキストファイルの操作(Open,Close,Print,Input)]・・・普通のテキストファイルを使ったサンプルです

Blog:[三流君の作業日記]/ [objIEを使用したサンプルコードを見る]/ 広告-[通販人気商品の足跡]



[トップページへ 戻る] / [サンプル一覧へ 戻る]