01-VBA

Excel VBA の「デバッグ」(Part.1)「自動構文チェック機能」「VBAProjectのコンパイル」「プロシージャ実行時エラー」| 現役エンジニア&プログラミングスクール講師

目標

VBEで準備されているデバッグ機能を理解して利用できる

デバッグの概要とVBEのデバッグ機能

デバッグとは

デバッグとはプログラムの「バグ」を取り除くことです。バグとはプログラムが正しく動かない原因のことです。つまりデバッグはプログラムが動かない原因を取り除く作業のことと言えます。

VBEのデバッグ機能

VBEには様々なデバッグ機能が準備されています。

  1. 自動構文チェック機能(この記事で扱います)
  2. VBAProjectのコンパイル(この記事で扱います)
  3. プロシージャ実行時エラー(この記事で扱います)
  4. ステップモード(「デバッグ」Part.2の記事で扱います)
  5. ブレイクポイント(「デバッグ」Part.2の記事で扱います)
  6. イミディエイトウィンドウ(「デバッグ」Part.3の記事で扱います)
  7. ウォッチウインドウ(「デバッグ」Part.3の記事で扱います)

自動構文チェック機能

「自動構文チェック機能」はVBE内でプログラム記述中に構文に誤りがないかチェックしてくれる機能です。プログラムを記述中の行からカーソルを移動させたときに「自動構文チェック機能」が働きます。

「自動構文チェック機能」自動で確認してくれます。

自動構文チェック機能の動きの確認

「自動構文チェック機能」については以上です。

VBAProjectのコンパイル

「自動構文チェック機能」では取り切れないバグも存在します。「自動構文チェック機能」はプログラム一行ずつを対象にしてチェックを行いますが、制御構文など複数行にまたがってひとつの構文となっているような内容ではプログラム全体として実行が可能かを確認する必要があります。このような場面で「VBAProjectのコンパイル」を行います。

基本的にはプロシージャが完成したら「VBAProjectのコンパイル」を行います。

「VBAProjectのコンパイル」手動で確認する必要があります。

VBAProjectのコンパイルの操作と動きの確認

プロシージャ完成時にはVBAProjectのコンパイルを行う癖を付けておくのが良いです。

「VBAProjectのコンパイル」については以上です。

プロシージャ実行時エラー

「自動構文チェック機能」だけでなく「VBAProjectのコンパイル」でも確認できないエラーも存在します。例えばオブジェクトの取得時に取得したいオブジェクトが存在しないなどプロシージャが動いて初めて分かるエラーがあります。このようにプログラムの内容は間違っていないけど、動かして初めて気づくといったときは「プロシージャ実行時エラー」が働いてくれます。

「プロシージャ実行時エラー」はプロシージャを実行すると自動で確認してくれます。

「自動構文チェック機能」「VBAProjectのコンパイル」の両方でエラーは確認できません。次にこのプロシージャを動かしてみると下のキャプチャと同様のエラーが現れます。

「デバッグ」を選択するとエラー個所の行が黄色くハイライトされます。

実行時エラーの番号からもエラーの種類が推測できます。エラー番号については「エラー処理」の記事で取り上げていきます。

「プロシージャ実行時エラー」については以上です。

今回は以上となります。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

クラスの利用方法|Excel VBA (Part.1) | 現役エンジニア&プログラミングスクール講師

2023年2月17日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の 配列(静的配列)| 現役エンジニア&プログラミングスクール講師

2022年12月24日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

初めてのExcelVBA:プロシージャの記述と実行 | 現役エンジニア&プログラミングスクール講師

2022年8月7日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「Worksheetsプロパティ」と「Sheetsプロパティ」の違いと「Excelの持つシートの種類」| 現役エンジニア&プログラミングスクール講師

2022年12月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

演算子|Excel VBA (Part.6)【その他の演算子】Like演算子 | 現役エンジニア&プログラミングスクール講師

2022年10月31日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.6)【For Next】ネスト編(前編)| 現役エンジニア&プログラミングスクール講師

2022年11月25日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site