目次
作用
メッセージボックスに情報を表示し、ユーザーがボタンをクリックするまで待機します。ボタンの値(例えば、[OK]又は[キャンセル])を返します。通常、変数の値を表示する方法として使用されます。
書式
MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])
引数の説明:
1、Promptは必須の引数で、ダイアログボックスに表示するメッセージとする文字列です。 最大の文字数は約1024文字で、使用する文字の幅によって決まります。promptの内容が1行を超える場合は、各行の間にキャリッジリターン(Chr(13))、ラインフィード(Chr(10))、またはキャリッジリターンとラインフィードの組み合わせ(Chr(13)&Chr(10))で行を区切ります。
2、buttonはオプションの引数で、数値式の値の合計を表示します。ボタンの種類やタイプ、アイコンスタイルやメッセージボックスの必須の応答などを指定します。メッセージボックスはカスタマイズできます。 この引数を省略した場合、デフォルト値は0です。 設定値を次の表に示します。
3、Titleはオプションの引数で、メッセージボックスのタイトルバーに表示されるテキストを表します。 この引数を省略すると、アプリケーション名がタイトルバーに配置されます。
4、Helpfileはオプションの引数で、ヘルプファイルを提供する文字列です。 Helpfileが存在する場合は、Contextも存在します。
5、Contextオプションの引数で、ヘルプトピックを提供する数値式です。Contextが存在する場合は、Helpfileも存在です。
引数のButton
MsgBox関数に使用されるButton引数の定数
ボタン種類 | 値 | 説明 |
vbokonly | 0 | [OK]ボタンのみ表示します |
vbokcancel | 1 | [OK]ボタンと[キャンセル]ボタンを表示します |
vbabortretryignore | 2 | [中止]、[再試行]、[無視]ボタンを表示します |
vbyesnocancel | 3 | [はい]、[いいえ]、[キャンセル]ボタンを表示します |
vbyesno | 4 | [はい]、[いいえ]、[キャンセル]ボタンを表示します |
vbretrycancel | 5 | [再試行]、[キャンセル]ボタンを表示します |
アイコン種類 | 値 | 説明 |
vbcritical | 16 | critical messageアイコン(×)を表示します |
vbquestion | 32 | warning queryアイコン(?)を表示します |
vbexclamation | 48 | warning messageアイコン(!)を表示します |
vbinformation | 64 | information messageアイコン(システム情報) |
デフォルトボタン | 値 | 説明 |
vbdefauitbutton1 | 0 | 最初のボタンはデフォルト値です |
vbdefauitbutton2 | 256 | 2番目のボタンはデフォルト値です |
vbdefauitbutton3 | 512 | 3番目のボタンはデフォルト値です |
vbdefauitbutton4 | 768 | 4番目のボタンはデフォルト値です |
強制終了 | 値 | 説明 |
vbapplicationmode1 | 0 | アプリケーションを強制終了します |
vbsystemmode1 | 4096 | システムを強制終了します |
その他 | 値 | 説明 |
vbmsgboxhelpbutton | 16384 | ダイアログに[ヘルプ]ボタンを追加します |
vbmsgboxsetforeground | 65535 | ダイアログウィンドウをフォアグラウンドウィンドウとして指定します |
vbmsgboxright | 524288 | ダイアログボックスのテキストは右揃えです |
vbmsgboxrtireading | 1048576 | ダイアログボックスの要素が右から左に表示されることを指定します |
説明:
1、ボタン種類の値(0-5)はメッセージボックスに表示されるボタンの形式またはと数値を記述します。アイコン種類の値(16、32、48、64)はアイコンのスタイルを記述します。デフォルトボタンの値(0、256、512、768)はどのボタンがデフォルト値であるかを示します。強制終了の値(0、4096)はメッセージボックスで強制終了が可能であることを決定します。これらの数値を加算してButtons引数の値を生成する場合、各配列から1つの値を採用するだけです。
2、これらの定数はすべてVBAによって指定されており、プログラムコードでこれらの定数名を使用して、実際の値を置き換えることができます。
返す値
MsgBox関数の返す値に使用される定数
定数 | 値 | 説明 |
vbOK | 1 | OK |
vbCancel | 2 | キャンセル |
vbAbort | 3 | 中止 |
vbRetry | 4 | 再試行 |
vbIgnore | 5 | 無視 |
vbYes | 6 | はい |
vbNo | 7 | いいえ |
関連説明
1、HelpfileとContext引数が同時に指定されている場合は、F1キーを押して、Contextに対応するヘルプトピックを表示できます。通常、Excelは入力ボックスにヘルプボタン(Help)を自動的に追加します。
2、メッセージボックスに[キャンセル]ボタンが表示されている場合、ESCキーと[キャンセル]ボタンの効果は同じです。メッセージボックスに[ヘルプ]ボタンがある場合は、関連するヘルプ情報を提供します。
3、複数の引数を入力し、この中の引数の一部を省略したい場合は、対応する位置にコンマを追加する必要があります。
例
1、MsgBox関数を使用して、[はい]および[いいえ]ボタンのあるダイアログボックスにエラーメッセージを表示します。 この例のデフォルトのボタンは[いいえ]であり、MsgBox関数の返す値は、ユーザーの選択によって異なります。 また、DEMO.HLPがヘルプファイルであり、この中で、ある一つのヘルプトピックコードが1000です。
Dim Msg,Style,Title,Help,Ctxt,Response,MyString
'メッセージのテキストを定義します
Msg="Do you want to continue ?"
' ボタンを定義します
Style = vbYesNo + vbCritical + vbDefaultButton2
' タイトルのテキストを定義します
Title = "MsgBox Demonstration"
' ヘルプファイルを定義します
Help = "DEMO.HLP"
' ヘルプトピックを定義します
Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' ユーザーが[はい]を押します
MyString = "Yes"
Else ' ユーザーが[いいえ]を押します
MyString = "No"
End If
2、特定のメッセージのみを表示します
MsgBox “Hello!”
3、メッセージボックスから返された結果を変数に割り当てます
Ans=MsgBox(“Continue?”,vbYesNo)
If MsgBox(“Continue?”,vbYesNo)<>vbYes Then Exit Sub
4、定数の組み合わせを使用し、Config変数を割り当て、2番目のボタンをデフォルトボタンとして設定します
Config=vbYesNo+vbQuestion+vbDefaultButton2
5、メッセージに改行したい場合は、テキストにvbCrLf(またはvbNewLine)定数を使用し、&とスペースで文字を区切ります。例えば、
MsgBox “This is the first line.” & vbNewLine & “Second line.”
6、vbTab定数を使用して、メッセージボックスにタブを挿入できます。次の手順では、メッセージボックスを使用して、5×5セル範囲のすべての値を表示し、vbTab定数を使用して列を分割し、vbCrLf定数を使用して新しい行を挿入します。 MsgBox関数は最大で1024文字しか表示しないため、表示できるセルの数は制限されていることに注意してください。
Option Explicit
Sub ShowRangeValue()
Dim Msg As String
Dim r As Integer, c As Integer
Msg = ""
For r = 1 To 5
For c = 1 To 5
Msg = Msg & Cells(r, c) & vbTab
Next c
Msg = Msg & vbCrLf
Next r
MsgBox Msg
End Sub
7、メッセージボックスステートメントでワークシート関数を使用し、表示される数値の形式を設定します。次のステートメントのようです。
MsgBox " selection has " & m & " cells ." & Chr(13) & " the sum is :" & Application.WorksheetFunction.Sum(Selection) & Chr(13) & "the average is :" & Format(Application.WorksheetFunction.Average(Selection), "#,##0.00"), vbInformation, "selection count & sum & average" & Chr(13)
コメントを残す