みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Word VBAで入力を便利にするフォームを使ったツールを作成しました。
こういうやつなんです。
このフォームは Alt + I で呼び出せるようになっていて、各ボタンに割り当てられたテキストや囲みなどを追加できるんですね。
便利でしょ?
この作り方を以下記事で紹介していました。
なのですが、ちょっと気が付いたんです。
「やっぱりやめた」
ってときに、閉じるのがちょっと面倒だということに。
ということで、今回はWord VBAで表示したフォームをEscキーで閉じるようにするテクニックをお伝えします。
では、行ってみましょう。
お題:フォームをEscキーで閉じたい
前置きえお伝えした通りですが、このフォーム。開くときは Alt + I でキーボードだけで開くことができます。
Tab キーでボタンを選択して Enter をすればフォームは閉じてくれるのですが、「やっぱりやめた」というときには、以下のようにウィンドウの閉じるボタンをクリックしなければいけません。
このときマウスを使うのが面倒なので Esc キーで閉じられるようにしよう、というのが今回のお題です。
フォームをEscキーでキャンセルできるようにする
では、その方法を見ていきましょう。
「閉じる」ボタンを設置する
まず、VBEのフォームモジュールを開いて、「閉じる」ボタンを追加します。
フォームの隅っこをつかんでドラッグして大きくします。で、他のボタンを右クリックでドラッグすれば簡単に複製できます。
この作成したボタンを選択した状態で、プロパティウィンドウのオブジェクト名とCaptionを変更します。
すると
これで、物理的に「閉じる」ボタンは設置完了です。
「閉じる」ボタンでフォームを閉じるマクロを記述
ただ、このままでは押したところで、うんともすんとも言わないので、ダブルクリックして表示されたコードウィンドウに以下のように記述します。
Private Sub btnClose_Click()
Unload frmSelect
End Sub
frmSelectはフォームのオブジェクト名です。Unloadステートメントは、前回の記事でお伝えした通り、指定したフォームを閉じる命令です。
これで、「閉じる」ボタンを押せばフォームが閉じるようになりました。
「閉じる」ボタンのCancelプロパティ
あとちょっとです。
続いて、フォームモジュールに戻りまして、「閉じる」ボタンのプロパティを変更します。
変更するのは、Cancelプロパティです。
Cancelプロパティはコマンドボタンを「キャンセルボタンにするかどうか」を設定するプロパティで、TrueまたはFalseを設定します。デフォルトはFalseです。
つまり、これをTrueにすると、フォームにフォーカスが当たっている状態で Esc キーを押すと、そのコマンドボタンが押されたことになるということです。
ということで、プロパティウィンドウでCancelプロパティをTrueに変更しましょう。
これでOKです。
Escキーでフォームを閉じる
では、実際に実行してみましょう。
伝わりますでしょうか。マウスを使わないで閉じることができます。これでさらに快適になりますね。
まとめ
以上、Word VBAでフォームをEscキーで閉じるようにする方法でした。
Cancelプロパティの設定一つで、Esc キーに反応するボタンを作ることができるのは簡単かつ便利ですね。
フォームを使うならぜひ知っておきたいテクニックです。
また、Word VBAに関する便利なマクロの作り方を紹介していきますね。
次のシリーズとしては、Word VBAで検索&置換のシリーズがおすすめです。
どうぞお楽しみに!
連載目次:初心者向けWord VBAで文字入力をしてみよう
お仕事でよく使う文書作成ソフトWord。実は、WordでもVBAでプログラミングができるんです。本シリーズでは、初心者向けとしてWord VBAで文字入力をする方法をお伝えしていきます。- Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
- Word VBAでカーソル位置に文字を入力するとっても簡単なプログラム
- Word VBA初心者がまず押さえておくべき段落記号の入力方法
- Word VBAで選択範囲の前後に文字列で挿入するマクロを作る方法
- Word VBAで作成したマクロをショートカットキーに登録する方法
- Word VBAを使うなら知っておくべき「段落」の話とその操作方法
- Word VBAで選択範囲の最初の段落&最後の段落を取得する方法
- Word VBA初心者にちゃんと理解して欲しいスタイルとその設定をする方法
- Word VBAでWithステートメントを使って同一オブジェクトの表記をスッキリ書く方法
- Word VBAでフォームを表示&コマンドボタンでマクロを実行する方法
- Word VBAでフォームをEscキーで閉じるようにするテクニック