MsgBox関数を使ったダイアログボックスの表示
MsgBox 関数は Excel VBA で用意されている関数の一つで、ダイアログボックスを表示してユーザーにメッセージを表示したり、「Yes」または「No」などの選択をしてもらうことができます。ここでは Excel VBA を使って MsgBox 関数を使ったダイアログボックスを表示する方法について解説します。
(Last modified: )
MsgBox関数の定義と使い方
MsgBox 関数の書式は次のように定義されています。
MsgBox (prompt,[buttons,][title,][helpfile,context])
1 番目の引数にダイアログボックスに表示する文字列を指定します。省略可能な 2 番目の引数にダイアログボックスに表示するボタンの組み合わせを表す数値を指定します。デフォルトは 0 です。
省略可能な 3 番目の引数にダイアログボックスのタイトルバーに表示される文字列を指定します。省略した場合はアプリケーションの名前が表示されます。
省略可能な 4 番目の引数と 5 番目の引数にはダイアログボックスでヘルプを表示する場合に使用します。
MsgBox 関数では戻り値としてどのボタンがクリックされたのかを示す整数の値を返します。
次の例を見てください。
Dim res As Integer res = MsgBox("こんにちは")
このプログラムを実行するとダイアログボックスを表示し、 1 番目の引数に指定した文字列を表示します。ボタンの種類については指定していないので「OK」ボタンだけが表示されます。
それでは簡単なサンプルを作成して試してみます。
Option Explicit Sub MsgBox関数() Dim res As Integer res = MsgBox("ダイアログボックスに関する解説を行っています。") End Sub
このプログラムを実行するとダイアログボックスが表示されて、引数に指定したメッセージが表示されます。表示されるボタンは「OK」ボタンだけです。
今回は「OK」ボタンだけなので、何のボタンをクリックされたのか取得する必要がないので次のように記述しても構いません。
Option Explicit Sub MsgBox関数() MsgBox "このページはダイアログボックスに関する解説を行っています。" End Sub
ダイアログボックスには色々な種類のボタンを表示することができます。またダイアログボックスにメッセージの内容に合わせてアイコンを表示させることができます。これらについては次のページ以降で解説します。
ダイアログボックスに表示されるテキストを改行する
MsgBox
関数の 1 番目の引数に指定した文字列がダイアログボックスに表示されますが、この文字列は途中で改行することができます。改行する場合は Chr
関数を使って Chr(13) + Chr(10) を改行したい位置に記述するか、定義済の定数 vbNewLine
を記述します。
※ VBA で改行を行う方法についての詳細は「VBAで改行する」を参照されてください。
次のサンプルを見てください。
Option Explicit Sub MsgBox関数() MsgBox "ありがとうございました。" & vbNewLine & "またきてください。" End Sub
このプログラムを実行するとダイアログボックスが表示されて、引数に指定した文字列が途中で改行されているのが確認できます。
このように改行したい位置に改行を表す定数を記述することでダイアログボックスに表示される文字列を改行することができます。
-- --
Excel VBA を使って MsgBox 関数を使ったダイアログボックスを表示する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。