Excelでメッセージボックス関数を作成するにはどうすればよいですか?
私が VBA について最初に学んだのは、メッセージ ボックス (「msgbox 関数」) の使い方でした。これは、特定のメッセージを表示する Excel ウィンドウ上の単純なポップアップ ボックスのようなものです。よく考えてみると2通りの使い方ができます。
- ユーザーにメッセージを配信します。
- ユーザーから簡単な応答を取得します。
ほとんどの VBA プログラマーは、マクロ コードをより対話的にするためにこれをマクロ コード内で使用しています。これを知らなかったとしても、この記事を読んだ後はきっと気に入るはずです。
専門家のヒント: VBA の初心者の場合は、VBA メッセージ ボックスについて詳しく学ぶことをお勧めします。
そこで今回は、Excel でのメッセージ ボックスの使い方の詳細と実際の例をいくつか紹介したいと思います。
…始めましょう。
構文
=MSGBOX(プロンプト, [ボタン], [タイトル], [ヘルプファイル, コンテキスト])
- プロンプト メッセージとして表示するために使用される文字列式。最大文字長は 1024 文字で、文字幅によって異なります。
- [ボタン] この引数を使用して、ボタン、アイコン スタイル、ボタン ID、およびメッセージ ボックス モダリティを指定できます。
- [title] この引数を使用して、メッセージ ボックスのタイトル テキストを指定できます。
- [helpfile] この引数は、ユーザーのヘルプ ファイルを指定するのに役立ちます。ユーザーは、ヘルプ ボタンを使用してこのヘルプ ファイルにアクセスできます。ヘルプ ファイルを指定する場合は、コンテキスト番号の指定が必須です。
- [context] ヘルプ メニューからヘルプ トピックを割り当てるために使用される数値式。
注:上記のリストで、角かっこ内の引数はオプションです。省略して指定することもできます。
メッセージ ボックスをカスタマイズし、さまざまなボタンを使用する方法
利用可能なすべてのオプションを使用して、VBA メッセージ ボックスを簡単にカスタマイズできます。これらのオプションを見てみましょう。
#1. vbOKのみ
これにより、シンプルな [OK] ボタンが表示されます。ユーザーはメッセージを読んだ後にクリックしてメッセージを閉じることができます。さらに、「OK」ボタンをクリックしたときに実行するマクロを使用することもできます。
OKOnly() の下で
MsgBox プロンプト := “これは MsgBox です”, _
ボタン:=vbOKOnly、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#2. vbOKキャンセル
この定数により、[OK] ボタンと [キャンセル] ボタンが提供されます。ユーザーには、OK を押して続行するか、キャンセルして終了するかの 2 つのオプションがあります。
OKCancel() の下で
MsgBox プロンプト:= »大丈夫ですか? »、_
ボタン:=vbOKキャンセル、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#3. vb中止再試行無視
これにより、「About」、「Retry」、「Skip」の 3 つのボタンを表示できます。ユーザーは操作を中止したり、再試行したり、無視したりできます。
OKCancel() の下で
MsgBox プロンプト:= »大丈夫ですか? »、_
ボタン:=vbOKキャンセル、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#4. vbはいいいえキャンセル
この定数には、はい、いいえ、キャンセルの 3 つのボタンが表示されます。ユーザーは、「はい」を選択して受け入れて続行するか、「いいえ」を選択して拒否するか、キャンセルしてメッセージ ボックスを閉じることができます。
YesNoCancel() の下で
MsgBox プロンプト := “ボタンが 3 つあります”, _
ボタン:=vbYesNoCancel、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#5. vbはいいいえ
この定数には、「はい」と「いいえ」の 2 つのボタンが表示されます。ユーザーは、「はい」をクリックして受け入れて続行するか、「いいえ」をクリックして拒否することができます。
YesNo() の下で
MsgBox プロンプト := “ボタンが 2 つあります”, _
ボタン:=vbはいいいえ、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#6. vb再試行キャンセル
再試行とキャンセルの 2 つのボタンが表示されます。これを使用して、ユーザーに操作を再試行するか、操作をキャンセルするかを要求できます。
Sub RetryCancel()MsgBox Prompt:=”もう一度お試しください”, _Buttons:=vbRetryCancel, _Title:=”MsgBox”End Sub
#7。 vbレビュー
この定数はメッセージ ボックスにアイコンを表示し、メッセージが重要であることを示します。
サブクリティカル()
MsgBox プロンプト := “これは重要です”, _
ボタン:=vbCritical、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#8. vb質問
この定数は、ユーザーに質問するときに使用できます。
サブ質問()
MsgBox プロンプト := »今何をすべきですか? »、_
ボタン:=vb質問、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#9. vb感嘆符
この定数は、メッセージとともに感嘆符アイコンを表示します。
UnderExclamation()
MsgBox プロンプト := »今何をすべきですか? »、_
ボタン:=vb感嘆符、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#十。 vb情報
メッセージが情報であることを示すアイコンが表示されます。
Sub Information()MsgBox Prompt:=”これから何をしますか?”, _Buttons:=vbInformation, _Title:=”MsgBox”End Sub
#11. vbデフォルトボタン1
この定数を使用して、メッセージ ボックスの最初のボタンをデフォルトのボタンとして指定します。
Sub DefaultButton1()MsgBox Prompt:=”Button1 が強調表示されていますか?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton1, _Title:=”MsgBox”End Sub
#12. vbデフォルトボタン2
この定数を使用して、メッセージ ボックスの 2 番目のボタンをデフォルトのボタンとして指定します。
Sub DefaultButton2()MsgBox Prompt:=”Button2 が強調表示されていますか?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton2, _Title:=”MsgBox”End Sub
#13. vbデフォルトボタン3
この定数を使用して、msgbox の 3 番目のボタンをデフォルトのボタンとして指定します。
Sub DefaultButton3()MsgBox プロンプト:=”Button3 が強調表示されていますか?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton3, _Title:=”MsgBox”End Sub
#14. vbデフォルトボタン4
この定数を使用して、msgbox の 4 番目のボタンをデフォルトのボタンとして指定します。
Sub DefaultButton4()MsgBox Prompt:=”Button4 が強調表示されていますか?”, _Buttons:=vbYesNoCancel + vbMsgBoxHelpButton + vbDefaultButton4, _Title:=”MsgBox”End Sub
#15. vbApplicationModal
この定数はアプリケーション (Excel) を一時停止します。ユーザーはアプリケーションを使用するにはメッセージボックスに返信する必要があります。
OKOnly() の下で
MsgBox プロンプト := “これは MsgBox です”, _
ボタン:=vbOKOnly、_
タイトル: = “メールボックス”, _
エンディングサブタイトル
#16. vbシステムモーダル
この定数はオペレーティング システム内のすべてのアプリケーションを一時停止します。ユーザーは最初にメッセージ ボックスに応答する必要があります。
Sub ApplicationModal()MsgBox Prompt := »これはアプリケーション モーダルです», _Buttons :=vbOK + vbApplicationModal, _Title := »MsgBox »End Sub
#17。 vbMsgBoxヘルプボタン
この定数を使用して、メールボックスにヘルプ ボタンを追加します。ヘルプ ファイルとコンテキスト番号を追加して、ヘルプ ボタンを使用できます。
Sub HelpButton()MsgBox Prompt:=”ヘルプ ボタンを使用”, _Buttons:=vbOK + vbMsgBoxHelpButton, _Title:=”MsgBox”, _HelpFile:=”C:UsersPuneet GogiaDesktopsamplehelp.chm”, _Context:=101End Sub
ユーザーがヘルプ ボタンをクリックすると、ヘルプ メニューが表示されます。
#18. vbMsgBoxSetForeground
この定数は、メッセージ ボックス ウィンドウを最前面ウィンドウにするのに役立ちます。
Sub SetForeground()MsgBox Prompt:=”この MsgBox は前景にあります”, _Buttons:=vbOK + vbMsgBoxSetForeground, _Title:=”MsgBox”End Sub
#19. vbMsgBoxRight
この定数を使用すると、テキストが右揃えになります。
MsgBoxRight() の下
MsgBox プロンプト := “テキストは右側にあります”, _
ボタン:=vbOK + vbMsgBoxRight、_
タイトル: = 「メールボックス」
エンディングサブタイトル
#20。 vbMsgBoxRtl読書
この定数を使用すると、メッセージ ボックスが右に反転します。この定数は主にヘブライ語およびアラビア語システム用に設計されています。
MsgBoxRtlRead() の下
MsgBox プロンプト := 「この箱はひっくり返りました」, _
ボタン:=vbOK + vbMsgBoxRtlRead、_
タイトル: = 「メールボックス」
エンディングサブタイトル
戻り値
ユーザーがいずれかのボタンをクリックしてメッセージ ボックスに応答するたびに、番号が生成されます。これは、ユーザーがどのボタンをクリックしたかを識別するのに役立ちます。
絶え間ない | 価値 | 説明 |
---|---|---|
vbOK | 1 | よし |
vbキャンセル | 2 | キャンセル |
vb中止 | 3 | 中絶 |
vbもう一度試してください | 4 | 再開する |
vbスキップ | 5 | 無視する |
vbはい | 6 | はい |
vbいいえ | 7 | いいえ |
Excel での VBA メッセージ ボックス関数の実際の使用例
ここでは、実際の VBA メッセージ ボックスの例をいくつかリストしました。これらの例は、きっと使用するきっかけになるでしょう。
#1. VBA MsgBox を使用してマクロを実行する
msgbox 関数の助けを借りて、マクロを実行する前にユーザーにプロンプトを表示できるようになりました。理解するために以下のマクロを見てみましょう。
SaveThis() の下
整数としての Dim 結果
Result = MsgBox(“このファイルを保存しますか?”, vbOKCancel)
結果 = vbOK の場合
ActiveWorkbook.Save
エンディングサブタイトル
ユーザーにワークブックを保存するよう依頼できます。ユーザーが「OK」ボタンをクリックすると、マクロ コードによってワークブックが保存されます。
#2.メッセージ ボックスにテーブルを挿入する
vbTab を使用して、メッセージ ボックスに表形式のデータを入力できます。この例では、表はセル A1 から始まります。
AddToMsgBox() の下
文字列としての薄暗いメッセージ
Dim r as int
Dim c as int
Dim rc を int として指定する
Dim cc as int
myRows を範囲として暗くする
myColumns を範囲として暗くする
メッセージ = “”
myRows = Range(“A:A”) を設定します
myColumns = Range(“1:1”) を設定します
rc = Application.CountA(myRows)
cc = Application.CountA(myColumns)
r = 1 ~ rc の場合 c = 1 ~ cc の場合
Msg = メッセージ & Cells(r, c).Text
c <= cc の場合
メッセージ = メッセージ & vbTab
次の cMsg = Msg & vbCrLf
次のr
メッセージボックスメッセージ
エンディングサブタイトル
#3.ファイルを開くときにメッセージボックスを表示する
以下のマクロを見ると、auto_open を使用して、ブックを開いたときに表示するメッセージを作成しています。
auto_open() の下で
MsgBox 「Exceladvisor へようこそ。このファイルをダウンロードしていただきありがとうございます。」 _
+ vbNewLine + vbNewLine + 「ここでは、MsgBox 関数について詳しく説明します。 » _
+ vbNewLine + vbNewLine + 「そして、他の素晴らしいものをチェックすることを忘れないでください。 »
エンディングサブタイトル
テイクアウト
- ヘルプ ボタンを 4 番目のボタンとして使用しない場合、メッセージ ボックスに 4 つのボタンを追加することはできません。
- メッセージ ボックスのヘルプ ファイルを作成するには、次のサンプル ファイルを参照してください。
サンプルファイル
詳細については、ここからこのサンプル ファイルをダウンロードしてください。
結論
メッセージ ボックスはメッセージを伝えるだけでなく、ユーザーにクリエイティブな印象を与えます。メッセージを送信すると、簡単な応答が得られます。
先ほども述べたように、VBA を初めて使用する場合は、メッセージ ボックスの使用方法を学ぶことが最善の方法の 1 つです。この記事が、VBA をマスターするという夢に近づくのに役立つことを願っていますが、ここで 1 つだけ言わせてください。
MsgBox 関数は VBA で最も優れた機能の 1 つだと思いますか?
ぜひコメント欄でご意見を私と共有してください。ぜひご意見をお待ちしております。このヒントをお友達と共有することも忘れないでください。
VBA について詳しく見る
- VBAを使用して名前を付けて新しいシートを追加します
- Excelでマクロを記録する方法
- 明示的な VBA オプション