§2 トレース(1)2 プログラミング実習
 back next 

【3】 VB独自の方法

 VBの開発環境には、プログラムのトレースを支援する機能が用意されている。メニューバーの[デバッグ(D)]から利用できる機能について学習する。

○ ブレークポイントの設定/解除

 ブレークポイントとは、プログラムの実行を一時的に停止(終了ではない)する場所のことである。一時停止したい行にカーソルを移動して、メニューバーから次のように選択するとブレークポイントの設定と解除が交互に行える。([F9]キーを押してもよい)

 [デバッグ(D)] → [ブレークポイントの設定/解除(G)  F9] 

○ ステップイン

 ステップインとは、プログラムを1命令ずつ実行する機能である。
 メニューバーから次のように選択する。([F8]キーを押してもよい)

 [デバッグ(D)] → [ステップイン(I)  F8] 

 これらの機能を使ってトレースする。プログラムは「実習2トレース(1から5までの和を計算する)」を使う。

操作 6 デバッグ用の命令を削除する。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer, goukei As Integer            '#0
        For n = 1 To 5                                 '#1
            goukei = goukei + n                        '#2
            Debug.Print("n=" & n & " goukei=" & goukei)  '←削除
        Next                                           '#3
        label1.text = "結果は、" & goukei & " です。"    '#4
    End Sub

操作 7 ブレークポイントを設定する。

@ コードウィンドウを開いて、カーソルを合計計算の行(#2)に移動する。
A [F9]キーを押す。   結果 行が暗い赤色に変わる。

ブレークポイントの設定

操作 8 プログラムを実行して、[Button1]ボタンをクリックする。

結果 VBの開発環境がアクティブになり、コードウィンドウが開く。ブレークポイントを設定した行が黄色になり停止する。この行を実行する前で停止している。

デバッグ中の変数表示操作 9 マウスを変数nまたは変数goukeiの上に移動し、現在の値を確認する。

結果 変数の値が表示される。図は変数nの場合である。
変数nの値=( 1 )、変数goukeiの値=( 0 )

操作 10 実行を再開(続行)するため、[F5]キーを押す。

結果 ブレークポイントで停止する。
変数nの値=( 2 )、変数goukeiの値=( 1 )

操作 11 命令を1つだけ実行するため、[F8]キーを押す。

結果 Nextの行(#3)が黄色になる。この行を実行する前で停止している。
変数nの値=( 2 )、変数goukeiの値=( 3 )

操作 12 プログラムを最後まで実行するため、ブレークポイントを解除する。

@ カーソルを合計計算の行(#2)に移動する。
A [F9]キーを押す。 結果→ 色が元に戻る。
B [F5]キーで実行を再開する。

結果 Label1に「結果は、15 です。」と表示される。


○ ステップオーバー

 ステップオーバーとは、メソッドの呼び出しに対してメソッドに移動しないで、プログラムを1命令ずつ実行する機能である。(メソッドの作成については次回に説明する)
 メニューバーから次のように選択する。(Shift+[F8]キーを押してもよい)

 [デバッグ(D)] → [ステップオーバー(O)  Shift+F8]

 この機能を使ってトレースする。プログラムは「実習2トレース(1から5までの和を計算する)」を変更して使う。

操作 13 下線部の命令を追加する。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer, goukei As Integer
        For n = 1 To 5
            goukei = goukei + n
        Next
        hyouji(goukei)    'メソッド呼び出し
        Label1.Text = "結果は、" & atai & " です。"    '←削除
    End Sub
 
    Private Sub hyouji(ByVal atai As Integer)
        Label1.Text = "結果は、" & atai & " です。"
    End Sub

操作 14 ブレークポイントをメソッド呼び出しの行に設定する。

操作 15 プログラムを実行して、ボタン(Button1)をクリックする。

結果 VBがアクティブになり、コードウィンドウが開く。ブレークポイントを設定した行が黄色になり停止する。この行を実行する直前で停止している。

操作 16 [F8]キーを押して命令を1つずつ実行し、最後まで実行する。

4        hyouji(goukei)        'メソッド呼び出し
5    End Sub
1    Private Sub hyouji(ByVal atai As Integer)
2        Label1.Text = "結果は、" & atai & " です。"
3    End Sub

操作 17 最後まで実行してウィンドウが表示されたら、プログラムを終了する。

操作 18 もう一度、プログラムを実行して、ボタン(Button1)をクリックする。

結果 VBの開発環境がアクティブになり、コードウィンドウが開く。

操作 19 今度は、Shift+[F8]キーを押して命令を1つずつ実行し、最後まで実行する。

          hyouji(goukei) 'メソッド呼び出し
1    End Sub
      Private Sub hyouji(ByVal atai As Integer)
          Label1.Text = "結果は、" & atai & " です。"
      End Sub

結果 メソッドに移動しない。これがステップオーバーである。

操作 20 最後まで実行してウィンドウが表示されたら、プログラムを終了する。


 back next 
 §2 トレース(1)2 Copyright©2008,2009 Hiroshi Masuda 

 

 

inserted by FC2 system