ワードマクロ:VBEでマクロの動作がおかしいときのテストのやり方

シェアする

ワードマクロの動作がおかしいとき、VBEを使えばテストすることができます。

プログラムの動作がおかしな点をプログラムのバグ(虫)といい、バグを修正する作業のことをデバッグといいます。

この記事では、VBEを使って、効率よくデバッグする方法を紹介します。

VBEでVBAのデバッグをする方法

ローカルウィンドウを表示

ローカルウィンドウを使って、ブレークポイントを使ってプロシージャの途中で動作を止めたとき、そのプロシージャで使われている変数の中身を確認するすることができます。

表示されてない場合、「表示」メニューの「ローカルウィンドウ」をクリックして表示することができます。

ブレークポイントを設定

ブレークポイントとは、プログラムを実行したとき一旦実行を一時停止して、プログラムの実行状態を詳しく調べるための機能です。

設定の仕方ですが、2通りあります。

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

設定したいステートメントにカーソルを合わせて、「ブレークポイントの設定/解除」アイコンをクリックすると、ブレークポイントを設定、解除が切り替わります。

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

コードウィンドウの左側の灰色の部分をクリックすると、下図のように茶色の●マークが付きます。もう1回クリックすると、ブレークポイントが解除されます。

実行してブレークポイントで一旦停止

この状態で、「Sub/ユーザーフォームの実行」アイコンをクリックして見ましょう。

ブレークポイントまで実行がすすんで、一旦停止します。

ブレークポイントで一旦停止中の操作

変数確認

ローカルウィンドウには、実行中のプロシージャの変数の値(内容)が表示されています。

下図では、str_test には、前の行で代入された「ワードのマクロで、」が代入されており、i_row は 0 であることが分かります。

まだ、i_row = 1 の代入文が実行されてないということですね。

実行の再開

ここで、再度「Sub/ユーザーフォームの実行」アイコンを押すと、実行が再開され、次のブレークポイントがあればそこまで実行されます。ブレークポイントが他になければ、最後まで実行されます。

また、アイコン列右側に、「ステップイン」、「ステップオーバー」、「ステップアウト」の3つのアイコンが有り、途中まで実行を進めることができます。

  • ステップイン
    1行だけ実行を進めます。もしステートメントがプロシージャ呼び出しの場合、そのプロシージャの中の1行だけ実行します。
  • ステップオーバー
    1行だけ実行を進めます。もしステートメントがプロシージャ呼び出しの場合、そのプロシージャは全て実行してしまいます。
  • ステップアウト
    プロシージャを全て実行し呼び出し元まで処理が戻ります。

ここでは、ステップインをクリックして、1行処理を進めてみます。

1行実行すると、i_row = 1 が実行され、ローカルウィンドウでi_row の値が、1に変化していることが分かりますね。

こんな感じで、コードウィンドウとローカルウィンドウを使うだけでも、かなり効率よくデバッグできるようになります。

他にも、イミディエイトウィンドウ、ウォッチウィンドウを使った方法も別記事で紹介しますので、合わせて読んでみてください。

この記事が気に入ったら
いいね ! しよう