• ベストアンサー

エクセルで、任意のテキストボックス等にフォーカスを移したい

すいません、またまた質問です。 エクセルXPで、ユーザーフォーム上に 複数のテキストボックスやリストボックスを 置いて入力した値が任意のシートのセルに 入力されるというものを作っています。 (しかしながらVBAがほとんど見様見真似レベル なのでかなり悪戦苦闘(~_~*)) そこで、ユーザーフォームにて例えばTEXTBOX1に 入力後、Enterで次のテキストボックス(又は リストボックス)にフォーカスを移したいのですが、 その時に任意のテキストボックス等にフォーカスを 移すことは可能でしょうか。 番号順(なのかな?)に自動でフォーカスを 移動させることはできたのですが、任意の対象へ 移動させるやり方とかってあるのでしょうか。 例えばTEXTBOX1からRISTBOX5へ移すとか。 入力する順番に移動できたらユーザーフォーム上での 入力作業が非常に楽になると思って(^o^;) どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

#2 tommy-pie83 さんのご回答で良いとおもいますが、 その作業は面倒なので、 VBE でフォームオブジェクトを表示した状態で、 [表示]-[タブオーダー] で調整です。ちなみに、フォーカスを取得させない コントロールなら、「TabStop」プロパティーを False にします。

happyrin
質問者

お礼

KenKen_SP様 ありがとうございます。 こんなに簡単で便利な方法があるとは(^_^;) まさしく探し求めていた答えです。 本当にありがとうございました。

その他の回答 (2)

回答No.2

あまり詳しくないのですが… 私が作ったマクロでのユーザフォームのテキストボックスのフォーカスの移動には それぞれのテキストボックスのプロパティを開いて TabIndexに数字を入れています。 フォーム上の テキストボックス等は 作った順に番号が自動で振られているようですので(最初は0から)それを書き換えれば自分の好きな順番に出来ると思います。

happyrin
質問者

お礼

tommy-pie83様 どうもありがとうございます。 なるほど、プロパティのTabIndexを 書き換えればいいのですね。 もっと勉強しないと… とにもかくにも迅速な回答、感謝です。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

イベントとして何を使うかは選択肢がいろいろありますが、例えばTEXTBOX1に値が入力されたら、TEXTBOX5にフォーカスを移すのであれば、 Private Sub TextBox1_Change() 処理 TextBox5.SetFocus End Sub になると思います

happyrin
質問者

お礼

zap35様 どうもありがとうございます。 昨日質問してすぐに回答をもらえて ものすごく感謝です。 VBAって本当にいろんなことが できるのですね。 教えて頂いた書き方、覚えておきます。

関連するQ&A