2011年1月4日火曜日

VBEでのデバッグ:ブレークポイント

VBEでのデバッグについて。

最近仕事でVBAを使ったツールの開発をする機会がちらほらあります。
ツールと言っても社内業務で使うレベルの小さいプロジェクトですが、ほかにVBAができる人がいないため要件定義から設計・開発・テスト・保守を一手に引き受けている状態です。
プロジェクト運営の演習みたいな感覚で取り組んでいます。


もともとVBAは好きで、まぁ好きレベルで勉強していたのですがツールを作るようになってまた私のVBA知識がちょっとずつバージョンアップできています。

今回はデバッグツールについて。
開発をしているとテストとデバッグは必須作業ですが、私は作ってばっかりで今までデバッグの効率的な方法はあまり知りませんでした。
今もまだまだ勉強中ですが、追記を前提にここにVBEでのデバッグについて書き留めておこうと思います。

------------------------------
■ブレークポイント
プロシージャの行頭から指定した位置までを実行する。
実行時にローカルウィンドウを表示させておくと、実行停止時点での変数の値を確認することができる。
停止させたい行の左側のバーをクリックすると丸いポインタがつき、ブレークポイントが設定される。
もう一度同じ場所をクリックすると丸いポインタが消え、ブレークポイントが解除される。
この状態でプログラムの実行をすると指定したブレークポイントの直前までのプログラムが実行される。
下のサンプルプログラムを例にすると、この状態でプログラムを実行した場合、変数aには「aaa」が代入された状態となる。

--サンプル--
Sub test()
    Dim a As String
    
    a = "aaa"
    
    a = "bbb"       'ここにブレークポイントを設定
    
    a = "ccc"
End Sub

--サンプルここまで--
ちなみにローカルウィンドウはVBEメニューバーから
[表示]→[ローカルウィンドウ]
を選択して表示させることができる。
------------------------------

この機能を使うようになってから、プログラムをとりあえず全部実行してテストするということはなくなりました 笑
実行しなくていいプログラムを実行するのは時間の無駄ですし、せっかく整えたテスト環境やテスト用のデータがおかしなことになっちゃったりもします。
何より、バグが出ている原因を探るのに時間がかかりすぎますね。



プログラマさんだったら当たり前にこういう部分的なプログラムの実行をしているのかもしれませんが、独学プログラマな私はこういうデバッグ方法にいちいち感動していたりします。
自分がやりたいことを自分で探して身につける、ちょっとずつしか進めませんがこうして学んできていることは確実に自分を大きくしてくれていると信じています。

0 件のコメント:

コメントを投稿