Word VBAでフォームをEscキーで閉じるようにするテクニック


button

photo credit: Captured Heart Striped Shirt via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Word VBAで入力を便利にするフォームを使ったツールを作成しました。

こういうやつなんです。

Wordでボタンつきのフォームを呼び出す

このフォームは Alt + I で呼び出せるようになっていて、各ボタンに割り当てられたテキストや囲みなどを追加できるんですね。

便利でしょ?

この作り方を以下記事で紹介していました。

Word VBAでフォームを表示&コマンドボタンでマクロを実行する方法
Word VBAで入力を便利にするマクロの作り方を初心者向けということでお送りしています。今回は、Word VBAでフォームを表示する方法、またコマンドボタンでマクロを呼び出す法についてお伝えします。

なのですが、ちょっと気が付いたんです。

「やっぱりやめた」

ってときに、閉じるのがちょっと面倒だということに。

ということで、今回はWord VBAで表示したフォームをEscキーで閉じるようにするテクニックをお伝えします。

では、行ってみましょう。

スポンサーリンク

お題:フォームをEscキーで閉じたい

前置きえお伝えした通りですが、このフォーム。開くときは Alt + I でキーボードだけで開くことができます。

Tab キーでボタンを選択して Enter をすればフォームは閉じてくれるのですが、「やっぱりやめた」というときには、以下のようにウィンドウの閉じるボタンをクリックしなければいけません。

Word VBAによるフォームで閉じるボタンをクリック

このときマウスを使うのが面倒なので Esc キーで閉じられるようにしよう、というのが今回のお題です。

フォームをEscキーでキャンセルできるようにする

では、その方法を見ていきましょう。

「閉じる」ボタンを設置する

まず、VBEのフォームモジュールを開いて、「閉じる」ボタンを追加します。

フォームの隅っこをつかんでドラッグして大きくします。で、他のボタンを右クリックでドラッグすれば簡単に複製できます。

Word VBAでコマンドボタンをコピー

この作成したボタンを選択した状態で、プロパティウィンドウのオブジェクト名とCaptionを変更します。

すると

Word VBAでコマンドボタンのプロパティを変更

これで、物理的に「閉じる」ボタンは設置完了です。

「閉じる」ボタンでフォームを閉じるマクロを記述

ただ、このままでは押したところで、うんともすんとも言わないので、ダブルクリックして表示されたコードウィンドウに以下のように記述します。

Private Sub btnClose_Click()

Unload frmSelect

End Sub

frmSelectはフォームのオブジェクト名です。Unloadステートメントは、前回の記事でお伝えした通り、指定したフォームを閉じる命令です。

これで、「閉じる」ボタンを押せばフォームが閉じるようになりました。

「閉じる」ボタンのCancelプロパティ

あとちょっとです。

続いて、フォームモジュールに戻りまして、「閉じる」ボタンのプロパティを変更します。

変更するのは、Cancelプロパティです。

Cancelプロパティはコマンドボタンを「キャンセルボタンにするかどうか」を設定するプロパティで、TrueまたはFalseを設定します。デフォルトはFalseです。

つまり、これをTrueにすると、フォームにフォーカスが当たっている状態で Esc キーを押すと、そのコマンドボタンが押されたことになるということです。

ということで、プロパティウィンドウでCancelプロパティをTrueに変更しましょう。

Word VBAでコマンドボタンのCancelプロパティを設定する

これでOKです。

Escキーでフォームを閉じる

では、実際に実行してみましょう。

Word VBAのフォームをEscボタンで閉じる

伝わりますでしょうか。マウスを使わないで閉じることができます。これでさらに快適になりますね。

まとめ

以上、Word VBAでフォームをEscキーで閉じるようにする方法でした。

Cancelプロパティの設定一つで、Esc キーに反応するボタンを作ることができるのは簡単かつ便利ですね。

フォームを使うならぜひ知っておきたいテクニックです。

また、Word VBAに関する便利なマクロの作り方を紹介していきますね。

次のシリーズとしては、Word VBAで検索&置換のシリーズがおすすめです。

Word VBAで文字列を検索するFindオブジェクトを使った最も基本のプログラム
Word VBA初心者向けに検索&置換を活用する方法についてお伝えします。初回ということでWord VBAで検索をするためのFindオブジェクトの基本中の基本の最初の一歩について、どこよりも丁寧に解説します。

どうぞお楽しみに!

連載目次:初心者向けWord VBAで文字入力をしてみよう

お仕事でよく使う文書作成ソフトWord。実は、WordでもVBAでプログラミングができるんです。本シリーズでは、初心者向けとしてWord VBAで文字入力をする方法をお伝えしていきます。
  1. Word VBA入門の最初の一歩!マクロ作成準備の6つのステップ
  2. Word VBAでカーソル位置に文字を入力するとっても簡単なプログラム
  3. Word VBA初心者がまず押さえておくべき段落記号の入力方法
  4. Word VBAで選択範囲の前後に文字列で挿入するマクロを作る方法
  5. Word VBAで作成したマクロをショートカットキーに登録する方法
  6. Word VBAを使うなら知っておくべき「段落」の話とその操作方法
  7. Word VBAで選択範囲の最初の段落&最後の段落を取得する方法
  8. Word VBA初心者にちゃんと理解して欲しいスタイルとその設定をする方法
  9. Word VBAでWithステートメントを使って同一オブジェクトの表記をスッキリ書く方法
  10. Word VBAでフォームを表示&コマンドボタンでマクロを実行する方法
  11. Word VBAでフォームをEscキーで閉じるようにするテクニック

タイトルとURLをコピーしました