
処理中の不具合で「実行時エラー」が発生すると、その瞬間にプログラムは落ちてしまいます。
みなさん、こんにちは。セルネッツ竹本です。
今回は、「原因究明のために行うデバッグ作業」をテーマに、解説をしたいと思います。
実行時エラーでお困りなら
マクロのエラーで業務が止まっていませんか
- 実行時エラーで処理が途中で落ちてしまう
- デバッグしても原因の箇所が分からない
- 作った人が退職してマクロを直せない
そのお悩み、エラーの原因調査と改修で解決できます。Excel専門のシステム開発会社『セルネッツ』なら、エラー箇所の特定と不正な入力値のチェック処理の追加に対応します。再発しにくい構成への見直しもご提案します。前任者が作ったマクロでもご相談ください。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料
◆デバッグ(Debug)とは何か。
むずかしい表現を使わずに、わかりやすく簡単にいうと、「ソフトウェアのエラー原因を調べて修正すること」です。
これを「デバッグ(する)」と呼び、バグ(BUG)には「虫」という意味もあり、デバッグ作業のことを「バグ潰し」や「バグ取り」という表現をすることもあります。
◆実際のサンプルを使って、実行時エラー発生の流れを解説します。
(仕様)2行目~5行目までの金額を求めて下さい。(単価×数量)
(結果)3行目が終わったが、4行目ができなかった。

(実行時エラーの画面)

[デバッグ(D)]を押下すると、発生した箇所が黄色くマーキングされますので、場所はすぐに特定できます。
(注意)但し、2つの条件があります。
【その1】プログラムソース(VBAProject)にPassWordロックをかけず開示すること
※ExcelVBAで実行時エラー原因の早期究明に、[Lock]するメリットは無し
【その2】UserForm内のソース記述では、当該箇所が黄色くならないケースあり
※Formモジュール内はフォーム要素の収集のみ。処理は標準Moduleが鉄則
以下が、プログラム記述になります。

発生箇所をよく見てください。マウスカーソルを変数の上に置くと、中身が表示されます。
4列目の値がSpaceであることが分かります。原因はこのセルの値が演算不可能な値だったため、と判断できます。つまり、[数量]が不正だったことが原因となったことが分かりました。
◆プログラムソースを解説します。
不正値ということは分かりました。Spaceということも分かりました。
これが原因究明のための「デバッグ作業」の基本となります。
‘※※※※※※※※※※※※※※※※※※※※
Sub M_金額を算出()
‘※※※※※※※※※※※※※※※※※※※※
Dim S_読行 As Long
For S_読行 = 2 To 5
Debug.Print “” & vbCrLf & _
“S_読行: ” & S_読行 & vbCrLf & _
“単価:[” & Cells(S_読行, 3) & “]” & vbCrLf & _
“数量:[” & Cells(S_読行, 4) & “]” & vbCrLf & _
“金額:[” & Cells(S_読行, 5) & “]”
'[金額]=[単価]*[数量]
Cells(S_読行, 5) = Cells(S_読行, 3) * Cells(S_読行, 4)
Next S_読行
MsgBox “終わりました!”
End Sub
Debug.Print とは、プログラムの流れを1行づつ追跡する際に、要所にいれることで、
処理を停止し、変数の中身を画面に表示することができます。
この例では、4つの要素をチェックしています。
vbCrLf は、改行コードのことで、見やすく折り返し表示したいときに使います。
今回のサンプルでは、分かりやすいエラーだったため、原因究明が容易でした。
エラーの種類に実は文法エラーや論理エラーなどがあり、「実行時エラー」は落ちてしまうかわりに、場所が特定できるため、一番解決しやすいエラーのひとつです。
今回のテーマは、「原因究明のために行うデバッグ作業」について、解説を行いました。
本記事が、Excel実務の効率化において、ご参考お役立てになれば幸いです。
Excel業務改善事例ショート動画
文章だけでは伝わりにくい改善事例を、ショート動画でご覧いただけます。
◆よくある質問 ◆Excel業務改善の実例 ◆VBA・マクロ活用事例
Excelエラー解決サービス
1件30,000円、解決しなければ料金不要
- 1件あたり3時間以内で原因を調べて対応
- リモート接続での対応も可能
- 根本的な作り直しは見積もりでご提案
目の前のエラーだけを早く直したい場合は、Excelエラー解決サービス(1件30,000円・税別)をご利用ください。対応時間は1件3時間以内で、解決できなかった場合は料金不要です。改修や作り直しが必要な場合は、相見積もりも歓迎です。
\Excel専門特化 × 低価格 × スピード対応/
全国対応・お見積もり無料
