ACCESS VBA msgbox関数の使い方
ACCESSのフォームで利用者にメッセージを表示したい時に使用するのがmsgbox関数です。
非常に初歩的な機能ながら、とても便利なこの機能の使い方をご説明します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。
目次
構文
msgbox関数は以下の構文で使用します。
MsgBox ( 表示する文字 [, ボタンの数と種類 ] [, タイトル ] [, ヘルプファイルを識別する文字式 ] [, ヘルプ番号 ] )
上記の内、[]になっているものは省略可能な引数です。
特にヘルプファイルを識別する文字式、ヘルプ番号はほぼ使用しませんので、表示する文字、ボタンの数と種類、タイトルまでを覚えておけば十分でしょう。
ボタンの数と種類の設定
ボタンの数と種類は以下の設定になっています。
「定数」は引数を文字で指定する場合に使用し、「値」は数値で指定する場合に使用します。
「値」ではなかなか覚えられないので、慣れないうちは「定数」を使うことが多いでしょう。
「定数」であればACCESS側でナビゲーションもでますしね。
定数 | 値 | 説明 |
vbOKOnly | 0 | [OK] ボタンのみを表示します。 |
vbOKCancel | 1 | [OK] ボタンと [キャンセル] ボタンを表示します。 |
vbAbortRetryIgnore | 2 | [中止] ボタン、[再試行] ボタン、[無視] ボタンを表示します。 |
vbYesNoCancel | 3 | [はい] ボタン、[いいえ] ボタン、[キャンセル] ボタンを表示します。 |
vbYesNo | 4 | [はい] ボタンと [いいえ] ボタンを表示します。 |
vbRetryCancel | 5 | [再試行] ボタンと [キャンセル] ボタンを表示します。 |
vbCritical | 16 | 重要メッセージ アイコンを表示します。 |
vbQuestion | 32 | 確認メッセージ アイコンを表示します。 |
vbExclamation | 48 | 警告メッセージ アイコンを表示します。 |
vbInformation | 64 | 情報メッセージ アイコンを表示します。 |
利用例
それでは、実際の利用例を4つのパターンで見ていきましょう。
エラーメッセージ
最初はエラーメッセージを出すケースです。
VBAのコードは下記のように記述しました。
MsgBox "入力値が不適切です。", vbOKOnly + vbCritical, "入力値不備"
実際に表示されるメッセージがこちらです。
上記のコードをご覧いただいて分かるように、ボタンの数と種類は複数設定すること可能です。
今回はエラーを通知することが目的なのでボタンはOKのみで、vbCriticalを使うことでエラーだと分かるようにしています。
赤いバツ印は、vbCriticalを選択すると自動で表示されます。
警告メッセージ
エラーではないが、ユーザーに注意を促す際に使用するのが警告メッセージです。
今回は、処理後に別の処理を指示するメッセージを作成しました。
MsgBox "本処理後に必ず、A処理を行ってください。", vbOKOnly + vbExclamation, "事後処理"
実際に表示されるメッセージがこちらです。
警告の場合もボタンはOKのみにすることが多いです。
確認メッセージ
続いてよく利用するのが確認メッセージです。
利用者が間違えやすい操作や、やり直しのきかない操作をする際にメッセージを出すことで確認ができます。
If vbNo = MsgBox("処理を実施してよろしいですか?", vbYesNo + vbQuestion, "処理確認") Then
Exit Sub
End If
表示されるメッセージはこちらです。
今回は中断ができるように、ボタンを2種類表示します。そのためにvbYesNoを使用しました。
また、確認メッセージであることが分かるようにvbQuestionを使っています。
更に「いいえ」が押された場合は処理を中断するように、IF文で条件分岐をさせています。
If vbNo = MsgBox(〇〇〇〇)、もしくは If vbYes = MsgBox(〇〇〇〇)という構文はmsgbox関数の戻り値を元に処理を変更するために非常によく使われますので覚えておきましょう。
今回はvbNoが選択された場合は、Exit Subで処理を中断するようにしています。
情報メッセージ
最後に情報メッセージです。
ACCESSで大量のデータ処理を行う際はユーザーに待機時間が発生します。
そうした際に処理完了をお知らせするメッセージを表示する場合があります。
MsgBox "処理が完了しました。", vbOKOnly + vbInformation, "処理完了"
表示されるメッセージはこちらです。
こちらは単なる通知なので、ボタンはOKのみとなります。
msgbox活用TIPS
ここまででmsgbox関数の基本的な使い方はご説明しました。
以降はちょっと便利な使い方のご紹介です。
メッセージの改行
メッセージが長くなってしまった場合に改行を入れることが可能です。
改行には改行コード、vbCrLfを使用します。
MsgBox "処理が完了しました。" & vbCrLf & "お疲れ様でした。", vbOKOnly + vbInformation, "処理完了"
表示されるメッセージはこちらです。
vbCrLfを使用する際は、各行のテキストを””で囲って、それらをvbCrLfと&でつなぎましょう。
メッセージに変数を入れる
メッセージの一部に変数を利用して、変動させることも可能です。
よく利用するのは処理完了メッセージで、処理したデータの件数を表示する場合ですね。
MsgBox "処理が完了しました。" & vbCrLf & "処理件数は" & syori_count & "件です。", vbOKOnly + vbInformation, "処理完了"
表示されるメッセージはこちらです。
今回はsyori_countという変数を用意しました。
上記の例ではコードには記載がないですが、syori_countが20だったということです。
変数をLoop処理を行うたびに1ずつ増やしていき、最後のメッセージに処理件数を表示するという方法はよく使われます。
以上、msgbox関数の使い方をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。