今回はデバッグ方法を使い分けてやってみましょう。
- ひとまず動作を確認したい時
- 何かがおかしいけど何がおかしいのかよくわからない時
- かなりループしているけどカウンタ変数が”ある数”の時だけおかしくなる時
このような時に使える方法を紹介していきたいと思います。
ステップ実行
以前も軽く紹介した事がありますが、ひとまず動作を確認したい時は「ステップ実行」ですね。
前に使用した事があるプロシージャを利用して紹介していきます。
ステップ実行を行うにはステップ実行したいプロシージャの中にフォーカスを置いて「F8」ボタンですね。
この様にローカルウインドウで変数の中身を確認しながら1行ずつ処理を確認する事が出来ます。
更に黄色い矢印を左クリックで選択した状態でカーソルを動かす事により好きな場所へ移動できます。
行き過ぎてしまった時に戻したり処理を飛ばしたりできます。
ただし、処理を飛ばした場合はその間に定義されていなければいけないものがあった場合はエラーになってしまいます。
ブレークポイント
何がおかいしいのかよくわからない時はおかしくなるであろう直前で処理を止めて確認するのが良いですね。
そのような時はブレークポイントを使用します。
処理を止めたい行にフォーカスを置いている時に「F9」ボタンかプログラムの左端の部分をクリックしてみましょう。
そうすると左端に茶色い丸が付きます。
その行がブレークポイントとなります。
一括で実行した場合でもブレークポイントで処理が止まります。
ただし、他のブックを開く処理を挟んだ場合にうまく止まってくれない時があるので何か僕の知らないルールがあるのかも知れません。
何にせよ注意が必要な部分ではあります。
ウォッチ式
例えばFor~Nextで10,000回ループしなければいけなかったとします。
その際のカウンタ変数が499の時に必ずエラーになってしまう時…
こんな時はカウンタ変数が498の時くらいに処理を止めたくなりますが、カウンタ変数が498になるまでステップ実行、あるいはブレークポイントで飛ばし続ける。なんて無駄な事はしたくありませんよね?
そんな時はウォッチ式を使いましょう。
ウォッチと書いたウインドウ内で
右クリック→ウォッチ式の追加→式を入力→式がTrueの時に中断を選択
と操作してOKします。
そうするとプログラムが一括実行された時でも式がTrueになった時点でプログランが中断してくれます。
今回はカウンタ変数として用意したiが498の時に止めたいので
i = 498
と入力しています。
必要なくなった時は右クリック→ウォッチ式の削除で消すことができます。
まとめ
この様に機能をうまく使えば膨大な量のプログラムでも効率よくデバッグする事が出来ます。
プログラムを書くという事はすなわちエラーと戦う事でもあると思いますのでこのような機能を使っていければより早くプログラムを完成させる事が出来るかも知れません。
<<<CSVデータを2次元配列に変換