ユーザーフォームのテキストボックスの入力順序を指定する

Enterキーを押して入力したい順番にカーソルが動かなくてイラついたことありませんか

オリジナルの入力画面を作った時に、テキストボックスに順番にデータ入力を行いたいのに、それなのにバラバラに移動してしまい、スムーズに入力ができなくて困りますよね。

ユーザーフォームでは、入力順序を決めることができる「タブオーダー」と「アクセスキー機能」を使ってスムーズな入力順にしましょう。

目次

Enterキーで順番に移動させる

ユーザーフォームでオリジナルの住所録入力フォームを作ったら、名前などの各項目を入力する時には「名前」➡「フリガナ」➡「郵便番号」・・・と入力したらEnterキーで次に進み順番に入力できるとスムーズですよね。

エクセル住所録入力フォーム
上から順番に入力できると便利でスムーズ

ところが、名前入力後Enterキーを押して次にフリガナを入力しようとしたら、なぜか郵便番号に飛んでしまい順番に入力できないことあります。

どうやら、ユーザーフォームでは初期設定としてコントロールを配置した順番にEnterキーを押すと移動するようになっているようで、初期設定のままでは使い勝手が悪いので入力する順番に修正する必要があります。

とりっぷぼうる

この入力する順番のことを「タブオーダー」と言います。

このタブオーダーの順番を修正して使い勝手の良い入力フォームにしましょう。

タブオーダーの変更の方法は下記の通りです。

タブオーダーで順番設定

タブオーダーの設定方法は、VBA画面でEnterキーで順番を指定したいユーザーフォームを表示した状態にします。

1、表示(V)を押してタブオーダー(A)を選択します

タブオーダー
タブオーダーを表示します

2、タブオーダーをクリックすると画面が表示されます。

タブオーダー2
上から順にEnterキーで移動させる順に並べ替えます

表示されたタブオーダーは上から順番に移動するようになっています。(初期設定)

移動したいコントロールをクリックして【上に移動】または【下に移動】で押した回数分移動します。

順番を変更したい全てのコントロールの移動が終わったら、【OK】ボタンを押せば順番変更が終了します。

VBAコードを記述すれば、当然設定できますが毎回変更が無ければあらかじめプロパティを設定するだけで複雑なコードを書かなくて済むのでとっても便利ですよ!

ユーザーフォームに配置されたテキストボックスなどの数が少なければ気にならないことでも、数が増えると気になりますので、タブオーダーを知ってからいつも設定するようにしています。

タブオーダーを設定すれば複雑な入力フォームが快適操作になりますので作成例もご覧くださいませ。

アクセスキー機能で瞬間移動

Altキーを押しながら特定のキー操作でユーザーフォームに配置した任意のテキストボックスやコマンドボタンにジャンプしてくれる便利な機能で、ショートカットなんて言う事もありますね。

ところが・・・!!

ジャンプしてほしいテキストボックスとコマンドボタン自体には、アクセスキーそのものを設定できないのです。

そこで、一般的にテキストボックスにラベルでタイトルを添えておくことが多いので、このラベルにショートカットキーを設定しましょう。

タブオーダーの説明の図のように、ラベルで【名前】を入力するテキストボックスというようにセットで使うことが多いのでこの技が使えるという事です。

1、アクセスキーを設定したいラベルをクリック

ラベルfont変更1
ラベル

2、プロパティウィンドウが左下に表示されます

ラベルプロパティ
ラベルのプロパティ

3、アクセスキー設定はAcceleratorの右の空欄にキーを入力

アクセスキー設定
Aと入力

ここではアクセスキーを「A」と仮にします。

4、ラベルの表示をCaptionで変更

アクセスキー設定キャプション
Label1を住所(A)に変更

5、タブオーダー設定

タブオーダーでLabel1を住所を入力するテキストボックスの直前に設定することによって、瞬間移動ができるようになります。

アクセスキー設定
住所にアクセスキー設定(A)しました

タブオーダーの設定が完了すれば、Altキーを押しながらAキーを押すと瞬間移動しますよ。

アクセスキーは半角アルファベットを半角の()で囲むだけで。全角英数は使えません。

目次