EXCELのVBAにあるメッセージボックス(Msgbox)の機能は、ユーザーにお知らせをしたり、注意喚起をしたりするのに使えます。
これらの使用方法では、主に文字列を表示することになりますが、実は変数も表示することができるんです。
変数を表示することで、ユーザーへお知らせする内容がぐんと広がりますね。
その他、デバグにも応用することができますよ。
本記事では、「VBAでMsgboxに変数を表示する方法」について解説します。
表示やタイトル変更、改行の解説はこちらの記事に、ユーザーからの入力についてはこちらの記事にありますので、合わせてご覧ください。
1.EXCEL VBAのメッセージボックス(Msgbox)に変数を表示しよう
こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。
それではメッセージボックスへの変数の表示について見ていきましょう。
以下のようなVBAコードを書いてみました。
iを変数として定義しています。そして、ループが1回行われるごとに1増加させ、10を超えたらループを抜けるというものです。
Sub 変数表示1()
Dim i As Integer
i = 1
Do Until i > 10
MsgBox i
i = i + 1
Loop
End Sub
メッセージボックスに表示させるのは「MsgBox i」でOKです。
これで下の画像のように数字が表示されます。
iはループごとに増える変数ですので、何回目のループかがわかるというわけですね。
2.変数と文字列を同時に表示しよう
前章では変数だけを表示してみましたが、もう少しわかりやすく表示させられるとさらに便利ですよね。
そこで、本章では文字列も合わせて表示したいと思います。
以下のVBAコードを見てください。
Sub 変数表示2()
Dim i As Integer
i = 1
Do Until i > 10
MsgBox i & "回目のループです"
i = i + 1
Loop
End Sub
前章のコードとほぼ同じ処理ですが、メッセージボックスは「MsgBox i & “回目のループです”」という形で記述しています。
“(ダブルクォーテーション)で囲った部分が文字列ですね。
実行すると、以下の画像のようなメッセージボックスが表示されるはずです。
同じ7回目のループを示していても、文字列を合わせて表示できるので、よりわかりやすくなりますね。
3.Msgbox機能をデバグに使おう
ここまでで、変数のみ表示・変数と文字列を表示する方法を解説しました。
これらの方法を応用すると、マクロを組むときのデバグにも活躍します。
例えば、いくつかのループを組み合わせたコードを組んでいて、実行するとどこかでエラーが出てしまう、といった場合。
以下のようなコードで、どのループの何回目までループが進んでいるか、というのを確認することができます。
Sub 変数表示3()
Dim i, j As Integer
i = 1
j = 1
Do Until i > 3
Do Until j > 3
MsgBox i & "回目の大ループの中の" & j & "回目の小ループです"
j = j + 1
Loop
i = i + 1
j = 1
Loop
End Sub
わかりやすいように文字列と組み合わせてもいいですし、デバグだけであれば変数だけ表示させるのもよいと思います。
また、ここではループの回数を表示させていますが、変数はなんでも表示できます。
「MsgBox i*j」の記述で掛け算の結果を表示させたりもできます。
いろいろなデバグに使えそうですよね。
うまく使い分けてデバグの作業効率を上げましょう。
4.まとめ
この記事では「VBAでMsgboxに変数を表示する方法」を解説しましたが、いかがでしたか?
ユーザーへのお知らせやデバグに使えるメッセージボックスの機能。
うまく使っていきたいですね。