Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Debug.PrintとMsgBoxのイントロダクション | VBAとExcelオブジェクトモデルの紹介
ビジネス自動化のためのExcel VBA

Debug.PrintとMsgBoxのイントロダクション

メニューを表示するにはスワイプしてください

どちらもコード実行中に値を確認できるが、対象となる利用者が異なり、混同しやすい点に注意が必要。

Debug.Print

Debug.Print [outputlist]
  • outputlist — 出力する1つ以上の式。; または & で連結可能。
  • 括弧や戻り値なし — 関数ではなくステートメント。
  • 常にイミディエイトウィンドウに出力。
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
注意

MsgBox の引数に括弧を付けるのは、戻り値を取得する場合のみ。単なるステートメント(代入なし)として使う場合、括弧は不要です。MsgBox("Done.") でも動作しますが、2つ目の引数を代入なしで追加すると MsgBox ("Continue?", vbYesNo) のように構文エラーになります。ステートメント形式では括弧を省略し、result = MsgBox(...) のように書く場合のみ括弧を付けます。

それぞれの用途

簡単な判断基準:そのメッセージが実際に誰のためのものかを考える。「自分自身(コードを書いたりテストしたりしているとき)」が答えなら、Debug.Print を使うのが適切 — 一時的に残しても問題なく、後で削除しても影響がない。なぜなら、完成したワークブックを使う人には表示されないからである。「このマクロを今実行している人(表示が必要な人)」が答えなら、MsgBox を使うのが適切 — 確認プロンプトや「完了」メッセージなどはこのカテゴリに入り、デバッグ補助ではなく完成した体験の一部となる。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  5

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

Debug.PrintとMsgBoxのイントロダクション

どちらもコード実行中に値を確認できるが、対象となる利用者が異なり、混同しやすい点に注意が必要。

Debug.Print

Debug.Print [outputlist]
  • outputlist — 出力する1つ以上の式。; または & で連結可能。
  • 括弧や戻り値なし — 関数ではなくステートメント。
  • 常にイミディエイトウィンドウに出力。
Debug.Print total            ' one value
Debug.Print "Total: "; total ' semicolon — adds a space between items
Debug.Print "Total: " & total' & — concatenates with no extra space

MsgBox

MsgBox(prompt, [buttons], [title], [helpfile], [context])
MsgBox "Done."                                        ' statement form — no parentheses needed
result = MsgBox("Continue?", vbYesNo, "Confirm")       ' function form — parentheses required
Note
注意

MsgBox の引数に括弧を付けるのは、戻り値を取得する場合のみ。単なるステートメント(代入なし)として使う場合、括弧は不要です。MsgBox("Done.") でも動作しますが、2つ目の引数を代入なしで追加すると MsgBox ("Continue?", vbYesNo) のように構文エラーになります。ステートメント形式では括弧を省略し、result = MsgBox(...) のように書く場合のみ括弧を付けます。

それぞれの用途

簡単な判断基準:そのメッセージが実際に誰のためのものかを考える。「自分自身(コードを書いたりテストしたりしているとき)」が答えなら、Debug.Print を使うのが適切 — 一時的に残しても問題なく、後で削除しても影響がない。なぜなら、完成したワークブックを使う人には表示されないからである。「このマクロを今実行している人(表示が必要な人)」が答えなら、MsgBox を使うのが適切 — 確認プロンプトや「完了」メッセージなどはこのカテゴリに入り、デバッグ補助ではなく完成した体験の一部となる。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  5
some-alt