Access 2019

メッセージボックスで[はい]を選んだときだけフォームを閉じる方法

投稿日 2021年10月12日   更新日 

Accessのフォームで[閉じる]ボタンを設置してもメッセージボックスは表示されず、フォームはそのまま閉じられてしまいます。

[閉じる]ボタンをクリックしたらメッセージボックスを表示し、[はい]が押されたときのみフォームを閉じるように設定できます。

埋め込みマクロでの手順と、MsgBox関数についても解説します。

ここでは[閉じる]ボタンで解説しますが、他のコマンド実行時でも同様に設定できます。

[閉じる]ボタンをクリックした時のメッセージボックス

フォームに[閉じる]ボタンを設置

フォームに[閉じる]ボタンを作成します。

ここで使用するフォームは、以下の記事で作成したものです。

クエリの抽出条件にフォームのテキストボックスを使う方法

Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...

フォームをデザインビューで開いて、[フォームデザイン]タブの[コントロール]グループにある[ボタン]をクリックしてボタンを挿入します。

[コマンドボタンウィザード]が表示されたら、[キャンセル]をクリックして閉じます。

[フォームデザイン]タブの[ボタン]

コマンドボタンのプロパティシートを表示して、[書式]タブの[標題]に、ボタンへ表示する名前を入力します。

ここでは[閉じる]と入力します。

[F4]キーを押すとプロパティシートを表示できます。

コマンドボタンのプロパティシート

参考ここでは、ウィンドウの表示は、既定の[タブ付きドキュメント]にしています。

[タブ付きドキュメント]と[重ねて表示]の違いと切り替え方法

Access 2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 以前からAccessを使っている方 ...

埋め込みマクロの作成

コマンドボタンを選択して、プロパティシートを表示します。

[イベント]タブの[クリック時]にある[ビルダー選択]([…])をクリックします。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン

[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択して、[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックス

マクロデザインが表示されます。

[新しいアクションの追加]の▼をクリックして、[If]を選択します。

[新しいアクションの追加]で[If]を選択

テキストボックスに次のように入力します。

MsgBox("フォームを閉じますか?",4+48+0,"確認")=6

または、次のように入力します。

MsgBox("フォームを閉じますか?",52,"確認")=6

Ifの条件式

条件式のすぐ下にある[新しいアクションの追加]から[ウィンドウを閉じる]を選択します。

[新しいアクションの追加]から[ウィンドウを閉じる]を選択

これでメッセージボックスの戻り値が[6]の場合、アクション[ウィンドウを閉じる]が実行されます。

[オブジェクトの種類]の指定を省略すると、現在表示中のウィンドウが閉じられます。

“CloseWindow/ウィンドウを閉じる“ マクロ アクション - Microsoft サポート(Microsoft)

設定が正しく入力されていることを確認し、上書き保存して閉じます。

[マクロデザイン]の[上書き保存]と[閉じる]ボタン

コマンドボタンのクリック時のプロパティには、[埋め込みマクロ]と表示されています。

コマンドボタンのクリック時のプロパティ

[F5]キーを押してフォームビューに切り替えます。

[閉じる]ボタンをクリックすると、以下のメッセージボックスが表示されます。

[閉じる]ボタンをクリックした時のメッセージボックス

先に[ウィンドウを閉じる]ボタンを設置していた場合

ウィンドウを閉じるボタンは、コマンドウィザードでも作成できます。

コマンドボタンウィザードで[フォームの操作]と[フォームを閉じる]を選択すると、コマンドボタンを作成できます。

コマンドボタンウィザードを使用したボタンの作成

Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...

先にコマンドボタンを作成していても、[If]の条件式を追加できます。

以下は、コマンドボタンウィザードで[フォームを閉じる]を選択して作成したボタンのマクロツールです。

マクロデザインの[ウィンドウを閉じる]

[新しいアクションの追加]で[If]を選択して、条件式を入力します。

そして、[If]を選択し、[上へ移動]ボタンをクリックします。

[IF]の条件式を上へ移動

以下のようになりますので、[ウィンドウを閉じる]を選択し、[上へ移動]ボタンをクリックします。

[ウィンドウを閉じる]アクションを上へ移動

この状態になれば完了です。

[マクロデザイン]タブのアクションの順序

参考マクロアクションは、アクションカタログから既存のマクロアクションを追加できます。別のフォームで同じマクロアクションを使用したい場合は、再利用するのが効率的です。

マクロツールで既存のアクションをコピーして活用(再利用)するには

Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...

MsgBox関数について

MsgBox関数は、メッセージボックスを表示して、クリックされたボタンの戻り値に応じてアクションを実行します。

詳細は、以下のMicrosoftの記事を参照してください。

MsgBox 関数 - Microsoft サポート(Microsoft)

MsgBoxの構文は以下のようになります。[メッセージ]以外は省略可能です。

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構文で省略できないメッセージのみにすると、以下のようなメッセージボックスになります。

MsgBoxメッセージのみの場合

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

MsgBoxメッセージのみの場合(アプリケーションタイトルがタイトル)

アプリケーションタイトルについては、以下で解説しています。

アプリケーションアイコンの設定(フォームやレポートにも表示)

Accessのオプションにある[アプリケーションアイコン]で画像を設定すると、タスクバーの標準アイコンを設定したアイコン(画像)に変更するこ ...

メッセージボックスは、アプリケーションパーツから作成することもできます。

アプリケーションパーツからメッセージボックスなどのフォームを作成

Access 2010では、[作成]タブにある[アプリケーションパーツ]から、テンプレートを選択してフォームなどを簡単に作成することができま ...

  • この記事を書いた人
  • 最新記事

-Access 2019 

Copyright © 2001-2026 初心者のためのOffice講座 All Rights Reserved.