【VBA】サルでも分かるDebug.Printの使い方|サンプルコード多数

この記事では、Excel VBA(Visual Basic for Applications)で頻繁に使用されるDebug.Printメソッドの使い方について、基本から応用まで解説します。Debug.Printは、プログラムのデバッグや変数の値を確認する際に非常に便利なツールです。

目次

Debug.Printの基本的な使い方

何ができるのか?

Debug.Printは、VBAのDebugオブジェクトに属するメソッドです。このメソッドを使用すると、プロシージャ(マクロ)の実行中に、イミディエイトウィンドウに任意の値や文字列を出力することができます。これにより、プログラムの途中経過を確認したり、変数の値をチェックしたりすることが可能です。

イミディエイトウィンドウの表示方法
1.メニューバーの「表示」をクリックします。
2.ドロップダウンから「イミディエイトウィンドウ」またはCtrl + Gを選択して表示します。

基本的なサンプルコードとその説明

Sub BasicDebugPrint()
    ' 数値を出力
    Debug.Print 123
    
    ' 文字列を出力
    Debug.Print "Hello, World!"
    
    ' 現在の日時を出力
    Debug.Print Now()
    
    ' 最初のワークシートの名前を出力
    Debug.Print Worksheets(1).Name
End Sub

このサンプルコードでは、以下の4つの処理を行っています。

  1. Debug.Print 123:数値123をイミディエイトウィンドウに出力します。
  2. Debug.Print "Hello, World!":文字列"Hello, World!"を出力します。
  3. Debug.Print Now():現在の日時を出力します。
  4. Debug.Print Worksheets(1).Name:最初のワークシートの名前を出力します。

複数の出力を一行にまとめる方法

セミコロンを使用する

Debug.Printの後にセミコロン(;)を付けると、次の出力が新しい行に移らず、同じ行に続けて出力されます。これは、複数の値を一行で見やすく表示したい場合に便利です。

サンプルコード1:セミコロンを使った一行出力

Sub DebugPrintWithSemicolon()
    Dim i As Integer
    ' 1から10までの数値を一行に出力
    For i = 1 To 10
        Debug.Print i;
    Next i
    ' 最後に改行
    Debug.Print
End Sub

このサンプルコードでは、Forループを使用して1から10までの数値を一行に出力しています。Debug.Print i;の部分で、セミコロンを使って次の出力が新しい行にならないようにしています。

カンマを使用する

Debug.Printの後にカンマ(,)を付けると、次の出力ポイントにタブが挿入されます。これは、複数の値を整列して出力したい場合に便利です。

サンプルコード2:カンマを使ったタブ挿入

Sub DebugPrintWithComma()
    Dim i As Integer
    ' 1から10までの数値をタブで区切って出力
    For i = 1 To 10
        Debug.Print i,
    Next i
    ' 最後に改行
    Debug.Print
End Sub

このサンプルコードでは、Forループを使って1から10までの数値をタブで区切って一行に出力しています。Debug.Print i,の部分で、カンマを使って次の出力ポイントにタブを挿入しています。

Debug.Printで条件に応じた出力をする方法

If文を使用する

Debug.PrintIf文を組み合わせることで、特定の条件が満たされた場合にだけ出力を行うことができます。

サンプルコード3:If文を使った条件出力

Sub DebugPrintWithIf()
    Dim x As Integer
    x = 10
    If x > 5 Then
        Debug.Print "xは5より大きいです。"
    End If
End Sub

このサンプルコードでは、変数xが5より大きい場合に、”xは5より大きいです。”と出力します。

Debug.Printで配列の内容を出力する方法

For Each文を使用する

配列の各要素をDebug.Printで出力する場合、For Each文が便利です。

サンプルコード4:For Each文を使った配列の出力

Sub DebugPrintArray()
    Dim arr As Variant
    Dim element As Variant
    arr = Array("Apple", "Banana", "Cherry")
    
    For Each element In arr
        Debug.Print element
    Next element
End Sub

このサンプルコードでは、文字列の配列arrが定義され、その各要素(”Apple”, “Banana”, “Cherry”)がDebug.Printで出力されます。

Debug.Printでオブジェクトのプロパティを出力する方法

オブジェクトのプロパティを指定する

VBAで扱うオブジェクト(例:Worksheet、Rangeなど)のプロパティもDebug.Printで出力できます。

サンプルコード5:オブジェクトのプロパティ出力

Sub DebugPrintObjectProperty()
    Dim ws As Worksheet
    Set ws = Worksheets(1)
    
    Debug.Print ws.Name
    Debug.Print ws.Cells(1, 1).Value
End Sub

このサンプルコードでは、最初のワークシート(Worksheets(1))をwsという変数にセットし、その名前(Nameプロパティ)とA1セルの値(Cells(1, 1).Value)を出力しています。

FAQ

Q:Debug.Printは何に使いますか?

A:Debug.PrintはVBA(Visual Basic for Applications)でプログラムのデバッグや変数の値を確認するために使用されます。このメソッドを使うと、イミディエイトウィンドウに任意の値や文字列を出力できます。

Q:Debug.Printの基本的な書き方は?

A:基本的な書き方は Debug.Print 出力したい値 です。例えば、Debug.Print "Hello, World!"と書くと、”Hello, World!”という文字列がイミディエイトウィンドウに出力されます。

Q:複数の値を一行に出力する方法は?

A:Debug.Printの後にセミコロン(;)を付けると、次の出力が新しい行に移らず、同じ行に続けて出力されます。例:Debug.Print "apple"; "banana"

Q:Debug.Printで出力した値はどこで確認できますか?

A:出力された値はVBAエディタ内の「イミディエイトウィンドウ」で確認できます。このウィンドウは、VBAエディタの「表示」メニューから選択するか、Ctrl + Gで表示できます。

Q:Debug.Printは数値も出力できますか?

A:はい、数値も出力できます。例:Debug.Print 123 と書くと、123という数値がイミディエイトウィンドウに出力されます。

Q:Debug.Printで配列の要素を出力する方法は?

A:For Each文を使って配列の各要素を出力できます。例:For Each element In arr: Debug.Print element: Next element

Q:Debug.Printでエラーメッセージを出力することはできますか?

A:はい、Err.Descriptionなどを使ってエラーメッセージを出力することができます。例:Debug.Print "エラー:" & Err.Description

関連動画

まとめ

この記事では、Debug.Printの基本的な使い方から応用的な使い方、さらには設定項目についても詳しく解説しました。この知識を活用することで、VBAプログラミングがよりスムーズに、効率よく行えるでしょう。ぜひ、日々の作業でこのテクニックを活用してください。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次