教えて!ExcelVBA!

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

ExcelVBAでフォーム内コントロールのタブオーダーを設定する方法

構文

構文は以下の通りです。

コントロール名.TabIndex = インデックス番号

解説

コントロール名には、フォーム内に配置したテキストボックスやボタンなどのコントロールの名前を記述します。TabIndexは、各コントロールがタブキーを押したときにフォーカスが移動する順番を示します。0から始まり、数字が小さいほど先にフォーカスされます。

プログラミング例

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

Sub フォームタブオーダー設定()
    ' ユーザーフォーム内のコントロールのタブオーダーを設定する
    ' 名前を入力するテキストボックスのタブオーダーを1に設定
    TextBox名前.TabIndex = 0
    ' 年齢を入力するテキストボックスのタブオーダーを2に設定
    TextBox年齢.TabIndex = 1
    ' 送信ボタンのタブオーダーを3に設定
    CommandButton送信.TabIndex = 2
    ' リセットボタンのタブオーダーを4に設定
    CommandButtonリセット.TabIndex = 3
End Sub

上記のプログラムは、ユーザーフォーム内の各コントロールのタブオーダー(タブキーを押したときにフォーカスが移動する順番)を設定しています。TextBox名前 が最初に、TextBox年齢 が次に、そして CommandButton送信 と CommandButtonリセット が順番にフォーカスされるように設定されています。

まとめ

フォーム内のコントロールのタブオーダーを設定するには、TabIndexを使用します。0から始まるインデックス番号を設定することで、タブキーを押したときにフォーカスが移動する順番を制御できます。適切なタブオーダーを設定することで、ユーザーフォームの使いやすさが向上します。