恐れることなく、バンバン長いコードを書いていけるようになります。
そうすると、いつの間にかこんなに長いコードを書いていたのかと
自分で自分を褒めたくなる半面、ちょっと怖くなります。
特に、集中して一気に記述して
いざ実行!ってボタンを押して
即エラー表示がされたりします。
私の場合よくやるのは、変数の宣言し忘れとか
If文のEndIfの記述忘れという、クソツマンネーエラーが多いので
そんな時は、周りの誰にもばれない表情で
シレっと修正してコードを実行します。
しかし、中にはエラーの原因、理由などが
よくわからなく、何度も同じ箇所でデバック対応を余儀なくされることがあります。
短いコードならまだしも、先述したとても長いコードを書いてしまったときは
恐怖を超えて狂気すら感じます。
私の場合、1回の実行で完了まで10~30分時間を要するコードを書いたり
しかも、エラーは出てないが期待している
処理結果が得られないことなどもあり、そういった場合
どこが間違っているか分からない事象が発生した場合
文字通り頭を抱えてしまいます。
毎回、スタートから完了までを通すわけには行かないので
そういったときは、まずある程度の箇所に目処を付けたうえで
ステップインで進めます。
ステップインとは、そのプロシージャの1行目から
1行ずつコードを実行していく方法です。
まず、サンプルコードです。
------------------------------------
Sub test()
Dim i As Long, j As Long
'掛け算の結果を出すFor文
For i = 1 To 9
For j = 1 To 9
Cells(j, i) = i * j
Next j
Next i
End Sub
------------------------------------
実行結果は以下の通りとなります。
これをステップインで実行する場合
コードの記述まで行った後
画面の開発のタブ→マクロ→作成したプロシージャ名を選択→ステップ インをクリックします。
そうすると、VBE画面が表示され、
現在の進行箇所が黄色く表示されます。
そして、次の行に移動するにはファンクションの8番(F8キー)を押します。
実行最初の画面
F8キーを1回押した状態
F8キーを2回押した状態
F8キーを押しっぱなしにすると、
ものすごいスピードでブルブルン!って実行状態を見ることが出来ます。
一つ一つの実行結果を確認するには
もってこいの機能です。
もちろん、Excelの画面を開きながらやれば
もちろん画面反映を確認しながら進めることも出来ます。
また、Forの動きなどは、
このステップインを見ていると、どういった動きをしているのか
目で確認できるので、非常に良いと思います。
ただし、先述したとてつもなく長いコードを記述した際
しかも、確認したい箇所は最後の方
その上、それまでの箇所にFor文を連掛けしているなど
不都合の女神に微笑まれた場合は
任意の場所までは一気に実行するという方法もあるのです。
それはブレークポイントの設定です。
下図赤枠内ジャンプさせたい列辺り
クリックすると、赤黒い●マークがつきます。
ステップイン実行後、このブレークポイントを実行すると
その箇所までは、通常のコードを実行したスピードで
コードが実行されます。
その後、F8を押せば、1行ずつステップイン作業が実行されます。
その後、すべてのコードを実行する場合は
F5(実行ボタン)か四角のリセットボタンを押せば
作業の継続かストップを選択できます。
是非、この機能を活用して無駄のないデバック作業を行ってください。
私の場合、デバック作業のいらない完璧なコードばかりではなく
たくさんのエラーを経験した方が
よりよりコードが書けるようになると信じてます。
0 件のコメント:
コメントを投稿