【簡単エクセルマクロ・VBA】メッセージボックス|MsgBox|エクセルオブジェクトの操作 #001

アフィリエイト広告を利用しています。
QRコード
【QRコード】PC<--->スマホの切り替えにご利用ください
運営者・ポテ

いつもありがとうございます。

これは、ノンプログラマー向けのエクセルマクロVBA解説シリーズです。

本稿では、メッセージボックス(MsgBox)を操作する方法を解説いたします。

マクロを作成する中で、ユーザーに情報を伝えたり、選択を求めたりする場面は頻繁にあります。

そんなときに欠かせないのが、MsgBox 関数です。

例えば、データの入力ミスを知らせるアラートを表示したり、操作の確認を求めるダイアログを表示したりと、その用途は多岐にわたります。

マクロを作成する上で知っておくべき必須の機能と言えます。

非常に使用する機会が多い機能ですが、実装方法はシンプルです。

本稿ではこの便利な機能の基本構文や具体例を解説いたします。

ことばの意味
  • ノンプログラマー
    プログラミングを本職としない人たちのことです。
  • マクロ
    VBAを使って作成される「機能」のことです。
  • VBA
    Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
筆者の記事関連経験/資格
  • VBA使用経験 約20年
    製品開発・生産技術系のフィールドで、実務に使用するマクロを多数作成してきました。
  • Python 3 エンジニア認定基礎試験 合格
    一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。

VBAにおけるエクセルオブジェクト操作の全体像

VBAにおける「エクセルオブジェクトの操作」の全体像は以下の記事で解説しております。

本稿では「エクセルオブジェクトの操作」の一部である「メッセージボックス」を解説いたします。

VBAでメッセージボックス(MsgBox)を操作する方法

基本構文

メッセージボックスの基本構文を以下に示します。

MsgBox(prompt, [buttons], [title], [helpfile], [context])

それぞれの引数の意味は下表のようになっています。

引数名説明省略
可否
promptメッセージボックスに表示するテキストです。必須
buttonsメッセージボックスに表示するボタンの種類やアイコンを指定する数値です。省略可   
titleメッセージボックスのタイトルバーに表示するテキストです。省略可
helpfileメッセージボックスのヘルプボタンをクリックしたときに表示されるヘルプファイルのパスです。省略可
contextヘルプファイル内の特定のトピックを指定するためのコンテキスト番号です。これは、ユーザーがメッセージボックスのヘルプボタンをクリックしたときに表示されるヘルプトピックを決定するために使用されます。省略可
MsgBox の引数

尚、buttons には下表の定数が指定できます。

buttons の定数名説明
vbOKOnlyOKボタンのみを表示します。
vbOKCancelOKボタンとキャンセルボタンを表示します。
vbAbortRetryIgnore中止、再試行、無視ボタンを表示します。
vbYesNoCancelはい、いいえ、キャンセルボタンを表示します。
vbYesNoはい、いいえボタンを表示します。
vbRetryCancel再試行、キャンセルボタンを表示します。
vbCritical警告や重要な情報を示す感嘆メッセージアイコン(通常は黄色の三角形に感嘆符)を表示します。
vbQuestion警告や重要な情報を示す感嘆メッセージアイコン(通常は黄色の三角形に感嘆符)を表示します。
vbExclamation警告や重要な情報を示す感嘆メッセージアイコン(通常は黄色の三角形に感嘆符)を表示します。
vbInformation一般的な情報や通知を示す情報メッセージアイコン(通常は青い円に「i」)を表示します。
vbDefaultButton1最初のボタンをデフォルトボタンに設定します。例えば、OKボタンとキャンセルボタンがある場合、OKボタンがデフォルトボタンになります
vbDefaultButton22番目のボタンをデフォルトボタンに設定します。例えば、OKボタンとキャンセルボタンがある場合、キャンセルボタンがデフォルトボタンになります。
vbDefaultButton33番目のボタンをデフォルトボタンに設定します。例えば、はい、いいえ、キャンセルボタンがある場合、キャンセルボタンがデフォルトボタンになります。
vbDefaultButton44番目のボタンをデフォルトボタンに設定します。例えば、複数のカスタムボタンがある場合、4番目のボタンがデフォルトボタンになります。
vbApplicationModalアプリケーションモーダルメッセージボックスを表示します。
vbSystemModalシステムモーダルメッセージボックスを表示します。これは、メッセージボックスが表示されている間、他のすべてのアプリケーションが一時停止されることを意味します。
vbMsgBoxHelpButtonヘルプボタンを表示します。
vbMsgBoxSetForegroundメッセージボックスを前面に表示します。
vbMsgBoxRightテキストを右揃えにします。
vbMsgBoxRtlReadingテキストを右から左に読みます。
Buttons で指定できる定数
ことばの意味

  • 引数・・・メソッドや関数、プログラムを制御するために渡す値やオブジェクトのことです。

