VBAのステップインなどのデバッグコマンドの使い方を初心者向けに丁寧に解説します

こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も「時間クリエーター」としてバシバシ時短に取り組んでます!

ブログラムを開発するうえで避けて通れないのがバグです。間違いなく書いたつもりでも、いざプログラムを動かしてみると上手く動かないなんてことは日常茶飯事ですよね。

そのバグを正しく動作するように直す作業がデバッグですね。初めからバグが全くないプログラムなんてないですから、いかにデバッグ作業を効率的に行うかがプログラム開発のポイントになります。

そこで今日は初心者にとってわかりにくい「VBAのデバックコマンドの使い方」を解説していきます。

レクタングル大336×280

デバッグの基本となる4つのメニュー

まずはデバッグメニューを表示させてみましょう。メニューバーの「デバッグ」をクリックすると、ずらっとデバッグに関するメニューが表示されます。

う~ん。ステップイン、ステップアウト、ステップオーバー?何が違うんだろう?初めのうちは同じようなメニューが多くて良く分かりませんよね。

まずはデバッグの基本となる、

  • ステップイン
  • ステップオーバー
  • ステップアウト
  • カーソル行の前まで実行

からやっていきましょう。

サンプルプログラムでデバッグしてみる

それではサンプルプログラムを見ながら実際にデバッグをしていきます。

テストボタンを押すと、行番号に10をかけた数字をA列に入れていくというプログラムです。10行目まで処理をします。

プログラムの流れは以下のようになります。

  1. シートモジュールのボタンクリックイベントからPutNumberをコール
  2. 行番号を引数としてAddNumberに渡す
  3. 行番号に10かけた数字を戻り値として返す
  4. セルに戻り値を入れる
  5. 2~4までの処理を10回繰り返す
  6. メッセージボックスに処理行を表示させる

ブレークポイントを設定する

ブレークポイントを設定することで、設定した場所でプログラムを一時停止することができます。今回ははじめからプログラムの動きを追いたいので、コマンドボタンがクリックされた直後にPutNumberをコールするところにブレークポイントを設定します。

それではデバッグの基本となる4つのメニューの説明をしていきます。

ステップイン

ステップインは1行ずつプログラムを実行していきます。途中にある呼び出しプロシージャ内も全て実行します。ステップインはデバッグの基本となりますのでぜひ覚えましょう。

数字で示した順番にプログラムを1行づつ実行していきます。1行ずつ実行していくことでプログラムの動きへの理解が深まります。

ステップオーバー

ステップオーバーも1行ずつプログラムを実行していくのですが、呼び出しプロシージャがあった場合、その中には入らずに次の行に進みます。

今回のプログラムは10行分繰り返す処理だからまだいいですが、これが100行、1000行のプログラムになったときを考えてみてください。その都度、ステップインで呼び出しプロシージャ内の動きまで1行ごとに追っていたら日が暮れてしまいますよね。

プログラムの全体的な流れを追いたいだけで、呼び出しプロシージャの中まではチェックしなくて良いというときなどに使います。

後はあきらかにこのプロシージャ内はエラーがないとわかっているときにステップオーバーで飛ばしたりします。

①の位置でステップオーバーを実行した場合、AddNumberに入らずに②Next yに進み、その後①に戻ります。

ステップアウト

ステップアウトはプロシージャーの終わりまで一気に実行します。呼びだしプロシージャ内に入り、ある程度動きを確認したあとにプロシージャから出たい時などに使われます。

プロシージャPutNumberの①でステップアウトを実行すると、PutNumberの最後まで処理が実行され、メッセージボックスが表示されたあと、ボタンクリックイベントの②End Subまで処理が行われます。

カーソル行の前まで実行

カーソル行の前まで実行は、カーソルが置かれている行の前まで一気に実行します。この時まだカーソル行の処理は行われていないので注意してください。

For文やDo Loop文などの繰り返し処理の中から出たい時などに利用します。ステップオーバーを使っても10回ボタンを押すのは面倒ですからね~。

①の位置にポインタがある時、②の位置でマウスをクリックしてカーソルを合わせた場合を例にしています。For文を一気に実行して、メッセージボックス表示の手前まで処理が実行されます。そのあと、ステップインを実行することでメッセージボックスが表示されます。

まとめ

いかがでしたか?今回はVBAのデバッグメニューの使い方の解説でした。4つの基本操作を使い分けて効率よくデバッグしみましょう~。

  • ステップイン 1行づつ実行する
  • ステップオーバー 呼び出しプロシージャの処理を一気に実行する
  • ステップアウト プロシージャの最後まで一気処理を実行する
  • カーソルの前まで実行 指定した所まで一気処理を実行する

以上おつかれさまでした~。

レクタングル大336×280
レクタングル大336×280

シェアする

  • このエントリーをはてなブックマークに追加

フォローする