Accessのフォームで[閉じる]ボタンを設置しても、メッセージボックスは表示されずにフォームは閉じられてしまいます。
[閉じる]ボタンをクリックしたらメッセージボックスを表示して、[はい]のボタンが押されたときのみフォームを閉じるように設定することができます。
埋め込みマクロで解説します。
ここでは[閉じる]ボタンで解説しますが、他のコマンド実行時でも設定できますので活用してみてください。
![[閉じる]ボタンをクリックした時のメッセージボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox12.png)
フォームに[閉じる]ボタンを設置
フォームに[閉じる]ボタンを作成します。
ここで使用するフォームは、以下の記事で作成したものです。
-
クエリの抽出条件にテキストボックスの値を設定してレコードを抽出
Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...
フォームをデザインビューで開いて、[フォームデザイン]タブの[コントロール]グループにある[ボタン]をクリックしてボタンを挿入します。
[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。
![[フォームデザイン]タブの[ボタン]](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox02.png)
コマンドボタンのプロパティシートを表示して、[書式]タブの[標題]にボタンに表示したい名前を入力します。
ここでは、[閉じる]にします。
[F4]キーを押すと、プロパティシートを表示できます。

参考ここでは、ウィンドウの表示は、既定の[タブ付きドキュメント]にしています。
-
[タブ付きドキュメント]と[重ねて表示]の違いと切り替え方法
Access 2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 以前からAccessを使っている方 ...
埋め込みマクロの作成
コマンドボタンを選択して、プロパティシートを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックします。
![[イベント]タブの[クリック時]の[ビルダー選択]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox04.png)
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
![[ビルダーの選択]ダイアログボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/access2016-4.png)
マクロデザインが表示されます。
[新しいアクションの追加]の▼をクリックして、[If]を選択します。
![[新しいアクションの追加]で[If]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox07.png)
テキストボックスに以下のように入力します。
MsgBox("フォームを閉じますか?",4+48+0,"確認")=6
または、以下のように入力します。
MsgBox("フォームを閉じますか?",52,"確認")=6

条件式のすぐ下にある[新しいアクションの追加]から[ウィンドウを閉じる]を選択します。
![[新しいアクションの追加]から[ウィンドウを閉じる]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox09.png)
これでメッセージボックスの戻り値が[6]であれば、アクション[ウィンドウを閉じる]を実行するということになります。
[オブジェクトの種類]の指定を省略した場合は、アクティブウィンドウが閉じられます。
“CloseWindow/ウィンドウを閉じる“ マクロ アクション - Microsoft サポート(Microsoft)
以下のようになっていることを確認して、上書き保存して閉じます。
![[マクロデザイン]の[上書き保存]と[閉じる]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox10.png)
コマンドボタンのクリック時のプロパティには、[埋め込みマクロ]と表示されています。

[F5]キーを押して、フォームビューに切り替えます。
[閉じる]ボタンをクリックすると、以下のメッセージボックスが表示されます。
![[閉じる]ボタンをクリックした時のメッセージボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox11.png)
先に[ウィンドウを閉じる]ボタンを設置していた場合
ウィンドウを閉じるボタンは、コマンドウィザードでも作成できます。
コマンドボタンウィザードで[フォームの操作]と[フォームを閉じる]を選択すると、コマンドボタンを作成できます。
-
コマンドボタンウィザードを使用したボタンの作成
Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...
先にコマンドボタンを作成していても、[If]の条件式を追加して設定することができます。
以下は、コマンドボタンウィザードで[フォームを閉じる]を選択して作成したボタンのマクロツールです。
![マクロデザインの[ウィンドウを閉じる]](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox14.png)
[新しいアクションの追加]で[If]を選択して、条件式を入力します。
そして、[If]を[上へ移動]ボタンをクリックして、上へ移動します。
![[IF]の条件式を上へ移動](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox15.png)
以下のようになりますので、[ウィンドウを閉じる]の[上へ移動]ボタンをクリックして、上へ移動します。
![[ウィンドウを閉じる]アクションを上へ移動](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox18.png)
以下のようになれば、OKです。
![[マクロデザイン]タブのアクションの順序](https://hamachan.info/WordPress2019/wp-content/uploads/2021/10/accessmsgbox17.png)
参考マクロアクションは、アクションカタログから既存のマクロアクションを追加できます。別のフォームで同じマクロアクションを使用したい場合は、再利用するのが効率的です。
-
マクロツールで既存のアクションをコピーして活用(再利用)するには
Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...
MsgBox関数について
MsgBox関数は、メッセージボックスを表示して、クリックされたボタンによる戻り値によってアクションを実行します。
詳細は、以下のMicrosoftの記事を参照してください。
MsgBox 関数 - Microsoft サポート(Microsoft)
MsgBoxの構文は以下のようになります。[メッセージ]以外は省略可能です。
MsgBox(メッセージ,ボタンやアイコン,タイトル,ヘルプファイル,ヘルプテキスト)

[ボタンやアイコン]は、以下のように[ボタンの種類]+[アイコンの種類]+[標準のボタンの指定]で合計値を指定しても構いません。
MsgBox("フォームを閉じますか?",52,"確認")=6
メッセージボックスで見ると、以下のようになります。

ボタンの種類
| 数値 | 種類 |
| 0 | [OK] |
| 1 | [OK][キャンセル] |
| 2 | [中止][再試行][無視] |
| 3 | [はい][いいえ][キャンセル] |
| 4 | [はい][いいえ] |
| 5 | [再試行][キャンセル] |
アイコンの種類
| 数値 | 種類 |
| 16 | |
| 32 | |
| 48 | |
| 64 |
標準のボタンの指定
| 数値 | 種類 |
| 0 | 第1ボタン |
| 256 | 第2ボタン |
| 512 | 第3ボタン |
標準のボタンとは、メッセージボックスを表示したときに選択された状態になるボタンのことです。
戻り値
| 数値 | 種類 |
| 1 | [OK] |
| 2 | [キャンセル] |
| 3 | [中止] |
| 4 | [再試行] |
| 5 | [無視] |
| 6 | [はい] |
| 7 | [いいえ] |
戻り値が指定された値以外であれば、アクションは何も行わずにメッセージボックスを閉じます。
参考MsgBox構文で省略できないメッセージのみにすると、以下のようなメッセージボックスになります。

ただし、データベースのアプリケーションタイトルを付けている場合は、それがメッセージボックスの[タイトル]となります。

アプリケーションタイトルについては、以下で解説しています。
-
アプリケーションアイコンの設定(フォームやレポートにも表示)
Accessのオプションにある[アプリケーションアイコン]で画像を設定すると、タスクバーの標準アイコンを設定したアイコン(画像)に変更するこ ...
メッセージボックスは、アプリケーションパーツから作成することもできます。
-
アプリケーションパーツからメッセージボックスなどのフォームを作成
Access 2010では、[作成]タブにある[アプリケーションパーツ]から、テンプレートを選択してフォームなどを簡単に作成することができま ...