ブレークポイントの設定と中断時の操作

ブレークポイントを設定すると、その設定した行で処理がブレーク(中断)します。このときに変数に設定されたデータ内容を確認したり、1行ずつ処理を実行(ステップ実行)したりすることで、処理が意図したとおりに行われているか確認することが可能になります。

以下ではサンプルマクロを使用して、ブレークポイントの設定と中断時の操作を解説していきます。

スポンサーリンク

サンプルマクロ

次のサンプルは、九九を表示するという単純なマクロです。マクロを実行すると九九の段をInputBoxで受け付け、その段に応じた結果をダイアログで表示します。

Sub sample2_1()
'九九を入力された段ごとに表示するマクロ
    Dim var     As Variant
    Dim i       As Integer
    Dim result  As String
    Dim str     As String

    'InputBoxから入力を受け付けます。
    '正しい数値が入力されるか、キャンセルされるまで
    '入力を受け付け直します。
    Do
        var = InputBox("表示する段(1~9)を入力してください。")

        If StrPtr(var) = 0 Then
            'キャンセルボタンが押下された場合は処理をキャンセルします。
            MsgBox "処理をキャンセルしました。", vbExclamation
            End     'ここで処理を終了します。
        End If
    Loop Until IsNumeric(var) And 0 < var And var < 10

    '結果の見出しを編集
    result = "◆◆◆" & var & "の段の結果◆◆◆" & vbLf

    '繰り返し処理
    For i = 1 To 9
        '掛け算の結果(文字列)をFunctionプロシージャから受け取ります。
        str = strMultiple(CInt(var), i)

        '受け取った文字列を改行コードと一緒に後ろへ追加していきます。
        result = result & vbLf & str
    Next i

    '結果を表示
    MsgBox result, vbInformation
End Sub

Function strMultiple(x As Integer, y As Integer) As String
'掛け算の過程と結果を文字列にして返すプロシージャ
    Dim z As Integer    '各プロシージャ内で個別に変数を宣言できます。

    '掛け算の結果を保存します。
    z = x * y
    '掛け算の過程と結果を文字列連結し、呼び出し元へ返します。
    strMultiple = x & " × " & y & " = " & z
End Function

関連 InputBox Do … Loop For … Next MsgBox IsNumeric

サンプルマクロ実行結果

上記のサンプルマクロを実行するとInputBoxが表示されますので、適当に数値(ここでは3)を入力して OK ボタンを押下します。

InputBoxに数値を入力
InputBoxに数値を入力

すると、入力した値に応じた結果が表示されます。

サンプル実行結果
サンプル実行結果

処理のキャンセル

InputBoxが表示されたときに、InputBox右側の キャンセル 、または、右上 [ × ] ボタンを押下すると、次のようなダイアログを表示して処理をキャンセルします。

処理のキャンセル
処理のキャンセル

ブレークポイントの設定と中断時の操作

ここから本題です。上記のサンプルマクロを使用して、まずはブレークポイントの設定をしてみましょう。

ブレークポイントを設定するにはコードウィンドウ左端のインジケータバーをクリックします。ブレークポイントが設定された行は背景が茶色になるので、わかりやすいと思います。ブレークポイントは複数個所に設定できます。

ブレークポイントを解除したい場合はもう一度同じ場所をクリックしてください。

ブレークポイントの設定方法
ブレークポイントの設定方法

ブレークポイントが設定できたら、マクロを実行してみましょう。

処理がブレークポイントにさしかかると処理が中断します。 処理がブレークポイントを設定した箇所を通過しない場合、処理は中断しませんので注意してください。

マクロが中断された様子
マクロが中断された様子

処理が中断されたらを変数やプロパティをマウスでポイントしてみましょう。データが設定されていればその内容が表示されます。

変数内容が表示された様子
変数内容が表示された様子

継続 ボタンまたは F5 ボタンを押すと処理が継続され、処理が進んだ先にブレークポイントがあれば処理が中断します。このサンプルではFor文で処理がループしているため、再度中断します。

マクロ継続ボタン
マクロ継続ボタン
処理が再度中断した様子
処理が再度中断した様子

このようにブレークポイントを設定すると、実際は一瞬で終わってしまうような処理を途中で中断し、その時点での変数の値や、処理の実行状況を確認することができます。

タイトルとURLをコピーしました