- ベストアンサー
エクセルで、任意のテキストボックス等にフォーカスを移したい
すいません、またまた質問です。 エクセルXPで、ユーザーフォーム上に 複数のテキストボックスやリストボックスを 置いて入力した値が任意のシートのセルに 入力されるというものを作っています。 (しかしながらVBAがほとんど見様見真似レベル なのでかなり悪戦苦闘(~_~*)) そこで、ユーザーフォームにて例えばTEXTBOX1に 入力後、Enterで次のテキストボックス(又は リストボックス)にフォーカスを移したいのですが、 その時に任意のテキストボックス等にフォーカスを 移すことは可能でしょうか。 番号順(なのかな?)に自動でフォーカスを 移動させることはできたのですが、任意の対象へ 移動させるやり方とかってあるのでしょうか。 例えばTEXTBOX1からRISTBOX5へ移すとか。 入力する順番に移動できたらユーザーフォーム上での 入力作業が非常に楽になると思って(^o^;) どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2 tommy-pie83 さんのご回答で良いとおもいますが、 その作業は面倒なので、 VBE でフォームオブジェクトを表示した状態で、 [表示]-[タブオーダー] で調整です。ちなみに、フォーカスを取得させない コントロールなら、「TabStop」プロパティーを False にします。
その他の回答 (2)
- tommy-pie83
- ベストアンサー率48% (185/383)
あまり詳しくないのですが… 私が作ったマクロでのユーザフォームのテキストボックスのフォーカスの移動には それぞれのテキストボックスのプロパティを開いて TabIndexに数字を入れています。 フォーム上の テキストボックス等は 作った順に番号が自動で振られているようですので(最初は0から)それを書き換えれば自分の好きな順番に出来ると思います。
お礼
tommy-pie83様 どうもありがとうございます。 なるほど、プロパティのTabIndexを 書き換えればいいのですね。 もっと勉強しないと… とにもかくにも迅速な回答、感謝です。
- zap35
- ベストアンサー率44% (1383/3079)
イベントとして何を使うかは選択肢がいろいろありますが、例えばTEXTBOX1に値が入力されたら、TEXTBOX5にフォーカスを移すのであれば、 Private Sub TextBox1_Change() 処理 TextBox5.SetFocus End Sub になると思います
お礼
zap35様 どうもありがとうございます。 昨日質問してすぐに回答をもらえて ものすごく感謝です。 VBAって本当にいろんなことが できるのですね。 教えて頂いた書き方、覚えておきます。
お礼
KenKen_SP様 ありがとうございます。 こんなに簡単で便利な方法があるとは(^_^;) まさしく探し求めていた答えです。 本当にありがとうございました。