• ベストアンサー

テキストボックス間の移動

お世話になります。 タイトル通りなのですが、VBAの場合だと、プロパティの ”TabIndex”で可能だと分かるのですが、エクセルの ”コントロールツールボックス”で作成したテキストボックスでは 同様な事は無理なのでしょうか? 状況的にどうしても、このコントロールツールボックで作成した テキストボックスで行わないといけない状態なので。 宜しく御願い致します。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.1

>VBAの場合だとTabIndexで可能だと分かるのですが これはたぶんUserform上のことですよね。 何れにしろUserform上でもSheet上でもコントロールはVBAで処理しますので。 Sheetに配置したTextBoxの場合はコードでフォーカスを移動しなければなりません。 例えば、シートにTextBoxを3つ配置してTabで移動する場合は以下のようにします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  If KeyCode = vbKeyTab Then    TextBox2.Activate  End If End Sub Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  If KeyCode = vbKeyReturn Then    TextBox3.Activate  End If End Sub Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  If KeyCode = vbKeyTab Then    TextBox1.Activate  End If End Sub 以上。

metal19
質問者

お礼

ご回答有難うございます。 本当に助かりました、色々相談してみたものの 誰からも無理と言われ、半ば諦めムードでしたが 神がいました。 それと申し訳ないでのすが、もう少しお聞きいしたいのですが TextBox2の3行目の"vbkeyReturn"となっていますが "vbkeyTab"でいのですよね?あと、TextBox1から2へ カーソルが移動する際に、1にスペースが入るのですが これを止める事は出来ないのですか? あと、"Shift+Tab”戻る為にはどう記述すれば良いのでしょうか? 申し訳ありませんが、何卒御願い致します。

metal19
質問者

補足

すみません、BOX1にスペースが入るのは 私がプロパティで、"TabKeyBehavior"をTrueに してたからでした、申し訳ありません。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1のご回答とほぼ同じですが ワークシートに直に、3個テキストボックスをコントロールツールボックスから貼りつけ TextBox1->TextBox2->TextBox3にデータを入れてENTERを押したときに移動させるには Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then Worksheets("sheet2").TextBox2.Activate Worksheets("sheet2").TextBox2.Text = "" End If End Sub Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then Worksheets("sheet2").TextBox3.Activate Worksheets("sheet2").TextBox3.Text = "" End If End Sub

metal19
質問者

お礼

ご回答有難うございます。 すっかり、お礼が遅くなり申し訳ありません。 教えて頂いた事を基に色々勉強してみたいと思います。 有難うございました。

関連するQ&A

  • エクセルVBAでテキストボックスの値の取得と変更について

    エクセルのVBAを使ってシート上のテキストボックスのテキストを取得・変更するマクロを作成したいと思っていますがうまく行きませんので、お知恵を拝借したいとおもいます。 環境:WindowsXPでオフィス2002 状況: エクセルブックa.xlsのシートに「コントロールツールボックス」のテキストボックスを配置(オブジェクト名はTEXTBOX_C) エクセルブックb.xlsにコードを書き、a.xlsのTEXTBOX_CのプロパティのValueかTextを取りだしたい 試した事: コントロールを配置したシートに次のマクロ TEXTBOX_C.Text = "これはコントロールのテキストボックス" を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。 また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください

  • VBAのテキストボックスの表示について

    エクセルでVBAを使っているのですが、作成したフォームのテキストボックスに、セルの[00]や[05]といった形式の値を入れようとすると、[0]や[5]と直されてしまいます。プロパティでうまく設定する方法はありますでしょうか? よろしくお願いいたします。

  • ブックオープン時にテキストボックスにフォーカス

    あちこち検索してみたのですが思うような答えが見つからなかったので 良い方法があれば教えて頂ければと思います。 エクセルVBAで、ブックを開いた時に、シート上に配置したテキストボックス (コントロールツールボックスで作成)にフォーカスが移動していて、 すぐに入力できるようにしたいのですが、どうすればいいでしょうか? 現状はファイルを開いてマウスでテキストボックスをクリックしてから 入力しています。 ちなみに、2000を使用しています。

  • テキストボックスをまとめて移動する方法はありませんか?

    いつもお世話になっています。 ワード2007のテキストボックスと地図作成フリーソフトを組み合わせて、簡単な地図を作成しました。 作成後、移動させたいのですが、ドラッグすると道路部分のみが移動してしまい、テキストボックス達は元の場所に残ってしまいます。 まとめてひとつの地図とじて、動かせる方法はないでしょうか。 図と一緒が無理なら、複数のテキストボックスを同時に移動させる方法があれば、知りたいです。 どうぞよろしくお願いいたします

  • エクセルのワークシート上のテキストボックスのずれ

    エクセルのワークシート上に(ユーザーフォームではなく) コントロールツールボックスからテキストボックスをいくつか作成しました。 そのテキストボックスをそれぞれ選択(アクティブ?マウスオーバー?)すると テキストボックスの大きさが微妙に変化してしまうのですが、回避する方法はないでしょうか? 微妙というのは、テキストボックスの下・右にそれぞれ枠線1本分ほどです。 エクセルのバージョンは2003です。 どうぞよろしくお願いいたします。

  • テキストボックス

    たびたびの質問すみません。 エクセルVBAでテキストボックス等(条件)に入力すると、他のテキストボックスにエクセルシートから照合して表示させる方法で、条件のテキストボックス等を2つ以上にすることは可能でしょうか、あればやり方を教えてください。

  • Excelのコントロールツールボックスでデータの入力フォームを作成しま

    Excelのコントロールツールボックスでデータの入力フォームを作成しました。内、何項目かはテキストボックスになっているのですが、これを特定の順番でTabキーかEnterキーで移動させたいのですができません。方法をご存知の方がいらっしゃれば教えてください。 VBAエディタからのフォーム作成ではプロパティでできていたのでExcel全般の仕様だと思っていたのですが・・・。

  • Excel「テキストボックス」で

    コントロールツールボックス」の中のテキストボックスを使用しています。 変数aと変数bの値を一つのテキストボックスに入れたくて 変数a & 変数b というようにしました。 中身(プロパティでみたところ)はちゃんと入ってるようですが、 表示は変数aと変数bがかぶってしまっています。 これをきちんと表示させるにはどうしたらいいですか? また、このテキストボックス上で、センタリング、右寄せ、均等割付などを行いたい場合は どうしたらいいでしょうか?

  • エクセル テキストBOXのフォント

    エクセルでセルやVBAエディターの フォントリストにあるものが フォームのテキストBOXリストにありません。 プログラムでプロパティー指定しても 有効にはならないようです。エラーも返しませんが OCRBを使いたいのですが。。。 プロパティーに追加する方法って有るのでしょうか よろしくどうぞ

  • テキストボックスとカーソルの制御

    30個のテキストボックスがある画面で、 tabindexにはそれぞれのテキストボックス1~30と 同じインデックスが振られています。 例としてテキストボックス1に入力した時、 エラーメッセージを出して、 OKを返したらテキストボックス2にカーソルが行かないで、 テキストボックス1に戻るようにするには どのようにすれば良いでしょうか? 但しSetfocusでは無く、エラーが発生した テキストボックスにカーソルが戻った時に、 他のテキストボックスをクリック又はTabを押した時に、 カーソルが遷移するように、カーソルを自由にコントロール 出来るようにしたいのですが。 注文が多くなってしまいましたが、書き込みをお待ちしております。

専門家に質問してみよう