教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでフォーカスがなくてもEscキーでクリックできるフォーム内コマンドボタン(キャンセル)を作成する方法

構文

構文は以下の通りです。

コマンドボタン名.Cancel = True

解説

コマンドボタン名.Cancel = Trueは、フォーム内のコマンドボタンをキャンセルボタンとして設定するコードです。キャンセルボタンは、Escキーを押すと自動的にクリックされるため、フォーカスが他のコントロールにあっても、ユーザーはすぐにキャンセルアクションを実行できます。Trueに設定することで、キャンセルボタンとして機能し、Escキーを押すことでアクションがトリガーされます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub ユーザーフォームの初期化()
    ' キャンセルボタンを作成
    キャンセルボタン.Caption = "キャンセル"
    キャンセルボタン.Cancel = True
End Sub
Private Sub キャンセルボタン_Click()
    ' キャンセルボタンがクリックされたときの処理
    MsgBox "キャンセルが押されました。"
    Unload Me
End Sub

上記のプログラムは、フォームの初期化プロシージャでキャンセルボタンを設定しています。キャンセルボタン.Cancel = Trueにより、このボタンがEscキーでクリック可能になります。キャンセルボタン_Clickプロシージャで、キャンセルボタンが押された際にメッセージボックスを表示し、フォームを閉じる処理を行っています。

まとめ

コマンドボタン名.Cancel = Trueを使用することで、フォーム内のコマンドボタンをキャンセルボタンに設定できます。これにより、Escキーでキャンセルボタンが押されるため、フォーム操作がより簡単になります。この設定は、ユーザーの操作性を向上させ、素早くキャンセルを行いたい場合に有効です。