Categories: VBA基礎

EXCEL VBA Msgboxの使い方 (メッセージボックス・基礎編)

 

Msgboxの使い方

 

●はじめに

EXCEL VBAプログラムを作成する上で、メッセージを表示させる事は、いろんな場面で利用されます。内容に応じて「Yes・No」などの判定をすることもできます。それでは、Msgboxの利用方法をサンプルプログラムを使い説明いたします。

【メッセージボックスの応用はこちらを参照】

 

 

 

●書式の説明   【Msgbox関数】

● MsgBoX(Prompt,Buttons,Title)

■Prompt:メッセージを記入(必須)
■Buttons:ボタンの種類・アイコンの種類を指定
■Title:タイトル名を指定

定数アイコン画像説明
vbCritical16警告メッセージのアイコンを表示します。
vbQuestion32問い合わせメッセージアイコンを表示します。
vbExclamation48注意メッセージアイコンを表示します。
vbinformation64情報メッセージアイコンを表示します。


使用例:Msgbox ”こんにちは”,50,”あいさつ”

定数表示されるボタンと種類の内容実行画面
vbOkonly0「OK」ボタンのみ表示
vbOkCancel1「OK」・「キャンセル」を表示
vbAbortRetryIgnore2「中止」・「再試行」・「無視」を表示
vbYesNoCancel3「はい」・「いいえ」・「キャンセル」を表示
vbYesNo4「はい」・「いいえ」を表示
vbRetryCancel5「再試行」・「キャンセル」を表示

 

 

 

 

Msgboxの使い方(表示例)

 

Sub msgTest()
    MsgBox "こんにちは!"
End Sub

 

●実行結果 ※上記のプログラムを実行した結果が表示されます。(クリックで拡大表示)

 

 

 

Msgboxの使い方(表示例2)

 

Sub msgTest2()

    Dim Ten As Long '変数を定義 
    Ten = 100      'Tenに100を代入する
    MsgBox "あなたの点数は" & Ten & "です"

End Sub

 

●実行結果 ※上記のプログラムを実行した結果が表示されます。 (クリックで拡大表示)

 

 

 

Msgboxの使い方(表示例3:Yes/No判定)

 

Sub msgTest3()
    Dim Hantei As Integer '変数を定義
    
    Hantei = MsgBox("Yes/Noどちらのボタンを押しますか?", vbYesNo)
    
    If Hantei = vbYes Then
        MsgBox "Yesボタンを押しました"
        'Yesボタンを押した場合の処理をする
    Else
        MsgBox "Noボタンを押しました"
        'Noボタンを押した場合の処理をする
    End If

End Sub

 

●実行前 ※メッセージボックスが表示されます。(はい・いいえ) (クリックして拡大)

 

●実行後 ※メッセージボックス(Msgbox)の「はい」クリックしましたので、「Yes(はい)を押しました」が表示されました。
(クリックして拡大)

 

 

 

Msgboxの定数 :MsgBoX(Prompt,Buttons,Title)

 

●定数の説明 (Buttons)
MsgBoXは、色々な定数を組み合わせる事により、「OK」・「はい」・「いいえ」など様々なボタンを設置する事ができます。下記にMsgBoxで表現できる一覧を下記にまとめました。

 

定数表示されるボタンと種類の内容実行画面
vbOkonly0「OK」ボタンのみ表示
vbOkCancel1「OK」・「キャンセル」を表示
vbAbortRetryIgnore2「中止」・「再試行」・「無視」を表示
vbYesNoCancel3「はい」・「いいえ」・「キャンセル」を表示
vbYesNo4「はい」・「いいえ」を表示
vbRetryCancel5「再試行」・「キャンセル」を表示

 

●上記表を実行するプログラムは、下記の通りです。

