【ExcelVBA入門】VBAでデバッグするための方法とは?

皆さんは、VBAでデバッグする方法を知っていますか?

なんとなく聞いたことがあるけど詳しい使い方はよくわからない・・・という方も多いのではないでしょうか?

そこで今回は、

・デバッグとは

といった基礎的なことから、

・Debug.Printを使ったシンプルなデバッグ方法

・ブレークポイントを使ったステップ実行方法

・合わせて覚えると便利なイミディエイトウィンドウの使い方

といった応用的な方法まで、徹底的に解説します!

デバッグとは

最初に、デバッグについて簡単に説明します。

処理のバグ・エラーなどを修正して、想定通りコードが動くようにしていく作業のことです。

デバッグ方法は大きく分けて2パターンあります。

  • 値をイミディエイトウィンドウに出力して動作を確認
  • 1行1行処理を動かして動作を確認

どちらも覚えておくと便利なのですが、わかりやすい方から説明してい行きますね。

デバッグ方法1:イミディエイトウィンドウに値を出力

最初は、イミディエイトウィンドウに値を出力して確認する方法です。

この方法が一番シンプル1行コードを書くだけなので、最初に覚えるのがおすすめです!

でイミディエイトウィンドウに値を書き出すことができます。

値は文字列、数値、変数などが使えます。

たとえば、次のように変数に入れたメッセージを出力することもできます。

サンプルコード:

実行結果:

変数の値をささっと確認することができるので、計算に使う変数はDebug.Printで確認しつつコーディングするのがおすすめです。

デバッグ方法2:ブレークポイントをはってステップ実行

次に、1行1行処理を確認しつつデバッグしていく方法について解説します!

ブレークポイントで処理を止めて1行ずつステップ実行することで、処理の動き、変数の値などを確認しつつ処理を修正することができます。

この説明だけではよくわからないと思うので、ブレークポイント、ステップ実行についてそれぞれ詳しく解説します。

ブレークポイントの貼り方

コードウィンドウ内の処理を止めたい行の一番左をクリックすると、ブレークポイントを付けることができます。

この処理だと、「Debug.Print strMessage」の処理で、イミディエイトウィンドウに値を出力する前に処理を止めることができます。

ステップ実行の使い方

ただ、1行ずつ処理を確認したいときにすべての行にブレークポイントを貼るのは大変ですよね。

そんな時に便利なのが、ステップ実行です。

ブレークポイントを貼った後、「デバッグタブ」→「ステップインまたはステップオーバー」を選択することで1行処理を進めることができます。

ステップインステップオーバーは、Sub・Functionを呼び出す処理の動きが違います。

・ステップイン  :Sub・Function処理の中の1行目に移動
・ステップオーバー:Sub・Function処理の中のにはいかず、次の1行目に移動

最初はどちらか1つだけでもいいので、覚えて使ってみると良いでしょう。

補足:合わせて覚えると便利な機能とは

デバッグは値の確認、処理の動きの確認をしていく作業ですが、値の確認だけでいうとイミディエイトウィンドウを使いこなすのがおすすめです!

今回はDebug.Printで出力する場所としてイミディエイトウィンドウを紹介しましたが、ブレークポイントで止めた後イミディエイトウィンドウを使って値を確認する方法や、既存の関数の動きを確認する方法など、覚えておくと便利な使い方が多いです。

以下記事で紹介しているので、気になる方はぜひ見てみてくださいね!

【ExcelVBA入門】デバッグに使うイミディエイトウィンドウとは?
更新日 : 2019年4月15日

まとめ

今回は、VBAでデバッグする方法について解説しました。

デバッグを覚えると、正確に速くVBAを書くことができるようになります。

「Debug.Printの使い方を覚える→慣れてきたらステップ実行を覚える」の流れがおすすめなので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説