• ベストアンサー

エクセルVBAについて

エクセルシートのデータ入力でユーザーフォームを作成してみました。テキストボックスを複数用意してそれぞれに顧客名であったり商品名、数量などを入力するものです。 そこで質問がございます。 現在の設定ではリターンキーを押すと「次行」コマンドが有効になり、次行のセルがアクティブになります。なのでマウスでテキストボックスをクリックしないとそれぞれの情報を入力できません。 顧客名から始まり、次に商品名、数量etc.とユーザーフォーム内でリターンキーで移動させる方法はあるのでしょうか。教えてくださいまし。

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

  • ベストアンサー
回答No.1

各テキストボックスのプロパティに「TabIndex」が、あります。(VBEditerで、プロパティウィンドウが表示してあれば、その中にあるはずです。) この数字の順番にフォーカスが移動しますので、これを調整して下さい。  バージョンによっては、この数値を変えるのが素直に出来ない場合がありますので、お気を付け下さい。

transtarou
質問者

お礼

迅速なお返事本当にありがとうございました。 うまくいきました。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

通常でしたら、#1 さんの書いたとおりで、TabStop をFalse にしない限りは、TabIndexの順序で、Enterで、フォーカスが移動します。 もう一度、TabIndex の順序とTabStopを見直してみたらいかがですか?

  • souta_n
  • ベストアンサー率33% (79/234)
回答No.2

ExcelVBAでしたことはありませんが、VisualBasic6のフォームで、プログラムは作ったことがあります。 例えばテキストボックスが3つ項目1、項目2、項目3とあって、項目2でエンター又は下矢印を押すと項目3に、上矢印を押すと項目1に移動させるコードは次の通りです。 Private Sub 項目2_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case 13, 40 Me!項目3.SetFocus Case 38 Me!項目1.SetFocus End Select End Sub ちなみに13とか40とかは、キーボードのキー番号です。

関連するQ&A