Sub msgbox_sample()

    MsgBox "処理を実行しますか?", vbOKOnly
    
    MsgBox "処理を実行しますか?", vbOKCancel
    
    MsgBox "処理を実行しますか?", vbAbortRetryIgnore
    
    MsgBox "処理を実行しますか?", vbYesNoCancel
    
    MsgBox "処理を実行しますか?", vbYesNo
    
    MsgBox "処理を実行しますか?", vbRetryCancel
    

End Sub

 

 

 

Msgboxボタンの戻り値 (選択した戻り値)

 

●ボタンの戻り値の説明
Msgboxボタンの戻り値の説明をいたします。下表はMsgBoxのボタンを押した時の戻り値一覧です。

 

定数内容説明戻り値
vbOK「OK」ボタンを押すと1
vbCancel「キャンセル」ボタンを押すと2
vbAbort「中止」ボタンを押すと3
vbRetry「再試行」ボタンを押すと4
vbIgnore「無視」ボタンを押すと5
vbYes「はい」ボタンを押すと6
vbNo「いいえ」ボタンを押すと7

 

●下記のプログラムは、押したボタンを戻り値で判断して説明していますが、「定数:vbOK」でも同じ事になります。

Sub msgbox_sample2()

    Dim RetMsg As Integer
    
    '---------------- OK の場合---------------------------------

    RetMsg = MsgBox("処理を実行しますか?", vbOKOnly)
    
    If RetMsg = 1 Then
        MsgBox "「OK」ボタンが押されました"
    End If
    
    '---------------- OK・キャンセルの場合----------------------
    
    RetMsg = MsgBox("処理を実行しますか?", vbOKCancel)
    
    If RetMsg = 1 Then
       MsgBox "「OK」ボタンが押されました"
    ElseIf RetMsg = 2 Then
       MsgBox "「キャンセル」ボタンが押されました"
    Else
       MsgBox "その他ボタンが押されました"
    End If
    
    '---------------- 中止・再試行・無視の場合------------------
    
    RetMsg = MsgBox("処理を実行しますか?", vbAbortRetryIgnore)
    
    If RetMsg = 3 Then
       MsgBox "「中止」ボタンが押されました"
    ElseIf RetMsg = 4 Then
       MsgBox "「再試行」ボタンが押されました"
    ElseIf RetMsg = 5 Then
       MsgBox "「無視」ボタンが押されました"
    Else
       MsgBox "その他ボタンが押されました"
    End If
    
    '---------------- はい・いいえ・キャンセルの場合-----------
    
    RetMsg = MsgBox("処理を実行しますか?", vbYesNoCancel)
    
    If RetMsg = 6 Then
       MsgBox "「はい」ボタンが押されました"
    ElseIf RetMsg = 7 Then
       MsgBox "「いいえ」ボタンが押されました"
    ElseIf RetMsg = 2 Then
       MsgBox "「キャンセルボタン」が押されました"
    Else
       MsgBox "その他ボタンが押されました"
    End If
    
    '---------------- はい・いいえの場合----------------------
    
    RetMsg = MsgBox("処理を実行しますか?", vbYesNo)
    
    If RetMsg = 6 Then
       MsgBox "「はい」ボタンが押されました"
    ElseIf RetMsg = 7 Then
       MsgBox "「いいえ」ボタンが押されました"
    Else
       MsgBox "その他ボタンが押されました"
    End If
    
    '--------------- 再試行・キャンセルの場合-----------------
    
    
    RetMsg = MsgBox("処理を実行しますか?", vbRetryCancel)
    
   If RetMsg = 4 Then
       MsgBox "「再試行」ボタンが押されました"
    ElseIf RetMsg = 2 Then
       MsgBox "「キャンセル」ボタンが押されました"
    Else
       MsgBox "その他ボタンが押されました"
    End If
    

End Sub

 

最後まで、ご覧いただきまして誠に有難うございました。
MsgBoxの使い方でした。条件により色々使い分けが出来ますので、状況により使い分けて下さい。更に、Msgbox関数を活用したい方↓
●Msgbox関数の応用編については、下記のURLを参照して下さい。

また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

 

AKIRA