- ベストアンサー
ユーザーフォームのTextBoxとかで
通常、Enterキーを押すごとに左上から右下へカーソルが移動して、また左上の起点に戻りますよね。 この、状態で新たにTextBoxを追加してもともとの間に割りこませると、Enterキーによって移動するカーソルの動きが不規則になります。 後で追加した場合でも左上から順々に右下そしてまた左上とはならないのですか?もし、お分かりの方がいらっしゃいましたら教えてください。
- ooc
- お礼率86% (90/104)
- Visual Basic
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
いまいち意味が分りづらいのですが、ひょっとしたらTabIndexのことを仰っているのでしょうか。 オブジェクトはフォームに追加された順番にTabIndexが割り当てられます。で、Tabキーを押すとその昇順にフォーカスが移動します。 各オブジェクトにはTabIndexというプロパティがありますのでその数字を適当に変更してみてください。
関連するQ&A
- TextBoxに連続で入力する方法
Form1に、TextBox1とTextBox2を配置しています。 TextBox1にKey入力を受け、Enter Keyで取り込む動作を、連続して行うためのプログラムを作ってみましたが、何故かEnter Keyの後、カーソルがTextBox2に移動してしまいます。Enter Keyの後、TextBox1.SetFocusで、カーソルをTextBox1にしているのですが何故が解らず困っています。Enter Kyeの後、カーソルがTextBox1に戻るようにするには、どのようにすれば良いのか教えて下さい。 PC環境は、OS=Win10 Excel=2010 です。作ったプログラムは以下の通りです。よろしくお願いします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then Sheets("Sheet1").Range("A1") = TextBox1.Value TextBox1 = "" TextBox1.SetFocus End If End Sub
- ベストアンサー
- Excel(エクセル)
- windoswフォームのTextBox操作について
私は現在、VC++2010のwindowsフォームを使ってアプリケーションの開発を行っています。 与えられた文字列をTextBoxに追加表示という形で表示するプログラムを作成した所、与えられた文字列が目的通りに表示されていくのは確認できました。 しかし、TextBoxがいっぱいになると視覚的には領域の右端にスクロールバーが短くなっていくのみで、TextBoxに表示されている文字列はスクロールせず、結果、新しく表示された文字列は見えません。 これは、カーソルが左上端を位置したまま移動しないことが原因だと思うのですが、常にカーソルを最後尾に持っていく方法などはありませんでしょうか。 文字ばかり長くなりましたが、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VBAのフォーム カーソル移動
VBAのフォームでテキストボックス(1)~テキストボックス(5) まで作ったとします。 カーソルの移動はtabindexの値を順番につければいいのですが、例えばENTERキーとTABキーを両方押したときは カーソルが一つ飛ぶ制御をしたいのですがどうすればいいでしょうか? つまり カーソルがテキストボックス(1)にいる状態でENTERキーとTABキーを同時に押せばカーソルがテキストボックス(3)に移動するようにしたいのですが、お願いします
- ベストアンサー
- Visual Basic
- VC++ で TextBoxから、次のコントロールに移動する方法について
VC++で、フォーム上に複数のTextBoxを配置して、タブインデックスで、次に移動したいTextBoxを設定しました。 最初のTextBoxに入力した後、Tabキーで、次のコントロールに移動することはできましたが、Enterキーで次のコントロールへ移動することはできないのでしょうか? TextBoxのプロパティの設定方法とを教えて下さい。
- ベストアンサー
- C・C++・C#
- エクセルのユーザーフォームについて
パスワード入力用のしかけです。 ワークシートに配置したコマンドボタンを押してユーザーフォームを呼び出します。 Private Sub CommandButton1_Click() UserForm1.Show End Sub ユーザーフォームにはテキストボックスとコマンドボタンを配置しております。 テキストボックスのPasswordCharには * を設定しました。 Private Sub CommandButton1_Click() If StrConv(TextBox1.Text, vbLowerCase) = "abcd" Then MsgBox "OK!" Unload Me Else TextBox1.Text = "" TextBox1.SetFocus End If End Sub これで、ABCDまたはabcdと入力され、ユーザーフォーム上のコマンドボタンをクリックすれば、ユーザーフォームは消えます。 でも、いちいちマウスでクリックするのが面倒なのでEnterキー1回でユーザーフォームを消したいのです。 今でも、一度Enterキーを押すと、ボタンにフォーカスが移動するので、さらにEnterで消えますが、二度ではなくEnterキー1回でユーザーフォームを消すにはどうすればよいのでしょうか? ユーザーフォームは使ったことがないのでわかりません。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- Accessのフォームにて
AccessのフォームでTabやEnterでカーソルを飛ばしたとき、既にデータが入っている場合には、そのデータの末尾にカーソルが出る状態になるようにしたいのですが。。。 通常は既存データを全部選択した状態になりますよね、だからデータを追加するとき面倒なんです。
- ベストアンサー
- オフィス系ソフト
- VBでEnterを押すとTabで飛ぶ様にする
お世話になります。 VB初心者です。VBでフォームを作り、TEXTBOXを複数作ると、Tabキーでタブストップの順番にカーソルが移動しますが、Enterを押すとカーソルが移動するようにするのはどうしたら良いのでしょうか? 宜しくお願いします。
- ベストアンサー
- Visual Basic
- VBAでのユーザーフォーム上でのタブオーダーの移動の方法
やりたい事を以下に書きます。 ユーザーフォームで入力用のTEXTBOXがいくつかあり、TABINDEXが最初のTEXTBOXから順に入力していきます。 1つのTEXTBOXに入力完了後した場合、TABキーまたは、ENTERにより次のTEXTBOXにフォーカスが移動し、最後にコマンドボタンにを押すと入力が完了するというフォームを作っています。 ただし、最初のTEXTBOXに『99』を入力すると、途中のTEXTBOXへのフォーカスの移動はしないで最後のコマンドボタンにフォーカスが移動するようにしたいと考えています。 問題点を以下に書きます。 TEXTBOXの入力完了を現在、「AfterUpdate」イベントでつかまえて、TEXTBOXの値を取得し、その値が『99』だった場合、コマンドボタンにフォーカスを移動するようにコーディングしています。 こんな感じです。(かなり省略していますが、) Private Sub TextBox1_AfterUpdate() If TextBox1.Value = "99" Then CommandButton1.SetFocus Exit Sub End If End Sub この用にコーディングすると、TABINDEXが二つ後ろのTEXTBOXが入力待ち状態となってしまいます。 たとえば TEXTBOXが3つコマンドボタンが1つのフォームだと、 TEXTBOX1に『99』と入力し、上記のコーディングだと一度コマンドボタンにフォーカスが移動したあと、最後にTEXTBOX3にフォーカスが移動して入力待ち状態となる感じです。 色々試しましたが、解決方法が見つかりません。知っている方いましたら、教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- ユーザコントロールでのEnterキータブ移動
開発言語:VS2008・C# VS2008・C#で郵便番号や電話番号を入力できるユーザコントロールを作成しています。 入力フィールドはTEXTBOX、区切り文字はLABELで、 郵便番号なら3桁 + 区切り文字(-) + 4桁 電話番号なら3桁 + 区切り文字(-) + 4桁 + 区切り文字(-) + 4桁 といった感じで、プロパティで設定された値により、動的に入力フィールドのTEXTBOXを作成しています。 上記のユーザコントロールをフォームに配置し、ENTERキーでフォーカスを移動させたいのですが、現時点で、ユーザコントロール内のTEXTBOXでENTERを押した場合フォーカスはユーザコントロール内の次のTEXTBOXに移動するのですが、最後のTEXTBOXでENTERキーを押した場合ユーザコントロールからフォーカスが移動しなくなってしまいます。 例)住所フィールド(TEXTBOX)→ENTER押下→郵便番号(ユーザコントロール)の上3桁フィールド→ENTER押下→郵便番号(ユーザコントロール)の下4桁フィールド→ENTER押下(フォーカスが次のコントロールに移動しない) ユーザコントロール内のENTERキー移動はKeyDownイベントに関連付け行っていますが、これだとユーザコントロール内しかENTERでフォーカスが移動せずフォーム上の次のコントロールにフォーカスが移動しません。 どなたか、ENTERキーでユーザコントロールからフォーカスが移動できる方法を教えてください。
- 締切済み
- C・C++・C#
- TextBoxに特定の文字のみ入力を許す
VBの初心者です。 TextBoxに特定の文字は入力させないなどの制限をしたいです。 例えば半角カタカナ(6)の状態で、 1."/+"と入力し、[Enter]にて決定すると、"/"と表示される 2."+"と入力し、[Enter]にて決定すると、"+"と表示される (特定の順番の、特定の文字のみ入力制限をかける) 以上のような動きにするにはどうすればよいのでしょうか? よろしくお願いします。 ちなみにVB6.0で、OSはWinXP Professionalです。
- ベストアンサー
- Visual Basic
お礼
ずばり!でした。 どうもありがとうございました。