

テキストボックスで、2バイト入力されたらTABで次のテキストボックス
に移動すると言うイベントを4つのテキストボックスのKeyUpイベント
に記述しました。
サンプルとして一つ書きます。
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Len(Text1.Text) = 2 Then
SendKeys "{TAB}"
KeyCode = 0
End If
End Sub
上記のソースでプログラムを実行し、Text1に2バイト入力されると、
次のテキストボックス(Text2)に移動します。
更にText2,Text3に、2バイト入力しますと、カーソルがText4に来ます。
ここで、マウスでText1にカーソルを持っていき、値を変更すると、
Text2に移動するはずが、Text4にカーソルが移動します。
なぜでしょうか??
くだらない質問ですが、よろしくお願いします。
No.5
- 回答日時:
#2です。
処理としてTab移動を使わなければならないのでしょうか?
もし、カーソルを移動させればよいというのであれば、
「SetFocus」を使ったらダメですか?
If Len(Text1.Text) = 2 Then
Text2.SetForcus
End If
という感じで。
現状ではちょっと私にはわかりかねます・・・
すいません。
もしかしたら、テキストボックスが複数ありますけど、
コントロール配列にしてませんか?
サンプルをコピーして試しにやってみましたけど、
私のほうではちゃんと次のテキストボックスに
移動します。
どうも原因は一度入力した値を変更すると、それ以降の
テキストボックスのKeyUpイベントが発生するため
教えていただいた方法でも同じ現象が発生すると
思われます。
何でKeyDownイベントは良くて、KeyUpイベントは
駄目なんでしょうね?なぞです・・・
No.4
- 回答日時:
#1です。
たびたびすいません。
タブオーダーの順番が間違ってるんじゃないですか?
No.3
- 回答日時:
#1です。
とりあえずイベントプロシージャのどこかにmsgboxでもかましてみて、
何回イベント処理が発生しているか確認してみては。
msgboxをかまし、一度入力したテキストボックスを変更
すると、全てのテキストボックスのKeyUpイベントが発生
して次から次へとTABでカーソルが移動してしまう事が
判明しました。
で、なぜ??何ですけど、これをKeyDownイベントにして
「If Len(Text1.Text) = 2 Then」の部分を
「If Len(Text1.Text) = 1 Then 」としてみた所、
こちらでは上手く動作します。
なので、これでとりあえず希望どおりに出来たので、良し
という所です。
色々お手数をおかけしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access の SetFocus について教えてください 5 2022/08/04 07:32
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ 2 2022/07/29 11:12
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
256色で任意の色を作成する時、...
-
visual basic初心者です。 visu...
-
テキストボックスでMAX文字数を...
-
VBAで選択箇所がある場合の重複...
-
VBAのユーザーフォームで、テキ...
-
VB2010 TextBoxの数字の表示...
-
基本的な質問で本当に申し訳あ...
-
TextBoxの内容を右寄せ
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
チェックボックスを操作できな...
-
オートメーションで作成したExc...
-
RichTextBoxで指定行の色を自動...
-
クリップボードにアクティブウ...
-
ClickとChangeイベントの違いは...
-
C言語のサフィックスについて
-
レコードセットにnullの場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
VBAのユーザーフォームで、テキ...
-
コンボボックスからテキストボ...
-
VBでの入力値制限について
-
テキストボックスに大文字を
-
テキストボックスにカーソルを...
-
VBでローマ字入力とかな入力を...
-
年齢の計算について
-
ACCESS 除算での小数点切上げ方法
-
Excel ユーザーフォームで計算 ...
-
【C#】コンボボックスにおけるS...
-
VB2010 TextBoxの数字の表示...
-
VBAのフォーム カーソル移動
-
TextBoxの内容を右寄せ
-
VB2005テキストボックスへのコ...
おすすめ情報