
やりたい事を以下に書きます。
ユーザーフォームで入力用の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にフォーカスが移動して入力待ち状態となる感じです。
色々試しましたが、解決方法が見つかりません。知っている方いましたら、教えてください。
No.3ベストアンサー
- 回答日時:
こんにちは。
999とか入れる事がなければ、Changeが簡単ですね。
Private Sub TextBox1_Change()
If TextBox1.Text = "99" Then CommandButton1.SetFocus
End Sub
999も考慮すると、こんな感じでしょうか?
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 And TextBox1.Value = "99" Then
CommandButton1.SetFocus
End If
End Sub
Excel97で確認しました。
ありがとうございます。
うまく行きそうですね。
他の部分との関係もあるので、参考にして試してみます。
回答ありがとうございました。
No.2
- 回答日時:
Private Sub TextBox1_Change()
に書いたんじゃ駄目ですか?
ありがとうございます。
Changeに書くのは試していますが、やはりこのTEXTに入力されるコードが1~2桁であるため、『9』と入力されたときもイベントが発生してしまうのが問題になるので使えませんでした。
回答ありがとうございました。
No.1
- 回答日時:
残りのテキストボックスに入力が必要ないのであれば、残りのテキストボックスをのTEXT.Enabled = Falseとしてみてください。
もちろんタイミングを見て、Enabled = Trueに戻してくださいね。
回答ありがとうございます。
確かに上記の方法でうまく行きますね。
現在作成中のフォームの仕様上も『99』を入力した場合は、終了という意味なので、他のTEXTは入力が規制されても良いかと思います。
他にも方法がないか、他の皆さんの回答も待ってみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
他の人には声だして挨拶してる...
-
どこにもフォーカスを当てたくない
-
ユーザーフォームのSetFocusが...
-
池袋サンシャイン通りでキャッ...
-
ダイアログのWM_KEYDOWNで処理...
-
コントロールのフォーカスが横...
-
業務に差し支えのないテンキー...
-
VBAのボタン操作について。
-
アクセス フォーカスの移動...
-
Accessの更新後処理で特定の条...
-
矢印(左右)キーでイベントを...
-
フォント「Impact」
-
VBAでのユーザーフォーム上...
-
C# ReadOnlyのTextBoxで
-
Private Sub内でSubをCallしたい
-
F503iにSVって表示されてるんで...
-
Suicaでの自販機購入方法を教え...
-
『エッジの効いた○○』の意味。
-
VBでタッチパネルを・・・
-
トップページの上部の広告宣伝...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他の人には声だして挨拶してる...
-
どこにもフォーカスを当てたくない
-
C# ReadOnlyのTextBoxで
-
ユーザーフォームのSetFocusが...
-
矢印(左右)キーでイベントを...
-
油性マジックで書いたサインを...
-
MFCでコンボボックスを選択不可...
-
業務に差し支えのないテンキー...
-
GridViewでハイライトを使用し...
-
エクセルVBA テキストボックス...
-
Accessの更新後処理で特定の条...
-
Private Sub内でSubをCallしたい
-
コマンドボタンのEnterイベント...
-
テキストボックス入力後、警告...
-
至急回答お願いします。 間違え...
-
油性マジックの消し方
-
VB.NET ボタン押下で一つ前の...
-
『エッジの効いた○○』の意味。
-
酸素ボンベのレギュレーターか...
-
小学校で遊ぶてんかのルールに...
おすすめ情報