- ベストアンサー
Excel VBAでクローズ「✕」を無効化したい。
現在、検索用にVBAで組んでいるのですが、最終処理に「クリアーボタン」を押下してとメッセージを出しているのですが、「✕」を押下して閉じてしまう人がいて次に使う人に迷惑が掛かっています。出来るのであれば、すべての「閉じる」機能を無効化したいです。 もし、Private Subを使うのであればどの様に呼び出すかも教えてください。宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> 何処にCall ××と挿入したら良いかわからなった Call××とは何をよびだすのでしょうか。フォームモジュールに記載してフォームを×で閉じられなくしてるのですが・・・。 フォームにクリアボタンを作成してそれを押したら閉じるようにしておけばいかがですか。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
広い意味での、ウインドウズ枠には、閉じるボタンが付いてくると思うが、 どういうウインドウズの場合ですか? Excel関連の話か?VBAでもエクセル以外のことも処理される場合があるからね。 UserFormの場合のご回答が出ているが、その他ではないのか? WEBには、『ブックの[x]でエクセル終了を無効にしたい、と言う記事もある。 http://www.max.hi-ho.ne.jp/happy/YNxv936.html ブックを閉じる件ならBeforCloseイベントで捉えるのはどうかな。 Private Sub Workbook_BeforeClose(Cancel As Boolean) MsgBox "閉じないでください" Cancel = True End Sub ーー ユーザーフォームの場合 https://www.moug.net/tech/exvba/0090003.html Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then MsgBox "[閉じる]ボタンを使用してください" Cancel = True End If End Sub (こういう普通のケースでは、WEB照会すれば、たくさん記事が出る、やってみたのか?) ーーー そういうことも書かずに質問する人が、システム開発ができるのかな。 またシステム開発をするような人なら、ここのような素人相手のコーナーでなく、 専門家集団の集うコーナーはないのかな?もしあれば、そちらにすべきでしょう。 ウインドウズ関係のAPI絡みの内容になりそうだから。 内容面で、なんでもやってしまう恐れのある、素人操作者の操作を監視する、操作のチェックを十分やるとなると、大変なことだと思う。
- kkkkkm
- ベストアンサー率66% (1731/2601)
参考にしてください UserFormの[×]ボタンで閉じられなくする https://www.moug.net/tech/exvba/0090003.html
お礼
このページは参考にしました。ただ、何処にCall ××と挿入したら良いかわからなったので利用できませんでした。 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then MsgBox "[閉じる]ボタンを使用してください" Cancel = True End If End Sub また、ご教授いただければ幸いです。 宜しくお願い致します。