【VBA】Debug.Print で出力を改行させずに、同じ行に続けて表示する方法

目次

はじめに

VBAの Debug.Print は、実行するたびにイミディエ-トウィンドウで自動的に改行されるのがデフォルトの動作です。しかし、ループ処理などで、「複数のデータを、改行せずに一行にまとめて表示したい」という場面もよくあります。

Debug.Print ステートメントの最後に、特定の記号(セミコロン ; またはカンマ ,)を付け加えることで、この改行の動作を制御し、出力を同じ行に続けることができます。

この記事では、Debug.Print での改行を抑制し、出力のレイアウトを調整するためのテクニックを解説します。


1. セミコロン (;) を使って、続けて出力する

Debug.Print の最後にセミコロン (;) を付けると、改行が抑制され、次の Debug.Print の出力が、現在の出力の直後から始まります。

サンプルコード

' セミコロン(;)を使って、出力を同じ行に続ける
Sub PrintOnSameLineWithSemicolon()
    Dim i As Long
    
    Debug.Print "処理結果: "; ' ← セミコロンで改行を抑制
    
    For i = 1 To 5
        Debug.Print i & "..."; ' ← ループの各回で改行を抑制
    Next i
    
    Debug.Print "完了" ' ← 最後はセミコロンなしで改行
End Sub

実行結果(イミディエイトウィンドウ)

処理結果: 1...2...3...4...5...完了

解説: Debug.Print の最後に ; を付けることで、カーソルが次の行に移らず、同じ行に留まり続けます。最後の Debug.Print "完了" には ; が付いていないため、ここで初めて改行されます。


2. カンマ (,) を使って、タブ区切りで出力する

Debug.Print で出力する項目をカンマ (,) で区切ると、タブのように一定の間隔(プリントゾーン)を空けて、同じ行に出力されます。

サンプルコード

' カンマ(,)を使って、タブ区切りで出力する
Sub PrintOnSameLineWithComma()
    Dim i As Long
    
    ' ヘッダーを出力
    Debug.Print "ID", "商品名", "価格"
    
    ' データを出力
    Debug.Print 1, "商品A", 1200
    Debug.Print 2, "長い名前の商品B", 850
End Sub

実行結果

ID            商品名          価格
1             商品A           1200
2             長い名前の商品B   850

解説: カンマを使うと、次のプリントゾーン(おおよそ14文字ごとの区切り)の先頭にカーソルが移動します。これにより、各項目の開始位置が揃い、表のような形式で見やすく出力できます。


3. Debug.Print だけで改行する

引数を何も指定せずに Debug.Print を実行すると、**空白行(改行)**を挿入できます。出力結果のセクションを分ける際などに便利です。

サンプルコード

Sub PrintBlankLine()
    Debug.Print "レポートセクション1"
    Debug.Print ' 空白行を挿入
    Debug.Print "レポートセクション2"
End Sub

実行結果

レポートセクション1

レポートセクション2

まとめ

今回は、Debug.Print の出力を整形するための、改行制御のテクニックを解説しました。

  • 最後に何も付けない: 通常通り、出力後に改行する。
  • 最後にセミコロン (;): 改行せず、カーソルを直後に留める。
  • 項目をカンマ (,) で区切る: 改行せず、次のプリントゾーンにカーソルを移動させる。
  • 引数なしの Debug.Print: 空白行を挿入する。

これらの挙動を使い分けることで、イミディエイトウィンドウのデバッグ出力を、より構造化された、読みやすいものにすることができます。

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

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次