Excel-VBAで作成したプログラミングを1つ1つの処理がきちんと流れているかを確認するためには、デバッグという解析作業を行っていきます。
このデバッグという言葉は、どの言語にも共通に利用される言葉で、これを行うことで、プログラムが正常に動作しているかを確認することができるのです。
そこで、Excel-VBAでの上手なデバッグの仕方とブレークポイントの設定の仕方、プログラム解析の正しいやり方を徹底解説していきましょう。
デバッグとは
デバッグとは・・・
作成したプログラムの解析作業のことを言い、エラーが起こらないかどうかをチェックする手法を「デバッグ」と言います。
この作業を行わないと、
- プログラムがうまく動作しなかったり
- エラーの数値を確認できなかったり
様々な問題が生じます。そのため、デバッグという作業はプログラマーにおいても非常に重要な確認作業と言えるでしょう。
またときには、OSやOfficeのバージョンによっても処理が動作しないこともありますので、しっかりデバッグができるようになることが大切です。
このデバッグには、のちに解説するブレークポイントやファンクションキーを活用しながら、解析をしていくのが一般的です。
ブレークポイントの使い方
それでは、まず最初に使うのが、ブレークポイントの使い方です。
ブレークポイントとは・・・
プログラム途中で止めることができる「茶色のマーク」を付けること
【ブレークポイントの使用方法】
どんなにプログラムを実行したとしても、このブレークポイントを設定している限り、処理はその茶色の所までしか進むことができません。
このブレークポイントまで処理が流れているということは、現在まで走らせているプログラムには、エラーやプログラムの記述ミスがないことを意味します。
また実行したプログラム中の変数にカーソルを当ててみてみましょう。
数値が文字が表示されていれば、現在その変数に値が格納されていることがわかります。このようにしながら、データがきちんと出力されているかを確認していきます。
実際に処理を実行してみよう!
プログラムは、基本的に物語と一緒で上から順番に処理を流していきます。
Sub Main のサブルーチンの中(Sub Main ~ End Subの間)にカーソルを置きましょう。
この状態で上の▶ボタンを押下することで茶色の位置まで処理が走ります。
それでは、▶ボタンを押してみましょう。
ちなみに、黄色が処理がそこまで流れていることを意味しています。そして、続きは、下記ファンクションキーを使用しながら、一つずつ解析していきます。
ファンクションキーの使い方
また一度止めてしまったプログラミングをさらに先に進めるためには、ファンクションキーを用いて、処理を先に進めていきます。
ポイント
<ファンクションキーの使い方>
①F8:1行ずつ進む
②F5:いっぺんに先に進める
③Shift + F8:Call文上で使用します。Call文にジャンプしません。同サブルーチン内を読みます。
(※F5の場合、Call文の中身に移動します。)
まず最初によく使用するのがF8ですので、これは確実に覚えておきましょう。そして1行ずつきちんと値が入っているかどうか確認しながら、進めていきます。
正しいデバッグの正しい手順とその方法とは
それでは、正しいプログラムのデバッグ方法について解説していきましょう。
【デバッグの正しい手順】
- プログラムがきちんと走るかまずは実行してみる
- エラーが起こった箇所を修正する
- エラーが起こらなくなれば、最後まで実行し、出力結果が正しいか確認する
- 値がおかしい部分がわからなければ、その値がおかしい部分にブレークポイントを付けて1行ずつ解析を行う。
まず処理がきちんと動作するのかどうかを確認しましょう。最初に実行して、エラーが出れば、初期段階でエラーを分析・解消することができます。このタイミングで処理が動作するように、プログラムを全て直してしまいましょう。
そして記述の修正が完了したら、再度実行して、最終出力結果が目的に応じた正しいデータであるかどうか確認していくとよいでしょう。
そして、もしこの出力結果がそぐわないデータの場合には、どこでこの数値に差を生んでいるのか、ブレークポイントを付けながら解析を行っていきます。
またデバッグをする中でも、Call文にジャンプする場合もありますので、どのように動くか理解しておきましょう。
Call文のおまけ解説
【Call文のおまけ解説】
頭に「Call」とついているのは、そのサブルーチンへ行きなさいの合図です。同じ名称がついてイルサブルーチンにジャンプします。
まとめ
このように、デバッグ機能は、変数の宣言がおかしかったり、プログラム記述ミス、そして、誤ったデータがあった場合の解析のために利用するものです。
正しい・効率的なデバッグ方法を身に付け、早くエラーが解析できるようになると尚よいですね。
ブレークポイントの設定の仕方やファンクションキーの使い方を身に付けて、上手に解析をできるようにしていきましょう。
【VBA】デバッグのやり方!ファンクション(Fn)ボタンの使い方
続きを見る