[三流君(ken3.org)]/ [VBA(TOP)]/ [F1でヘルプを見る]/ [Debug.Printを使い値の確認]/ [ウォッチ式とSTOP]/ [デバッグ方法ほか]

イミディエイト ウインドウ(Ctrl+G) と Debug.Print

デバッグ時によく使う、イミディエイト ウインドウ を 少々さわってみたいと思います。
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でした。

質問や要望、クレームを送る(三流君に連絡する 連絡方法)

質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。
時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。
あなたのお名前(ニックネーム):さん
返信は?: 不用(HP更新を待つ) , E-mail→ アドレス:に返事をもらいたい

(感想や質問・要望・苦情はHPで記事に載せることがあります。)

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

番外編 おまけ?


0228 Debug.Print を 使い、データをイミディエイトへ表示

Stopで止めて debug.printを使いデバッグ 03/09

03/14 エラー処理を入れる 危ないポイント、見つからない時の処理

番外編

私の唯一の人気 IE操作の記事
[三流君VBAでIE操作 InternetExplorer.Applicationを操作する]
から、番外編として、ブレークポイント(やSTOP)を設定して、変数をウォッチする、そんな方法を載せます。
※処理の途中で止めて イミディエイト ウインドウ で変数の中身を確認する そんなイメージです。Debug.Print を大量に貼るのが私は好きなのであまり使っていない方法ですが・・・(オイオイ人様に自分がやらない方法教えるなよ)

デバッグで止めて、現物の変数objIEを見る

資料探しに飽きたら現物を動かしながら見る、そんな方法もあります。デバックで止める、ウォッチで中身を見るがポイントです。※一度くらいは資料だけじゃなくて現物をさわってみては?

あんまり好きじゃないけど、
ブレークポイントを設定し、デバックで止めて、変数の中身・オブジェクトを見てみます。
~~~~~~~~~~~~~~~~

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
右クリック、設定・解除 -- ブレークポイントを選択し、設定します。
←参考画面
※左側の余白を押してONとOFFを切り替えてもOKです。

次に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で実行?

仕様書のお話(XXX設計書)

イロイロな仕様書・設計書を各工程で使っていくのですが、その一部を書きました。
[基本設計書/仕様書のお話]・・・仕様書・設計書を書いてますか?簡単な流れを書きました。
[テスト仕様書のお話]・・・テストデータ XXXXを入力したら、YYYYになる ほか
[バグの連絡票とテストケース]・・・バグ・不具合の連絡を受けたら 原因を書き 処置する。
[関数仕様書のお話]・・・仕様書は頭の中にありますでいいの?かよ?
[作業の流れ 入力・処理・出力ほか]・・・フォルダー選択を例に仕様書と流れを解説

プログラムのお話

[作成時 Ctrl+C Ctrl+Vの前によく考えよう]・・・コピープログラムの落とし穴?
[関数に汎用性を持たせる、共通に使える関数作り]・・・共通に使える関数(財産)を作りましょう

Access関係:アクセス側からのアプローチ

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

Excel関係:エクセル側からのアプローチ

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

その他:VBAの共通関数やテキストファイルの操作など

[VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
[VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます

blog:あまり更新していない作業日記 → [三流君の作業日記] と [通販商品の足跡] も よろしくお願いします。



[三流君(Ken3.org)] / [VBAで楽しく] / [VBA バックナンバー]