EXCELのVBAでMsgboxに変数を表示する方法!

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に変数を表示する方法」を解説しましたが、いかがでしたか?

ユーザーへのお知らせやデバグに使えるメッセージボックスの機能。

うまく使っていきたいですね。