Sample Macro  メッセージ [基本型] Previous Next

1) メッセージボックス(知らせる) このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================

Sub 情報を知らせるメッセージボックス()
    MsgBox "処理が終りました。", vbInformation, "進行状況" '※1
End Sub
'-----------------------------------------------------------
Sub 注意を促すメッセージボックス()
    MsgBox "ファイルが開けません。もう一度やり直してください。", _
    vbExclamation, "エラーメッセージ"           '※1
End Sub
'-----------------------------------------------------------
Sub 警告するメッセージボックス()
    メッセージ = "選び直してください"
    タイトル = "誤操作です。"
    MsgBox メッセージ, vbCritical, タイトル     '※1
End Sub
'=================================================================================
<コメント>
※1これらのメッセージボックスには閉じる[×]ボタンも表示される



2) メッセージボックス(問い合わせ) このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================

Sub 問い合わせメッセージボックス_はいいいえ()
    ボタン = vbYesNo
    アイコン = vbQuestion
    応答 = MsgBox("印刷しますか?", ボタン + アイコン, "すぐマク")
    If 応答 = vbYes Then
        MsgBox "[はい]がクリックされました。", , "すぐマク"
    ElseIf 応答 = vbNo Then
        MsgBox "[いいえ]がクリックされました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------

Sub 問い合わせメッセージボックス_再試行キャンセル()
    ボタンの種類 = vbRetryCancel
    応答 = MsgBox("うまくいきません、どうしましょう?", ボタンの種類, "すぐマク")
    If 応答 = vbRetry Then
        MsgBox "[再試行]がクリックされました。", , "すぐマク"
    ElseIf 応答 = vbCancel Then
        MsgBox "[キャンセル]がクリックされました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------

Sub 問い合わせメッセージボックス_中止再試行無視()
    ボタンの種類 = vbAbortRetryIgnore
    応答 = MsgBox("うまくいきません、どうしましょう?", ボタンの種類, "すぐマク")
    If 応答 = vbAbort Then
        MsgBox "[中止]がクリックされました。", , "すぐマク"
    ElseIf 応答 = vbRetry Then
        MsgBox "[再試行]がクリックされました。", , "すぐマク"
    ElseIf 応答 = vbIgnore Then
        MsgBox "[無視]がクリックされました。", , "すぐマク"
    End If
End Sub
'---------------------------------------------------------------------------------
Sub ヘルプ機能付きのメッセージボックス()
    メッセージ = "続行しますか?" & vbCr & _
                "F1キー(Macはヘルプキー)を押すとヘルプトピックを表示します" '※4
    スタイル = vbYesNo + vbCritical + vbDefaultButton2
    タイトル = "すぐマク"
    ヘルプ = "DEMO.HLP"                         'ヘルプファイルを定義する ※5
    コンテキスト = 1000                         'トピックコンテキストを定義する
    応答 = MsgBox(メッセージ, スタイル, タイトル, ヘルプ, コンテキスト) '※6
    If 応答 = vbYes Then                        '[はい]がクリックされたら
        MsgBox "[はい] がクリックされました"
    Else                                        'そうでなければ
        MsgBox "[いいえ] がクリックされました"
    End If
End Sub
'=================================================================================
<コメント>
※1、2 Msgbox関数の引数 (ダイアロクボックスのスタイル)
アイコン ボタン
定数内容 定数内容
vbCritical16警告 vbOkOnly0OK
vbExclamation48注意 vbOkCancel1OK、キャンセル
vbInformation64情報 vbAbortRetryIgnore2中止、再試行、無視
vbQuestion32問い合わせ vbYesNoCancel3はい、いいえ、キャンセル
. vbYesNo4はい、いいえ
vbRetryCancel5再試行,キャンセル
標準ボタン モーダル指定
定数内容 定数内容
vbDefaultButton10第1ボタンを標準 vbApplicationModal0メッセージボックスに応答しないと他の操作不可能
vbDefaultButton2256第2ボタンを標準 vbSystemModal4096メッセージボックスに応答するまですべての動作を中断する
vbDefaultButton3512第3ボタンを標準 .
vbDefaultButton3768第4ボタンを標準
(注) アイコン(Macintoshでは無視される)、ボタン、標準ボタン、モーダル指定は定数の組み合わせ、
  または、値の和(例えば vbQuestion + vbYesNo または 36)で指定できる

※3 MsgBox関数の戻り値
選択されたボタン 定数 選択されたボタン 定数
[OK]ボタン1vbOK [無視]ボタン5vbIgnore
[キャンセル]ボタン2vbCancel [はい]ボタン6vbYes
[中止]ボタン3vbAbort [いいえ]ボタン7vbNo
[再試行]ボタン4vbRetry .

※4 Chr(13)は改行の制御文字、Excelのバージョンにより「vbLF」と記述可能
※5 事前に作成しておいたファイル名を指定する
※6 Excelのバージョンによっては、ヘルプボタンが表示される


3) 自動的に閉じるメッセージボックス このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 自動的に閉じるメッセージボックス()
    秒数 = 10                                   '※1、2
    メッセージ = 秒数 & "秒間だけ表示します。"  '※2
    タイトル = "自動的に閉じるメッセージボックス" '※2
    スタイル = vbInformation                    '※3
    With CreateObject("WScript.Shell")
        .Popup メッセージ, 秒数, タイトル, スタイル
    End With
