【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の使い方を覚える→慣れてきたらステップ実行を覚える」の流れがおすすめなので、ぜひ使ってみてくださいね!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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