Excelマクロ-コードのデバッグ
マクロがVBAコードとしてExcelに保存されることを学びました。また、VBAエディターでマクロを作成するコードを直接記述できることも学びました。ただし、他のコードの場合と同様に、マクロコードでも欠陥があり、マクロが期待どおりに実行されない場合があります。
これには、コードを調べて欠陥を見つけて修正する必要があります。ソフトウェア開発でこのアクティビティに使用される用語は、デバッグです。
VBAデバッグ
VBAエディターを使用すると、コードの実行を一時停止して、必要なデバッグタスクを実行できます。以下は、実行できるデバッグタスクの一部です。
- コードのステップスルー
- ブレークポイントの使用
- コードでのバックアップまたは前進
- コードの各行をステップスルーしない
- コードをステップスルーしながら何かをクエリする
- 実行を停止する
これらは、VBAのデバッグ環境で実行する可能性のあるタスクのほんの一部です。
コードのステップスルー
デバッグのために最初に行う必要があるのは、コードの実行中にコードをステップ実行することです。コードのどの部分がおそらく欠陥を引き起こしているのかがわかっている場合は、コードのその行にジャンプできます。それ以外の場合は、コードを1行ずつ実行し、コードをバックアップまたは前に進めることができます。
ワークブックの[マクロ]ダイアログボックスまたはVBAエディター自体からコードにステップインできます。
Stepping into the code from the workbook
ワークブックからコードにステップインするには、次のようにします。
- リボンの[表示]タブをクリックします。
- [マクロ]をクリックします。
- ドロップダウンリストから[マクロの表示]を選択します。
[マクロ]ダイアログボックスが表示されます。
- マクロ名をクリックします。
- [ステップイン]ボタンをクリックします。

VBAエディターが開き、マクロコードがコードウィンドウに表示されます。マクロコードの最初の行は黄色で強調表示されます。

Stepping into the code from the VBA editor
VBAエディターからコードにステップインするには、次のようにします。
- リボンの[開発者]タブをクリックします。
- VisualBasicをクリックします。VBAエディターが開きます。
- マクロコードを含むモジュールをクリックします。
マクロコードがコードウィンドウに表示されます。

リボンの[デバッグ]タブをクリックします。
選択する Step into ドロップダウンリストから。

マクロコードの最初の行が強調表示されます。コードはデバッグモードであり、[デバッグ]ドロップダウンリストのオプションがアクティブになります。

コードのバックアップまたは前進
[ステップオーバー]または[ステップアウト]を選択すると、コード内を前後に移動できます。
コードの各行をステップスルーしない
Run to Cursorを選択することにより、議論する必要のあるコードの潜在的な部分を特定した場合、各ラインコードをステップスルーすることを回避できます。
ブレークポイントの使用
または、コードの特定の行にブレークポイントを設定してコードを実行し、各ブレークポイントで結果を確認することもできます。必要に応じて、ブレークポイントを切り替えて、すべてのブレークポイントをクリアできます。
ウォッチの使用
デバッグ中にウォッチを追加して、式を評価し、変数が特定の値に達したときに実行を停止できます。これは、ウォッチ式を構成することを意味します。ウォッチ式は、trueになるまで監視され、その後マクロが停止して、ブレークモードのままになります。VBAは、探しているものを実現するために、選択できるいくつかの時計タイプを提供します。
実行を停止する
デバッグ中はいつでも、何が問題になっているのかについての手がかりを見つけた場合は、実行を停止してさらに解読することができます。
経験豊富な開発者であれば、デバッグ用語はよく知っており、VBAエディターのデバッグオプションによって作業が簡単になります。それ以外の場合でも、VBAを学習してコードを理解していれば、このスキルを習得するのにそれほど時間はかかりません。