メッセージを表示する(MsgBox関数)
 MsgBox関数は、ユーザーに対してメッセージを表示したい場合に使用します。
また、そのメッセージに対してユーザーがどのように答えたのか、つまり、
どのボタンを押したのかという値を返します。


  構文 MsgBox(Prompt, Buttons, Title, HelpFile, Context) 

 設定項目      内容
  Prompt    ダイアログボックスに表示するメッセージを指定 [省略不可]
  Buttons    表示するボタンの種類などを設定(一覧参照) [省略可能]
  Title     ダイアログボックスのタイトルバーの文字列を指定 [省略可能]
  HelpFile   ヘルプを設定する場合の、ヘルプファイルの名前を指定 [省略可能]
  Context    表示したいヘルプトピックを表すコンテキスト番号を指定 [省略可能]


 表示するボタンの種類や、メッセージとともに表示するアイコンの種類、
そのまま[Enter]キーを押したときに押されたと判断される標準ボタンの設定、
さらにはシステムモーダルにするかアプリケーションモーダルにするのか、
といった設定は全て引数Buttonsで行います。次に示す一覧の定数の組合わせ
で指定します。


・引数buttonsで使用する定数一覧(VbMsgBoxStyle)

グループ    定数         値   内容

ボタンの種類  vbOKOnly       0    [OK]のみ(既定値)
と個数     vbOKCancel        1    [OK] と [キャンセル]
        vbAbortRetryIgnore  2    [中止]、[再試行]、および [無視] 
        vbYesNoCancel     3    [はい]、[いいえ]、および [キャンセル]
        vbYesNo        4    [はい] と [いいえ]
        vbRetryCancel     5    [再試行] と [キャンセル]
アイコン    vbCritical      16   警告 [bt01.bmp]
の種類     vbQuestion      32   問い合わせ [bt02.bmp]
        vbExclamation     48   注意 [bt03.bmp]
        vbInformation     64   情報 [bt04.bmp]
標準ボタン   vbDefaultButton1   0    第1ボタンを標準ボタンに
        vbDefaultButton2   256   第2ボタンを標準ボタンに
        vbDefaultButton3   512   第3ボタンを標準ボタンに
        vbDefaultButton4   768   第4ボタンを標準ボタンに
モーダル    vbApplicationModal  0    アプリケーションモーダルに設定
かどうか    vbSystemModal     4096  システムモーダルに設定
        vbMsgBoxHelpButton  16384  ヘルプボタンを追加
        VbMsgBoxSetForeground 65536  最前面のウィンドウとして表示
        vbMsgBoxRight     524288 テキストを右寄せで表示
        vbMsgBoxRtlReading  1048576 テキストを右から左の方向で表示


 引数を組合わせて指定する際には、矛盾しない組合わせで指定する必要があります。
つまり、それぞれのグループからは1つの定数しか設定できません。なお、省略時は
[OK]ボタンのみが表示されます。
 MsgBox関数の戻り値と押したボタンの関係は次の一覧のとおりです。


・MsgBox関数の戻り値で使用する定数一覧(VbMsgBoxResult)

定数    値   押したボタン

vbOK    1    [OK]
vbCancel  2    [キャンセル]
vbAbort   3    [中止]
vbRetry   4    [再試行]
vbIgnore  5    [無視]
vbYes    6    [はい]
vbNo    7    [いいえ]


 次のサンプルは、MsgBox関数の戻り値によって処理を分岐させる処理の一例です。

●サンプル1●
Sub MsgBoxSamp1()

    Dim myPass As String
    Dim Ret As Integer

InputPass:
    On Error GoTo ErrHandle
    myPass = InputBox("シート保護解除用のパスワードを入力してください" & vbCr & _
               "(ヒント : 1文字の半角小文字のアルファベット)")
    ActiveSheet.Unprotect Password:=myPass
    Exit Sub

ErrHandle:
    Ret = MsgBox(Prompt:="保護解除に失敗!" & vbCr & "やり直しますか?", _
                Buttons:=vbRetryCancel + vbCritical + vbDefaultButton2, _
                Title:="保護解除エラー")
                            '---[再試行] と [キャンセル] + 警告 + 第2ボタンを標準
    If Ret = vbRetry Then   '---再試行が押されたときの処理
        Resume InputPass    '---再度パスワード入力
    End If

End Sub

Excel2000



戻る


Excel Word Access VBA! モーグ