End Sub
'---------------------------------------------------------------------------------
Sub 念のためのメッセージボックス()
    秒数 = 10                                   '※1、2
    メッセージ = 秒数 & "秒以内に指示がなければ、自動的に開始します。" & _
        vbCr & "中止しますか?"                 '※2
    タイトル = "念のためのメッセージボックス"   '※2
    スタイル = vbYesNo + vbExclamation          '※3
    With CreateObject("WScript.Shell")
        応答 = .Popup(メッセージ, 秒数, タイトル, スタイル)
    End With
    If 応答 = vbYes Then                        '※4
        MsgBox "中止しました。", , "すぐマク"
        Exit Sub
    End If
End Sub
'=================================================================================
<コメント>
※1 秒数を指定する (ユーザーがボタンを操作するとそのときに閉じられる)
※2 秒数、タイトルは各々省略可能 (メッセージは省略不可)
※3 スタイルにはアイコンとボタンを組み合わせて指定できる (メッセージボックスのコメント※1 参照)
※4 クリックされたボタンを調べる方法はメッセージボックスと同じ

4) 組み込みダイアログボックスの活用 このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 組み込みダイアログボックスを表示する_ブック関係()
    Application.Dialogs(xlDialogOpen).Show      'ファイルを開く
    Application.Dialogs(xlDialogOpen).Show arg3:=True 'ファイルを読み取り専用で開く
End Sub
'---------------------------------------------------------------------------------
Sub 組み込みダイアログボックスを表示する_名前を付けて保存関係()
    Application.Dialogs(xlDialogSaveAs).Show    '名前を付けて保存
    Application.Dialogs(xlDialogSaveAs).Show arg1:="BBB" '※2
    Application.Dialogs(xlDialogSaveAs).Show arg2:=43    '※2
End Sub
'=================================================================================
Sub 組み込みダイアログボックスを表示する_印刷関係()
    Application.Dialogs(xlDialogPageSetup).Show 'ページ設定
    Application.Dialogs(xlDialogPrint).Show     '印刷
End Sub
'=================================================================================
Sub 組み込みダイアログボックスを表示する_画面関係()
    Application.Dialogs(xlDialogDisplay).Show   '画面設定
    Application.Dialogs(xlDialogZoom).Show      'ズーム
    Application.Dialogs(xlDialogFontProperties).Show 'セルの書式設定
    Application.Dialogs(xlDialogFormatFont).Show 'フォントの設定
End Sub
'=================================================================================
Sub 組み込みダイアログボックスを表示する_その他()
    Application.Dialogs(xlDialogFormulaFind).Show '検索
    Application.Dialogs(xlDialogFormulaReplace).Show '置換
    Application.Dialogs(xlDialogSort).Show      '並べ替え
End Sub
'=================================================================================
<コメント>
※1 ワークシートをアクティブにしてから、上記のダイアログボックスを表示する。
※2 引数 1…ファイル名、2…ファイルの種類、3…読み取りパスワード、
   4…バックアップファイルを作成、5…書き込みパスワード、6…読み取り専用を推奨
※3 下表の項目をクリックするとサンプルが見れます
ブック関係 印刷関係 画面関係 その他
ファイルを開く ページ設定 画面設定 検索
読み取り専用で開く 印刷 ズーム 置換
名前を付けて保存 プリンタの設定 セルの書式設定 並べ替え
. . フォントの設定 .
※3 上表以外のサンプルは、下記によりダウンロードしたブックのセルをダブルクリックすれば、実物を
表示して見ることができます。
サンプルブックのダウンロードは ここをクリック (YNxv210_Dialogs.xls 143KB)
※ 一旦、ブックをハードディスクに保存し、開き直してから実行してください。


5) 組み込みダイアログボックス (Windows版専用) このページのトップへ もくじへ 使用可能なExcelのバージョン
'---------------------------------------------------------------------------------
Sub ダイアログボックスを表示する_プリンターの設定()
    Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
'---------------------------------------------------------------------------------
<コメント>
※1 ワークシートをアクティブにしてから、上記のダイアログボックスを表示する。
※2 ここをクリックするとサンプルが見れます


6) 制御文字で整形する このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub キャリッジリターンで改行して表示する()
    MsgBox "長いメッセージは" & Chr(13) & "Chr(13) で" & Chr(13) & "改行できます"
End Sub
'---------------------------------------------------------------------------------
Sub タブで整形して表示する()
    メッセージ = "りんご" & Chr(9) & "1個" & Chr(13) & "バナナ" & Chr(9) & "1房"
    タイトル = "タブで整形して表示しています"
    MsgBox メッセージ, , タイトル
End Sub
'=================================================================================
<コメント>
※1 制御文字のコードと定数は こちら


7) 特定の警告やメッセージを表示しない このページのトップへ もくじへ 使用可能なExcelのバージョン
'=================================================================================
Sub 特定の警告やメッセージを表示しないようにする()
    Application.DisplayAlerts = False           '※1
End Sub
'=================================================================================
<コメント>
※1 True:マクロの実行中に自動的に表示される特定の警告やメッセージを表示する

Excel VBA Macro


























VBAの本 こちら











































マクロ本 こちら











































Excel本 こちら