最近、Excel VBAを使ったプロジェクトに取り組んでいます。
ExcelのWorkbook_Open()イベント処理を書いた際、デバッグが必要になることがあります。しかし、ファイルを閉じるとブレークポイントが解除され、デバッグが難しいことがあります。
本記事では、Workbook_Open()イベントのデバッグ方法について詳しく説明します。
Stopステートメントを使ったデバッグ
VBAでWorkbook_Open()イベントをデバッグする方法の一つは、Stopステートメントを使用することです。以下のコード例をご覧ください。
Private Sub Workbook_Open()
Stop
' 以下デバッグしたい処理
…
End Sub
このようにStopステートメントを挿入すると、指定した位置で実行が中断され、Visual Basic Editor(VBE)が開きます。ここからデバッグを続行できます。
Debug.Assert メソッドを活用
もう一つのデバッグ方法は、Debug.Assert メソッドを利用することです。以下のコード例をご覧ください。
Private Sub Workbook_Open()
Debug.Assert False
' 以下デバッグしたい処理
…
End Sub
Debug.AssertメソッドにFalseを指定することで、実行が中断されます。その後、VBEが開かれ、デバッグが可能になります。
注意点
デバッグを行う際、以下の点に注意してください。
- Stopステートメントを使用した方法、Debug.Assert メソッドを使用した方法、両方とも「プロジェクトのロック」をしていると実行が中断されないのでプロジェクトのロックは解除しておきましょう。
- リリース時には中断の必要が無いのでStop、Debug.Assertはコメントアウトするか削除するようにしましょう。
最後に
Excel VBAでWorkbook_Open()イベントをデバッグする方法について紹介しました。
VBEがファイルを閉じるとブレークポイントが解除される不便さもありますが、StopステートメントやDebug.Assertメソッドを活用することで、デバッグが可能になります。
プロジェクトのロックにも注意し、効果的なデバッグを行いましょう。