デバッグ時によく使う、イミディエイト ウインドウ を 少々さわってみたいと思います。
Debug.Print と 組み合わせて使うと便利です
なんて偉そうに言ってますが、単なる値の表示だったり、その場で軽めの実行して確認したりするだけです。。
私は確認のMsgBoxを入れまくるのと Sub aaa() とか短い関数を作って、確認をするのが好きですが、
イミディエイト ウインドウ(Ctrl+G) と Debug.Print 使い慣れると便利ですよ。
今回は、 イミディエイト ウインドウ と Debug.Print です。 気楽に読んでください。 /* * 1.イミディエイト ウインドウ? */ イミディエイト ウインドウ? って人も、 コードを入力するか貼り付けて、Enter キーを押して、 コードを実行させる、なんてことやってると思います。 あの白いウインドウです。 (VBAエディターのウインドウってどれも背景色白か) もし、表示されていない場合は(邪魔だと思って消してたら)、 CTRL+Gか表示メニューから選択して表示して下さい。 /* * 2.何が出来るの? */ そんなウインドウ表示させて、何が出来るんだよ。 くだらない話だったらメルマガ解除だね。 なんて、心の声が聞こえたような気がしないでもないが(解除しないでね) 簡単に説明すると。 簡単にコードを貼り付けて実行できます。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 例えば、 ? Left("ABCD", 2) と入力後リターンキーを押すと、 AB と結果が表示されます。 (?で値を表示できます) 普通に変数も使えて、 a="VBAで楽しく" ? len(a) 7 とやることも出来ます。 さらに、カーソルをもどして、 a="VBAで楽しくプログラム"と追加で文字を修正したりして、再度確認も出来ます。 ポイントは、修正後にリターンキーを必ず押すことかなぁ。 簡単な確認は、 イミディエイト ウインドウ を使用すると便利です。 /* * 3.自作関数内にDebug.Printを入れて値を吐き出す */ あと、便利なのがプログラム内で Debug.Print 値や変数 とやると、イミディエイト ウインドウに値が表示されます。 私がよくMsgBoxで値を表示させてるけど、 それだとOKボタンを押したり、確認した値を頭で覚えてないといけません。 Debug.Print を使った例を書くと、 Sub aaa() Dim i As Integer Debug.Print "これは?どこに表示されるの?" For i = 1 To 5 Debug.Print i Next i End Sub とやり、実行すると、 これは?どこに表示されるの? 1 2 3 4 5 と表示されます。 MsgBoxの確認がうざい時 や デバックモードで処理を止めたくないけど値の確認だけはしたい なんて時にDebug.Printを使ってみてください。 /* * 4.おわりの挨拶 */ 今回は、 ・イミディエイト ウインドウ? ・Debug.Printを使ってみよう でした。 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。
質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。 時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。 |
私の唯一の人気 IE操作の記事
[三流君VBAでIE操作 InternetExplorer.Applicationを操作する]
から、番外編として、ブレークポイント(やSTOP)を設定して、変数をウォッチする、そんな方法を載せます。
※処理の途中で止めて イミディエイト ウインドウ で変数の中身を確認する そんなイメージです。Debug.Print を大量に貼るのが私は好きなのであまり使っていない方法ですが・・・(オイオイ人様に自分がやらない方法教えるなよ)
資料探しに飽きたら現物を動かしながら見る、そんな方法もあります。デバックで止める、ウォッチで中身を見るがポイントです。※一度くらいは資料だけじゃなくて現物をさわってみては?
あんまり好きじゃないけど、
ブレークポイントを設定し、デバックで止めて、変数の中身・オブジェクトを見てみます。
~~~~~~~~~~~~~~~~
Sub xxxxx()
Dim objIE As Object 'IEオブジェクト参照用
'インターネットエクスプローラーのオブジェクトを作る
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True '見えるようにする(お約束)
'文字列で指定したURLに飛ぶ
objIE.Navigate "http://xxxx.xxxx.xxx/yyy.html"
'デバックで止める
MsgBox "OK?"
End Sub
右クリック、設定・解除 -- ブレークポイントを選択し、設定します。次にobjIE変数のオブジェクトの中身を見たいのでウォッチ式を追加します。
追加方法は、どこでもいいので、ソースの画面で
objIEをドラックして反転表示の選択後、右クリックしてウォッチ式の追加を選択します。
←参考画面
実行して、オブジェクトの中身を探る
ブレークポイントの設定
変数objIEをウォッチする準備が整ったので、
実行して、変数の中身を探ってみます。
実行すると、ブレークポイントの場所で止まります。
当たり前だろ、そのために設定したんでしょアナタが。
そうでしたね。
ブレークポイントで止まってからは、
飲み会に誘った女の子みたいに逃げないので
落ち着いて中身をチェックしましょう。
(飲み会で女性陣に逃げられてるみたいだなぁ、この書き方だと(笑))
ウォッチウインドウの変数名の横+をクリックして中身を探って行きます。
←参考画面
それにしても、階層が深いです。
テーブル系のオブジェクトを探すが、なかなか見つからない(笑)
(女の子じゃなくって、IEの心の中は複雑なのね、、、)
中身を確認するために、となりのイミディエイトウインドウで、
←参考画面
? objIE.document.body.innerText
とか、中身を聞いてみた(アクセスすることもできます)
ここだけは静止画よりも動画操作イメージの方がいいのかなぁ?
と思ったが、↑動画解説もダラダラ長い・・・静止画を大量に貼る方が見やすいのかも(静止画だと上に戻るのも簡単だしね、動画は説明の少し前に戻るのが不器用だと大変)
※説明で、左側を右側とか言ってるし、イミディエイトウインドウで変数の中身を見る時 空白連発でいつものグダグダ(笑)
※10番目とか本人言ってたけど、Item10番目なら 10-1でDocument.All(9)と9を指定しないとね(意外と読者様も間違えるかも?)。ツリーで見ていたデータが9と気がつかないで11・12と実行して気まずくなったからOuterHTMLに変えようとするがスペルを間違える最悪ですね。女性とデートなら中ならたぶん逃げられてるなキット
何かの参考となれば 幸いです
分類別といっても、あまり分類別にまとまっていないのですが、、、↓
F1でヘルプを見たり、デバック時にDebug.Print使ったり、イミディエイト ウインドウで簡単な確認したり。
なれると当たり前に操作している方法が↓かなぁ。
[プロパティ、メソッドを探る方法]・・・基本のF1を押してヘルプを見る方法など
[実行時エラー、あわてないでデバックを押す]・・・デバッグの流れを簡単に(ハマった時はツライけど)
[イミディエイト ウインドウ と Debug.Print]・・・プログラム作成時に便利なイミディエイト ウインドウ
[VBA ウォッチ式とSTOP]・・・STOPで止め、ウォッチ式でオブジェクトの中身を確認する方法など
[参照設定のお話]・・・設定すると便利な(設定しないと使えない)、参照設定のお話
[サンプル 実行方法]・・・Alt+F11 や ツール--マクロ から VBAの編集画面を開き F5で実行?
イロイロな仕様書・設計書を各工程で使っていくのですが、その一部を書きました。
[基本設計書/仕様書のお話]・・・仕様書・設計書を書いてますか?簡単な流れを書きました。
[テスト仕様書のお話]・・・テストデータ XXXXを入力したら、YYYYになる ほか
[バグの連絡票とテストケース]・・・バグ・不具合の連絡を受けたら 原因を書き 処置する。
[関数仕様書のお話]・・・仕様書は頭の中にありますでいいの?かよ?
[作業の流れ 入力・処理・出力ほか]・・・フォルダー選択を例に仕様書と流れを解説
blog:あまり更新していない作業日記 →
[三流君の作業日記] と
[通販商品の足跡] も よろしくお願いします。