【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

エクセルVBAで業務を快適にするテクニックについて、シリーズでお伝えしています。

前回はこちらの記事でした。

【エクセルVBA】初心者にオススメのVBEの7つのコード設定とその機能について
エクセルVBAの業務を快適にするためのVBEの使い方やテクニックについてお伝えしています。今回は、設定して使いこなすだけで劇的に快適になる初心者にオススメのVBEのオプションコード設定についてです。

VBEの「コードの設定」についてと、そのオススメの設定についてお伝えしましたね。

さて、今回お題とするのはイミディエイトウィンドウです。

使ってます?

ということで、今回から何回かにわけて、初心者でも知っておきたいイミディエイトウィンドウの便利な活用法をお伝えします。

今回ですが、そのイミディエイトウィンドウを使う方法の超基本として、初心者のうちからぜひとも知っておいて欲しいDebug.Printの使い方についてお伝えします。

一行に複数の出力をする方法も丁寧に解説していますよ。

本記事は以下のYouTube動画とも連動していますので、合わせてご覧くださいませ。

では、行ってみましょう!

スポンサーリンク

Debug.Printでイミディエイトウィンドウに出力する

まず、基本中の基本です。

DebugオブジェクトのPrintメソッドを使うことで、プロシージャの実行中に、変数やプロパティなどの値をイミディエイトウィンドウに出力することができます。

Debug.Print 出力する式

出力する式には、数値や文字列、日付などの直値、変数、プロパティ、計算式、関数などを指定することができます。

以下サンプルプログラムを実行してみて下さい。

Sub printImmediate()

Debug.Print 123
Debug.Print "Hello World"
Debug.Print #3/30/2017#
Debug.Print ThisWorkbook.Name

Dim number As Long
number = 5
Debug.Print number * number

Debug.Print InputBox("数字の100を入力してください")

End Sub

こちらは数値、文字列、日付、Nameプロパティ、計算式の結果、関数の返り値をそれぞれイミディエイトウィンドウに出力するというものですね。

実行すると以下のようにイミディエイトウィンドウに出力がされるはずです。

エクセルVBAで様々な式をDebug.Printする

プロシージャの途中段階で、動作の確認をしたいときに、確認用の変数やプロパティなどの式を、Debug.Printをするのです。

これはもう絶対マスターの超基本ですよね。

Debug.Printで一行に複数の式を出力する方法

さて、そのDebug.Printですが、たくさん出力すると都度改行してしまうので、スクロールをしないと確認ができません。

例えば、1から100までイミディエイトウィンドウに出力するプログラムを作って実行すると

エクセルVBAでたくさんDebug.Printする

こんな風に、たっぷりの行をふんだんに使って出力されてしまいます。確認するのが大変ですよね。

そのために、Debug.Printで一行に複数の式を出力をする方法がいくつか用意されています。

セミコロンで同じ行に連続してDebug.Printする

まず、Debug.Printの出力する式の後にセミコロン「;」を付与してみましょう。

Debug.Print 出力する式;

セミコロンはをつけてDebug.Printで出力すると、次の出力ポイントが改行されません。

例えば、このようなプログラムを作ります。

Sub countUp()

Dim i As Long, j As Long

For i = 1 To 100
    Debug.Print i;
    If i Mod 10 = 0 Then Debug.Print
Next i

End Sub

iをDebug.Printした際には次の出力ポイントを改行せず、10の倍数のときだけ改行をするようにします。

出力した結果はこちら。

エクセルVBAでセミコロンを使ってDebug.Printする

ほら、見やすくなりますでしょ?

ちなみに、セミコロンの応用として

Sub printHello()

Debug.Print "Hello"; "World"; "!";

End Sub

という使い方もあります。何回か実行をしますと

エクセルVBAでセミコロンを使って文字列を連結しながらDebug.Print

このように改行されずに連続して出力されます。

文字列の連結にはアンパサンド「&」が使われますが、Debug.Printのときは好みでセミコロンを使うという手もあるというわけです。

カンマでタブを入れてDebug.Printする

もう一つの例として、Debug.Printの出力する式の後にカンマ「,」を付与する方法があります。

Debug.Print 出力する式,

カンマを付与すると、次の出力ポイントにタブが入ります。

先ほどのプロシージャのセミコロンをカンマに変えてみましょう。

Sub countUp()

Dim i As Long, j As Long

For i = 1 To 100
    Debug.Print i,
    If i Mod 10 = 0 Then Debug.Print
Next i

End Sub

実行すると、以下のように出力されます。

エクセルVBAでカンマを使ってDebug.Printする

等間隔ではないので若干気持ち悪いですが、タブが入っていると見やすいときも多いです。

例えば

Debug.Print Sheet1.Cells(i, 1).Address, value

などという使い方をすれば、出力先のアドレスとその値が一行にかつタブ空きで出力されるので、イミディエイトウィンドウでの視認での検証がしやすくなります。

まとめ

エクセルVBAで初心者から絶対に知っておくべきDebug.Printの使い方をお伝えしました。

Debug.Printは基本の使い方だけでなく、セミコロンやカンマなども組み合わせて利用することで、プログラムのテストやデバッグの捗り方が全く変わってきます。

ぜひ、ご活用下さいね。

次回は、イミディエイトウィンドウをコマンド入力ウィンドウとして利用するテクニックをお伝えします。

【エクセルVBA】イミディエイトウィンドウはコマンド入力画面として使うと超便利
エクセルVBAで快適にプログラミングするためのVBEのテクニックについてお伝えしています。今回はエクセルVBAでイミディエイトウィンドウをコマンド入力画面として使う方法とそのテクニックについてです。

どうぞお楽しみに!

連載目次:エクセルVBAの作業効率&快適さを劇的に上げるVBEの使い方

エクセルVBAの作業では、プログラムとかその書き方に目が行きがちですが、その道具であるVBEの使い方ひとつで、コーディングやデバッグの作業効率が劇的に変わりますよ。そんなテクニックやノウハウをお伝えします。
  1. 【エクセルVBA】VBEの背景色や文字色を変更して画面を見やすくしよう
  2. 【エクセルVBA】最初っから知っておきたいVBEのショートカットキーまとめ
  3. 【エクセルVBA】VBEにコメントブロックのショートカットキーを設定する方法
  4. 【エクセルVBA】初心者にとっても便利なVBEの自動メンバー表示とその使い方
  5. 【エクセルVBA】初心者にオススメのVBEの7つのコード設定とその機能について
  6. 【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方
  7. 【エクセルVBA】イミディエイトウィンドウはコマンド入力画面として使うと超便利

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