具体例と解説

MsgBox関数の具体例とマクロ実行結果を以下に示します。

Sub Sample()


    ' 例1: シンプルなメッセージボックス
    MsgBox "これはシンプルなメッセージボックスです。"


    ' 例2: タイトル付きのメッセージボックス
    MsgBox "これはタイトル付きのメッセージボックスです。", , "タイトル"


    ' 例3: ボタンとアイコンを指定したメッセージボックス
    MsgBox "保存しますか?", vbYesNo + vbQuestion, "確認"


    ' 例4: デフォルトボタンを指定したメッセージボックス
    MsgBox "操作を続行しますか?", vbOKCancel + vbDefaultButton2, "確認"


End Sub

ボタンの定数は、例3や4のように、各定数を"+"でつなぎ、複数の値を設定することができます。

ユーザーから応答を受け取って処理を続ける場合には、以下のようにコードを記述します。

Sub Sample2()


' 変数宣言
Dim response As VbMsgBoxResult ' ユーザーの応答を格納する変数


' メッセージボックスを表示し、ユーザーの応答を取得
response = MsgBox("操作を続行しますか?", vbOKCancel + vbDefaultButton2, "確認")


' ユーザーがOKをクリックしたかどうかを確認
If response = vbOK Then
    
    ' ユーザーがOKをクリックした場合の処理
    MsgBox "操作を続行します。"

Else
    
    ' ユーザーがキャンセルをクリックした場合の処理
    MsgBox "操作を中止しました。"
End If


End Sub

解説します。

' 変数宣言
Dim response As VbMsgBoxResult ' ユーザーの応答を格納する変数

冒頭のこの部分は変数の宣言です。これにより変数 response は As 以降で指定したデータ型のデータを格納できるようになります。

' メッセージボックスを表示し、ユーザーの応答を取得
response = MsgBox("操作を続行しますか?", vbOKCancel + vbDefaultButton2, "確認")

変数 response にユーザーからの応答を格納します。

' ユーザーがOKをクリックしたかどうかを確認
If response = vbOK Then
    
    ' ユーザーがOKをクリックした場合の処理
    MsgBox "操作を続行します。"

Else
    
    ' ユーザーがキャンセルをクリックした場合の処理
    MsgBox "操作を中止しました。"
End If

If ステートメントで条件を分岐しています。ユーザーの応答内容によって実行する処理が変わります。

おわりに

運営者・ポテ

ご覧いただきありがとうございました。

本稿では、「エクセルオブジェクトの操作」の中の「メッセージボックスを操作する方法」を解説いたしました。

お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。

皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。

VBAプログラミングスキルアップのための参考情報

ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。

VBAプログラミングのスキルアップ

学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。



入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。

私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。

>>Amazon で VBA の書籍をでチェックする

>>楽天市場 で VBA の書籍をチェックする

>>Yahoo!ショッピングでVBAの書籍をチェックする


VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。


こちらの記事でも紹介しております。もしよろしければご覧ください。

QRコード
【QRコード】PC<--->スマホの切り替えにご利用ください

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です