Accessのフォームには[閉じる]ボタンを無効にする設定がありますが、アプリケーションの[閉じる]ボタンを無効にする設定はありません。
しかし、アプリケーションの[閉じる]ボタンで閉じて欲しくない場合もあると思います。
常に表示しているフォームの[読み込み解除時]のイベントを利用して、メッセージを出すことはできますので、その方法をマクロで紹介します。
フォームの[終了]ボタン
起動時には、メニューフォームを表示して、コマンドボタンで先の実行を選択するようにしていることが多いと思います。
以下のようなメニューフォームを使って解説します。
参考ここでは、ウィンドウの表示は[ウィンドウを重ねて表示する]にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
フォームの[閉じるボタン]を無効
フォームの[閉じる]ボタンを無効にするには、フォームをデザインビューで開いて[フォームのプロパティ]を表示します。
プロパティシートは、[ツール]グループの[プロパティシート]をクリックして表示しますが、キーボードから[F4]キーを押しても表示/非表示の切り替えができます。
[書式]タブの[閉じるボタン]を[いいえ]にします。
[最大化/最小化ボタン]を非表示にする場合は、[なし]を選択します。
以下のフォームは、[境界線スタイル]を[ダイアログ]にしているため[最小化/最大化]ボタンは自動的に非表示になります。
以下のようにフォームの[閉じる]ボタンは無効になります。
[終了]ボタンにマクロを設定
メニューフォームの[終了]ボタンには、Accessを終了させるマクロを設定します。
標題[終了]としたコマンドボタンを選択して、プロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックして、[ビルダーの選択]ダイアログボックスを表示します。
[マクロビルダー]ダイアログボックスを選択して[OK]ボタンをクリックします。
[マクロデザイン]が表示されますので、[新しいマクロアクション]の▼ボタンをクリックして、マクロアクションの一覧から[Accessの終了]を選択します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
上書き保存して閉じます。
[終了]ボタンのプロパティの[クリック時]には、[埋め込みマクロ]と表示されます。
これでフォームの[終了]ボタンをクリックしてAccessを終了できます。
しかし、操作中に間違えてアプリケーションの[閉じる]ボタンをクリックして終了させてしまうこともあります。
また、終了時に何らかの処理をしている場合などは、アプリケーションの[閉じる]ボタンで終了されるのは避けたいと思うこともあるでしょう。
それを回避するための方法です。
[閉じる]ボタンを押した時にメッセージを表示するには
チェックボックスを作成して、[True]なら閉じて、[False]ならメッセージを表示します。
そして、そのメッセージには[終了]ボタンを使うように表示します。
チェックボックスの作成
フォームにチェックボックスを作成します。
[フォームデザイン]タブの[コントロール]グループにある[コントロール]から[チェックボックス]を選択して挿入します。
ラベルは不要なので、[Ctrl]キーを押したまま任意の位置へドラッグします。作成後は見えなくします。
[Ctrl]キーを押しながらドラッグで描画すると、チェックボックスのみを追加できます。
チェックボックスのプロパティを表示して、チェックがオフの状態になるように[データ]タブで[既定値]は[0]にします。
チェックボックスの名前は憶えておいてください。
ここでは、[チェック5]です。
参考名前を変更する場合は、[その他]タブの[名前]に入力します。
[終了]ボタンにマクロアクションを追加
フォームの[終了]ボタンにマクロアクションを追加します。
[終了]ボタンのプロパティを開いて、[イベント]タブの[クリック時]で[…」をクリックします。
[すべてのアクションを表示]をクリックして、[新しいアクションの追加]で[値の代入]を選択します。
下から、4番目にあります。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
[値の代入]のアイテムと式に以下を入力します。
アイテム=[チェック5]
式=True
そして、[上へ移動]ボタンをクリックします。
以下のようになったら、上書き保存して閉じます。
[読み込み解除時]のマクロ
次に、フォームのプロパティ[読み込み解除時]にマクロを設定します。
[イベント]タブの[読み込み解除時]の[ビルダー選択]ボタン[…]をクリックして[ビルダーの選択]ダイアログボックスを表示します。
[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロデザイン]が表示されますので、まず、[新しいアクションの追加]で[If]を選択して、[条件式]に以下を入力します。
すぐ下の[新しいアクションの追加]に[Accessの終了]を指定します。
そして、[Elseの追加]をクリックします。
[Else]のすぐ下にある[新しいアクションの追加]で[メッセージボックス]を選択します。
[メッセージ]には、メッセージボックスに表示させたい文字を入力します。
[メッセージの種類]は選択肢から選び、、メッセージタイトルも任意で入力します。
ここでは、以下のように入力します。
メッセージの種類などは、以下の記事を参照してください。
-
メッセージボックスで[はい]が選択されたらアクションを実行する
Accessのフォームで[閉じる]ボタンを設置しても、メッセージボックスは表示されずにフォームは閉じられてしまいます。 [閉じる]ボタンをク ...
そして、[If文の最後]の上にある[新しいアクションの追加]に[イベントの取り消し]を指定します。
以下のようになっていることを確認したら、上書き保存して閉じます。
フォームのプロパティ[読み込み解除時]には、[埋め込みマクロ]と表示されます。
アプリケーションの[閉じる]ボタンをクリックすると、以下のメッセージウィンドウが表示されます。
[OK]ボタンをクリックすると、メッセージウィンドウが閉じられます。
[終了]ボタンをクリックすると、チェックボックスがオンになりAccessが終了します。
チェックボックスを非表示設定
チェックボックスは非表示にします。
フォームをデザインビューで開いて、チェックボックスのプロパティを表示して[可視]を[いいえ]にします。
フォームのチェックボックスは非表示になります。