dポイントプレゼントキャンペーン実施中!

タイトルままですが、
ユーザーフォームをescキーで閉じる方法を知りたいです。

今、表示させたユーザーフォームを×ボタンを押して消すフォームがあり、
何もしないでやっぱり閉じる場合、ユーザーフォームそのものに対して、escキーを有効にさせる方法はありますか?
ご存知の方、ご教授お願い致します。

A 回答 (2件)

ユーザーフォームにフォーカスがあることが前提ですが、


KeyDown
KeyPress
イベントのことではないでしょうか?
>右クリックで直接コードに書こうとすると
コードの表示で右側で選択可能です。
ByValで渡される変数で、押されたキーのコードを識別していますから、ESCキーが押された場合のみに閉じることが可能です。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
試してみます。

お礼日時:2021/07/19 18:23

こんばんは


ユーザーフォームですか、、
OnKeyメソッドで設定する事も出来そうですが
実行条件が必要になりますかね

条件が必要ならこちらの方が現実的かも
UserFormに閉じるボタンを設置していれば
そのボタンの
、プロシージャに Unload Me
、プロパティのCancel をTrue 設定でどうでしょう。

仕様に合わず使えないと思いますが、OnKeyメソッドでやる場合
実行制限:
標準モジュールからUserFormはvbModeless表示
UserFormにフォーカスが無い時のみESCキーで閉じるが有効になります。
みたいな感じですかね。


標準モジュール
Sub UserForm1_Show()
Application.OnKey "{ESCAPE}", "Unload_UserForm1"
UserForm1.Show vbModeless
End Sub
Private Sub Unload_UserForm1()
Unload UserForm1
Application.OnKey "{ESCAPE}"
End Sub
    • good
    • 0
この回答へのお礼

お返事有難うございます。
コマンドボタンで「閉じる」を作って、、の方法は調べて知っていたのですが、新たに「閉じる」ボタンを作らなくてもescで閉じたことが過去にあり、ただ方法を知らずに質問した次第です。
フォームそのものにはcancelプロパティはなく、右クリックで直接コードに書こうとするとモジュール名に「click」がつくので、クリックして閉じて目的とは違くなります。
もうちょっと試します。

お礼日時:2021/07/18 19:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A