VBA初心者はDebug.Printを活用しよう

初心者がつまづくポイントはたくさんありますが、ありがちなものだと、自分の作った変数に今どんな値が入っているか分からなくなってしまうという事があります。
そんな時にDebug.Printを知っていると作業がとてもスムーズになるので是非覚えておきましょう。

変数になんの値が入っているのか分からなくなったよぅ。

それぞれの変数の値や、変数の変化をきちんと把握しながら作業をするためにもDebug.Printは覚えておきたいステートメント(文のこと)だぞ。

Debug .Printとは

Excelのイミディエイトウィンドウ内に、変数に格納されている値を表示してくれるとっても便利な機能です。


イミディエイトウィンドウとは?
変数や関数の結果を教えてくれる便利なウィンドウの事です。

使い方

例えば、以下のようなコードがあったとします。
いくつかの変数がありますが、正しく値が格納されたのか確認したい時があります。

'今日の日付を代入できたかな?
x = Date

'今iは何番めだろう?
for i = 1 To 3
    何かの処理・・・ 
Next

'yには昨日の日付が入っているかな?
y = DateAdd("d", -1, Date)

’zはyの値を西暦下2桁と月の表示になっているかな?
z = Format(y,"yymm")

'booknameには、このブックの名前が入っているかな?
Set bookname = ThisWorkbook

そんな時は 「Debug.Print 変数名」 と入力するとコード実行時にイミディエイトウィンドウ内に値を表示してくれます。以下の図をご覧ください。

上から見ていきましょう。

まずはxですが、2021/12/10と入っています。今日の日付(この記事書いた日)が入っていますね。

続いてiです。
forの中に書いたDebug.Printはどうでしょうか。1、2、3となっています。
forを1〜3まで回したのでこれも正しく表示されていますね。
これが何十行、何百行もある時に、目的の行の処理になったら動きをチェックしたいとかそういう場面で使えそうですね。

yとzは昨日の日付と、昨日の日付をyymm(西暦下2桁と月2桁表示)にしたものです。
2021年12月ですから、2112であっていますね。

最後はbookname変数です。
こちらはブック名を格納したので拡張子を含めたブック名が表示されています。
複数のブックにまたがって作業をしている時に、どの変数にどのブックが入っているのか分からない・・と言うことはあまりないかもしれませんが、確認ができます。
なお、booknameのみ Debug.Print bookname.name となっている点に注意してください。
オブジェクトの値を確認するときは.nameと付けないといけません。
最初のうちは結構忘れがちで、なんで出ないんだろうーと混乱します。

まとめ

私も初心者の頃(今もですが)に変数の中身どうなってるんだろうと悩んでいたのですが、これを覚えてからは確認しながらコードを作れるようになったのでミスが減って作業時間も大幅に短縮できるようになりました。是非覚えてくださいね!

これで変数の中身が分かって安心だね!

日付の表記とかFormat関数で形式を変えたときに思ったのと違うのが入っていたとか、エラーが出た時の確認が便利になるぞ。

特に最初のうちはF8キーで1行ずつコードを実行し、併せてDebug.Printで値を確認するようにするともっとわかりやすくなると思います。

読んでいただきありがとうございました。

タイトルとURLをコピーしました