[リストへもどる]
一括表示

投稿時間:2002/08/23(Fri) 09:39
投稿者名:ryou
Eメール:
URL :
タイトル:
ステップオーバー、ステップアウト
おはようございます。
デバッグのことでお伺いします。
いつもエラーが出ましたときには、ステップインやウオッチ式等を使って、
値を確認しています。
今のところその2つで間に合っているのですが、ステップオーバーやステップアウトといったものが
表示されているのですが、いまいちのその使い方がわからないです。
ステップオーバーやステップアウトといったものを利用するときというものは、
どんなときなのでしょうか?
よろしくお願いします。

投稿時間:2002/08/23(Fri) 10:35
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re: ステップオーバー、ステップアウト
> ステップオーバーやステップアウトといったものを利用するときというものは、
> どんなときなのでしょうか?

・ステップオーバー
ステップインとほぼ一緒ですが、実行するステートメントが自作のプロシージャでもそのプロシージャの中には入りません。
例えば、以下のようなコードでa=10から実行する場合、ステップオーバーは3ステップで済みますが、
ステップインなら、funcプロシージャの中も1ステップずつ進むので、c=b+5を実行した時点では13ステップかかります。

Private Sub Command1_Click()
    Dim a As Integer, b As Integer, c As Integer

    a = 10
    b = func(a)
    c = b + 5
End Sub

Private Function func(ByVal a As Integer) As Integer
    略 ' ステップ数10あるとします。
End Sub

この例で、funcプロシージャの詳細が不要なら、ステップオーバーの方がいいですよね。
クラスモジュールのデバッグをするときなんかは重宝します。

例えば、プロパティもプロシージャなので、ステップインだと、

    自作クラス.Text = 10

のような処理もプロパティプロシージャに処理が移ります。

・ステップアウト
ステップ実行中に、呼出した先のプロシージャのコードからステップ実行をやめて、
呼出し元のコードの次の行からステップ実行を続行します。
あるプロシージャの途中まで実行して、もういいから次を実行するようなときに役立ちます。

投稿時間:2002/08/23(Fri) 19:54
投稿者名:ryou
Eメール:
URL :
タイトル:
(お礼)ステップオーバー、ステップアウト
本当にご丁寧な回答いただきありがとうございました。
感謝でいっぱいです!!
多分ですが、分かったと思います。
これから積極的にこれらも使っていきたいと思います。
お礼申し上げます。