01-VBA

ダイアログボックス|Excel VBA (Part.2)【MsgBox】組み込み定数編 | 現役エンジニア&プログラミングスクール講師

目標

MsgBoxの戻り値について理解して利用できる。

MsgBoxの戻り値の概要と利用方法

MsgBoxの戻り値とは

ユーザーがMsgBoxを利用する場合、表示されたボタンによって決められた値がプログラムに返されます。この値のことを戻り値と言います。MsgBoxの戻り値は組み込み定数として準備されています。

組み込み定数とは

変数と定数の違い

組み込み定数の前に変数と定数についておさらいしておきます。変数と定数とは、簡単にまとめると、
変数:Dimで宣言して使用できる中身の値を変えることのできる箱
定数:Constで宣言して使用できる中身の値を変えることのできない箱
のことでした。

組み込み定数とは

組み込み定数とは、定数と名前がある通り、中身を変えられない箱に収められた値のことです。VBAなどではこの定数について最初から準備されたものがあります。これを「組み込み定数」と呼びます。

組み込み定数には「vb」や「xl」などの接頭辞がついています。vbはOfficeソフト全般に利用できる定数でxlはエクセル専用の定数となっています。その他にもユーザーフォームで利用される「fm」などの接頭辞がついた組み込み定数があります。

MsgBoxの戻り値の確認

ボタンの種類と組み込み定数(戻り値)の関係

ボタン組み込み定数戻り値
OKvbOK1
キャンセルvbCancel2
中止vbAbort3
再試行vbRetry4
無視vbIgnore5
はいvbYes6
いいえvbNo7

キャプチャで確認

MsgBoxの利用方法

サンプルプロシージャ1

このサンプルプロシージャはDo Loopステートメントでのサンプルプロシージャの再掲載です。下の通りAnsという変数に組み込み定数の値を代入して利用します。

vbCancelの部分に「2」,vbYesの部分に「6」を設定してもプログラムは動きます。

Sub DoLoop4()
    Dim Ans As Integer
        
    Do Until Ans = vbCancel
        Ans = MsgBox("印刷しますか?", vbYesNoCancel, "印刷確認")
            If Ans = vbYes Then
                MsgBox "印刷します。"
            Else
                MsgBox "印刷をスキップします"
            End If
    Loop
End Sub

サンプルプロシージャ1(組み込み定数に数値を利用)

Sub DoLoop4()
    Dim Ans As Integer
        
    Do Until Ans = 2
        Ans = MsgBox("印刷しますか?", vbYesNoCancel, "印刷確認")
            If Ans = 6 Then
                MsgBox "印刷します。"
            Else
                MsgBox "印刷をスキップします"
            End If
    Loop
End Sub

今回は以上となります。次回はInputBoxについて取り上げます。

初心者も実践で通用!「VBA・VBS」おすすめ書籍5選 | 現役エンジニア&プログラミングスクール講師「VBA・VBS」初心者の方が実践業務の中でそれらを活用しt活躍できるために必要な知識を習得できる書籍を紹介しています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
01-VBA

Excel VBA の イベント編(Part.1)3つのプロシージャ /引数のByVal(値渡し)とByRef(参照渡し)| 現役エンジニア&プログラミングスクール講師

2022年12月29日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

制御構文|Excel VBA (Part.4)【Select Case】| 現役エンジニア&プログラミングスクール講師

2022年11月19日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

Excel VBA の「デバッグ」(Part.3)「イミディエイトウィンドウ」「ウォッチウィンドウ」| 現役エンジニア&プログラミングスクール講師

2022年12月14日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのCellsプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月18日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

クラスの利用方法|Excel VBA(番外編)| 現役エンジニア&プログラミングスクール講師

2023年2月19日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
01-VBA

ExcelVBAのActiveCellプロパティ | 現役エンジニア&プログラミングスクール講師

2022年8月15日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site