【 VBAのデバックとは? 】プログラムを作成にとても重要!デバックのやり方を紹介

VBAのデバックって知ってますか?VBAでプログラムを作り上げるにはデバックはとても重要。デバックのやり方を知っているのと知らないのとでは、プログラムを完成させるスピードが全然違います。最初からバグのない完璧なVBAを作れることは滅多にありません。余程の天才か、シンプルすぎるVBAかのどちらかでしょう。

スムーズにデバックできるようになれば、もっといろんなVBAに挑戦したいという意欲が湧いてくるようになるはずです。

 

Left Caption

豆父ちゃん

バグの原因が分からなくて挫折していく人がいっぱいいたなぁ、、挫折しないためにデバックの方法をしっかりマスターしましょう。

デバックのやり方(主にバグを発見するテクニック)を紹介

 

デバックとはプログラムの間違い・欠陥(バグ)を自分で発見し、修正する作業のこと

 

自分の作ったVBAなんだからなんですぐにバグの場所を見つけれないの?と思う方もいると思います。

自分で作ったVBAだからこそ難しい!!

 

こんなところで間違えないという思い込みがデバックの邪魔をしてしまうケースが多い。

 

ほかにも

プログラムが複雑になればなるほどデバックをするのが難しい!!

Left Caption

豆父ちゃん

CallやFunctionを取り入れたものは複数のプログラムをいったりきたりするので、バグの発見が難しい・・

たかがバグを見つけて修正するだけ!と思わず、いろんなテクニックを身につけてデバック力を向上させましょう。

 

【 デバックのやり方 】VBAの実行を使い分ける

デバックするときに必要な動作がプログラムの実行です。

実行をしなければバグがあるのか、ないのかさえわからない。。

まずはVBAの実行の方法を理解しましょう。

いろんな実行の方法

・実行ボタンを作成しプログラム登録して実行する

・任意のセルにプログラムを登録しクリックして実行する

・Excelを起動または終了の動作で実行する

・ユーザーフォームを設定して実行する

・プログラムの作成画面(モジュール)で実行する

いろんな実行の方法があり1番使われるのはユーザーフォームを使った実行ではないでしょうか。

しかし

ユーザーフォームによる実行は普段の運用するときに便利な実行方法であって、デバックには不向きな実行方法です。

デバックするときはモジュール画面で「F8」または「F5」を使ってプログラムを実行する方法がおすすめです。

 

デバックのやり方【 「F5」を使った実行 】

モジュール画面でF5を押すとプロシージャ内全てのプログラムが実行される

プログラムの作成中に作ったところまでが正常かどうか確認するときに使用

簡単な例)

 

F5を入力すると上記のような画面になりますので「実行」を選択

 

実行結果1.Sheet「テスト」のA1にテキスト「確認」が入力
2.Sheet「テスト②」のA1にテキスト「確認2」が入力

3.Sheet「テスト」のA2にテキスト「確認2」が入力

 

結果からプロシージャ内の最初のプログラムから最後のプログラムまで実行されたことがわかります。

もしバグがあると何かしらのエラー画面が表示される。

複雑なプログラムを作るときは、こまめに実行して早めにバグを見つけましょう。

 

デバックのやり方【 「F8」を使った実行方法 】

モジュール画面でF8を押すとプロシージャの最初のプログラムから1行ずつ実行されます。

バグの詳しい位置を調べるときに使用

簡単な例)

 

「F8」を押すたびに上記のように、黄色の塗りつぶしが下の行へ移動していく。

黄色の塗り潰しが通り過ぎた行は正常であるということになります。

 

 

もし上記のようにプログラムにバグがある場合、下図のような警告が表示される

 

 

黄色の塗りつぶしが止まったところにバグがあるということに

ほかにも、上記警告のデバックというボタンを選択するとバグがある行が黄色に塗りつぶされるので積極的に使っていきましょう。

デバックのやり方【 「F5」と「F8」の使い分 】

それぞれの特徴をしっかりと把握すれば、どんな複雑なプログラムでもデバックできるようになります。

「F5」は作成したプログラムをいっきに実行させる

「F8」は作成したプログラムを一行ずつ実行させる

 

おすすめな使い分け

「F5」でプログラムを実行し、そのプログラムのどこかに間違いがあった場合に「F8」で一行ずつ実行し間違いの場所を探す

 

Left Caption

豆父ちゃん

プログラムのエラー箇所を探すのにとても便利

おわりに

自分の考えをまずプログラムに書いて実行し、バグを検索し修正する

の繰り返しでプログラムは出来上がっていきます。

VBAの達人でも1からプログラムを作るときは必ずミスがあります。そのときにどれだけ早くデバック出来るかが重要になります。

デバックが得意な人の特徴

 

デバックが得意な人の特徴・プログラムを作り上げるスピードが早い

・使用中VBAの予期もしないエラーの対応が早い

・知識が豊富の人より頼られている

 

デバックができるようになると、エクセルに詳しいという周りの評価にも繋がり、いろんなVBAを作れるようになっていきます。

いろんなVBAを作るにはデバックが必ず必要になるので、是非デバックの方法をマスターしましょう。

デバックに苦労したExcel VBA

4つのVBAは職場で同僚から好評なVBAなのですが、デバックにかなり苦労しました。

経験を積んでデバック能力を向上させましょう。