CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

MsgBox関数 2

こんにちは

 

引き続きMsgBoxの説明です。

MsgBoxでYes,Noを設定してもその後の処理がないと意味がないですよね。

 

というわけで結果を取得するようなプログラムを作成してみましょう。

 

そもそもMsgBoxの結果ってどうやって取得するの?

ここ重要ですよね。

MsgBoxでYes,No等を選択すると値を返します。

その値からMsgBoxで何を選択したのかを判断します。

どんな値を返すのかは以下の表にまとめました。

f:id:takataka2743:20181006231144p:plain

 

サンプルプログラム

ではサンプルを見てみましょう。

Sub test()
    Dim 入力結果 As Long
    入力結果 = MsgBox("OKかCancelを押してください", vbOKCancel)
    If 入力結果 = vbOK Then
        MsgBox "OKが押されました"
    Else
        MsgBox "Cancelが押されました"
    End If
End Sub

 これはただ単にMsgBoxでOK,Cancleボタンを押した結果を変数:入力結果に代入して、If文で判定するだけですね。

 

アイコンと各ボタンを追加する

前回説明忘れてました。

ボタンの追加とアイコンの追加、最初のボタンの選択状態を変更するプログラムを作成してみます。

Sub test()
    Dim 入力結果 As Long
    入力結果 = MsgBox("OKかCancelを押してください", vbOKCancel + vbInformation + vbDefaultButton2)
    If 入力結果 = vbOK Then
        MsgBox "OKが押されました"
    Else
        MsgBox "Cancelが押されました"
    End If
End Sub

 vbOKCancel + vbInformation + vbDefaultButton2

これはOK,Cancelのボタン追加+アイコンをインフォメーションに変更+2番目のボタンをアクティブに変更

という命令が書かれています。

その結果が下の状態ですね。

 

f:id:takataka2743:20181006233659p:plain

 

こんな感じです。

使いこなせるとカッコいいと思います。(語彙力