前回までの内容で初心者向けの解説は一応卒業しました!
今回からは、これは知っておいた方が良いだろうと思う内容について詳しく解説していくようにしていきたいと思います(^^)
その1回目は、MsgBox関数について詳しく解説します!
レベルアップ目指して今回もしっかり勉強しま~す(^^)
よろしくお願いしますm(_ _)m
前回のおさらいはこちらの記事です(^^)/ 下のカードをクリックすれば開きます
前回記事でわかったことは
・GoTo ステートメントの使い方
・GoTo ステートメントは便利だけど多用は禁物
【この記事でわかることは】
・MsgBox関数の使い方がわかります
・戻り値やボタンやアイコンの定数と文字列に使用する定数がわかります
MsgBox 関数とは
ダイアログ ボックスにメッセージを表示し、ユーザーがボタンをクリックするのを待機し、ユーザーがどのボタンをクリックしたかを示す整数を返します
MsgBox 関数の構文
構文
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
指定項目 | 説明 |
---|---|
Prompt | 必須です。 ダイアログ ボックスにメッセージとして表示される文字列式を指定します |
buttons | 省略可能。 表示させるボタンの種類やアイコンのスタイル等を指定します |
title | 省略可能。 ダイアログ ボックスのタイトル バーに表示される文字列式します title が省略された場合、タイトル バーにはアプリケーションの名前が表示されます |
helpfile | 省略可能。 ダイアログボックスの[ヘルプ]ボタンから開くヘルプファイルを指定します 引数helpfileを指定する場合は、引数contextも必ず指定する必要があります |
context | 省略可能。 ヘルプ作成者によって適切なヘルプ トピックに割り当てられた ヘルプ コンテキスト番号を示す数式を指定します |
MsgBox について解説
一番単純な使い方は、もうお馴染み(^^)単にメッセージを表示するだけに使用する方法です
MsgBox ”メッセージ!”
これは、Prompt だけ指定していて、buttons の指定が無いので規定値の 0 となっています
MsgBox関数の本来の機能は、ダイアログボックスにメッセージとボタンを表示し、どのボタンが押されたかを示す整数型の数値を返すというものです
prompt 文字列の改行方法
・引数 prompt に指定できる文字数は、使用する文字の幅によって異なりますが、最大(1バイト文字の場合)で約1024文字です
・引数 prompt の中で文字列が複数の行にまたがる場合の改行方法は、次の VisualBasic定数 か Chr関数 を使います
VB定数 | Chr関数 | 説明 |
---|---|---|
vbCrLf | Chr(13) + Chr(10) | キャリッジ リターン文字とライン フィード文字の組み合わせ |
vbCr | Chr(13) | キャリッジ リターン文字 |
vbLf | Chr(10) | ライン フィード文字 |
・行と行の間にキャリッジ リターン文字、ライン フィード文字、またはキャリッジ リターン文字とライン フィード文字の組み合わせを使用します
・文字列の接合は、 & (アンパサンド) を使います
・キャリッジリターン+ラインフィールドの使用例はつぎのとおりです(お好みでどうぞ)
Chr関数使用例: “長い文字列” & Chr(13) + Chr(10) & “長い文字列の続き”
VB定数 使用例: “長い文字列” & vbCrLf & “長い文字列の続き”
引数
引数 buttons には、次の定数を使用できます(画像クリックで拡大表示します)
・最初の値のグループ (0-5) はダイアログ ボックスに表示されるボタンの数と種類を示します
・2 番目のグループ (16、32、48、64) はアイコンのスタイルを示します
・3 番目のグループ (0、256、512) は既定のボタンを決定します
・4 番目のグループ (0、4096) は、メッセージ ボックスのモダリティを決定します
それぞれの値を合計して buttons 引数の最終的な値を作成する際は、各グループから値を 1 つだけ使用します (※ 注意:値の代わりにVisualBasic定数を使用できます)
例えば、[はい] ボタンと[いいえ] ボタンを表示し、[警告メッセージ] アイコンを表示するには、引数 buttons に、定数vbYesNo と 定数vbExclamation の合計(vbYesNo + vbExclamation)を指定します
MsgBox 関数の戻り値
定数 | 値 | 説明 |
---|---|---|
vbOK | 1 | [OK] ボタンが押された時の戻り値 |
vbCancel | 2 | [Cancel] ボタンが押された時の戻り値 |
vbAbort | 3 | [中止] ボタンが押された時の戻り値 |
vbRetry | 4 | [再試行] ボタンが押された時の戻り値 |
vbIgnore | 5 | [無視] ボタンが押された時の戻り値 |
vbYes | 6 | [はい] ボタンが押された時の戻り値 |
vbNo | 7 | [いいえ] ボタンが押された時の戻り値 |
MsgBox 関数の使用例(サンプルコード)
Option Explicit
'MsgBox関数の使用例サンプル
Sub MsgBoxSample()
Dim re As Long
Dim MsgString As String
MsgString = "メッセージボックス(MsgBox関数)の戻り値を" & vbCrLf & _
"確認するテストを実行します!" & vbCrLf & _
"ボタンを押してみてください!"
'vbOKOnly + vbInformation のTEST
re = MsgBox(MsgString, vbOKOnly + vbInformation)
If re = 1 Then
MsgBox "「OK」ボタンが押されました! 戻り値は [" & re & "] です!"
End If
'vbOKCancel + vbInformation のTEST
re = MsgBox(MsgString, vbOKCancel + vbInformation)
If re = 1 Then
MsgBox "「OK」ボタンが押されました! 戻り値は [" & re & "] です!"
ElseIf re = 2 Then
MsgBox "「キャンセル」ボタンが押されました! 戻り値は [" & re & "] です!"
Else
MsgBox "その他ボタンが押されました! 戻り値は [" & re & "] です!"
End If
'vbAbortRetryIgnore + vbCritical のTEST
re = MsgBox(MsgString, vbAbortRetryIgnore + vbCritical)
Select Case re
Case 3
MsgBox "「中止」ボタンが押されました! 戻り値は [" & re & "] です!"
Case 4
MsgBox "「再試行」ボタンが押されました! 戻り値は [" & re & "] です!"
Case 5
MsgBox "「無視」ボタンが押されました! 戻り値は [" & re & "] です!"
Case Else
MsgBox "その他ボタンが押されました! 戻り値は [" & re & "] です!"
End Select
'vbYesNoCancel + vbExclamation のTEST
re = MsgBox(MsgString, vbYesNoCancel + vbExclamation)
If re = 6 Then
MsgBox "「はい」ボタンが押されました! 戻り値は [" & re & "] です!"
ElseIf re = 7 Then
MsgBox "「いいえ」ボタンが押されました! 戻り値は [" & re & "] です!"
ElseIf re = 2 Then
MsgBox "「キャンセルボタン」が押されました! 戻り値は [" & re & "] です!"
Else
MsgBox "その他ボタンが押されました! 戻り値は [" & re & "] です!"
End If
'vbYesNo + vbInformation のTEST
re = MsgBox(MsgString, vbYesNo + vbInformation)
If re = 6 Then
MsgBox "「はい」ボタンが押されました! 戻り値は [" & re & "] です!"
ElseIf re = 7 Then
MsgBox "「いいえ」ボタンが押されました! 戻り値は [" & re & "] です!"
Else
MsgBox "その他ボタンが押されました! 戻り値は [" & re & "] です!"
End If
'vbRetryCancel + vbQuestion のTEST
re = MsgBox(MsgString, vbRetryCancel + vbQuestion)
If re = 4 Then
MsgBox "「再試行」ボタンが押されました! 戻り値は [" & re & "] です!"
ElseIf re = 2 Then
MsgBox "「キャンセル」ボタンが押されました! 戻り値は [" & re & "] です!"
Else
MsgBox "その他ボタンが押されました! 戻り値は [" & re & "] です!"
End If
End Sub
・6個の事例(ボタン+アイコン)でメッセージを表示します
・各サンプルメッセージで押されたボタンの種類と戻り値をメッセージ表示します
・サンプルコードは If ステートメントで条件分岐していますが、一部 Select Case ステートメントを使って分岐しています。状況に応じて使い分けてください
まとめ(おわりに)
は~い! MsgBox 関数の説明はここで終了です(^^)/
理解できましたか?これは良く使うのでしっかり覚えてくださいね!
では、次回は MsgBox に似ている InputBox について解説します!
それまで準備しますので少し待っていてね(^^)/
できれば、予習しておいてね!
はい! よくわかりました(^^)文字列の改行についても理解できました。
さっそく使ってみたいと思います(^^ゞ
InputBox ですか? わかりました。自習してみます(^^;
まとめと感想など
・マクロ(VBA)を実行する際は必ずバックアップを取ってから行ってください!
・マクロ(VBA)は実行後にファイルを保存すると元に戻すことはできません!
・実行後にファイルを保存せず終了すれば、実行前に戻すことができます!
★★★ ランキング参加中! クリックしてね(^^)/ ★★★
今後の記事について
今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
当面は「初心者向けマクロVBA」の記事を継続して書いていきます
【検討中の今後の記事内容は・・・・・】
・実務に役立つものを提供できるよう現在検討中です
・その他雑記的に「小ネタなどいろいろ」・・・・・
・今後の記事にもご期待ください(^^)/
記事のサンプルファイルをダウンロードできます
この記事のサンプルはこのリンク先からダウンロードできます!
過去の記事で使用したサンプルファイルがダウンロードできるページを設置しています
こちら(このリンク先)からご利用ください
・MsgBox 関数の使い方がわかりました
・ボタンやアイコンの定数についてや戻り値の使い方がわかりました
・文字列の改行に使用するには定数を使うことがわかりました