ユーザーフォームのテキストボックスの入力順序を指定する
Enterキーを押して入力したい順番にカーソルが動かなくてイラついたことありませんか?
オリジナルの入力画面を作った時に、テキストボックスに順番にデータ入力を行いたいのに、それなのにバラバラに移動してしまい、スムーズに入力ができなくて困りますよね。
ユーザーフォームでは、入力順序を決めることができる「タブオーダー」と「アクセスキー機能」を使ってスムーズな入力順にしましょう。
Enterキーで順番に移動させる
ユーザーフォームでオリジナルの住所録入力フォームを作ったら、名前などの各項目を入力する時には「名前」➡「フリガナ」➡「郵便番号」・・・と入力したらEnterキーで次に進み順番に入力できるとスムーズですよね。
ところが、名前入力後Enterキーを押して次にフリガナを入力しようとしたら、なぜか郵便番号に飛んでしまい順番に入力できないことあります。
どうやら、ユーザーフォームでは初期設定としてコントロールを配置した順番にEnterキーを押すと移動するようになっているようで、初期設定のままでは使い勝手が悪いので入力する順番に修正する必要があります。
この入力する順番のことを「タブオーダー」と言います。
このタブオーダーの順番を修正して使い勝手の良い入力フォームにしましょう。
タブオーダーの変更の方法は下記の通りです。
タブオーダーで順番設定
タブオーダーの設定方法は、VBA画面でEnterキーで順番を指定したいユーザーフォームを表示した状態にします。
1、表示(V)を押してタブオーダー(A)を選択します
2、タブオーダーをクリックすると画面が表示されます。
表示されたタブオーダーは上から順番に移動するようになっています。(初期設定)
移動したいコントロールをクリックして【上に移動】または【下に移動】で押した回数分移動します。
順番を変更したい全てのコントロールの移動が終わったら、【OK】ボタンを押せば順番変更が終了します。
VBAコードを記述すれば、当然設定できますが毎回変更が無ければあらかじめプロパティを設定するだけで複雑なコードを書かなくて済むのでとっても便利ですよ!
ユーザーフォームに配置されたテキストボックスなどの数が少なければ気にならないことでも、数が増えると気になりますので、タブオーダーを知ってからいつも設定するようにしています。
タブオーダーを設定すれば複雑な入力フォームが快適操作になりますので作成例もご覧くださいませ。
アクセスキー機能で瞬間移動
Altキーを押しながら特定のキー操作でユーザーフォームに配置した任意のテキストボックスやコマンドボタンにジャンプしてくれる便利な機能で、ショートカットなんて言う事もありますね。
ところが・・・!!
ジャンプしてほしいテキストボックスとコマンドボタン自体には、アクセスキーそのものを設定できないのです。
そこで、一般的にテキストボックスにラベルでタイトルを添えておくことが多いので、このラベルにショートカットキーを設定しましょう。
タブオーダーの説明の図のように、ラベルで【名前】を入力するテキストボックスというようにセットで使うことが多いのでこの技が使えるという事です。
1、アクセスキーを設定したいラベルをクリック
2、プロパティウィンドウが左下に表示されます
3、アクセスキー設定はAcceleratorの右の空欄にキーを入力
ここではアクセスキーを「A」と仮にします。
4、ラベルの表示をCaptionで変更
5、タブオーダー設定
タブオーダーでLabel1を住所を入力するテキストボックスの直前に設定することによって、瞬間移動ができるようになります。
タブオーダーの設定が完了すれば、Altキーを押しながらAキーを押すと瞬間移動しますよ。