• ベストアンサー

テキストボックスの桁数をカウントして、フォーカス移動

Win2000、VB6.0です。 テキストボックスとADOコントロールを使用して、レコードを編集・更新するフォームを作っています。 ただ、簡単に書く為に下の説明文ではDBについては書きません。 Form1に、Text1とText2があるとします。 Tab移動だけではなく、Text1に4桁目まで入力された時点で、Text2へフォーカスが移動するようにしたいと考えています。 Text1のChangeイベントで、 ------------------------------------ Private Sub Text1_Change()   If Len(Text1.Text) >= 4 Then     Text2.SetFocus   End If End Sub ------------------------------------ 以上のように記述しています。 ただ、Form1のロード時に、 ------------------------------------ Private Sub Form_Load()   Text1.Text = "1111" End Sub ------------------------------------ 以上のように記述すると、 「実行時エラー"5";」 「プロシージャの呼び出し、または引数が不正です。」 とエラーが発生してしまいます。 ロード時にテキストボックスに表示しつつ、入力された現在の桁数をカウントして、フォーカス移動する方法は無いのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

SetFocus を使わずに Enabled でフォーカスを移したら? MaxLength も使って。 Private Sub Form_Load()   With Text1     .IMEMode = 3     .MaxLength = 4     .Text = "1111"   End With End Sub Private Sub Text1_Change()   If Len(Text1.Text) >= 4 Then     With Text1       .Enabled = False       .Enabled = True     End With   End If End Sub

その他の回答 (1)

noname#185804
noname#185804
回答No.2

エラーを回避されるだけなら Private Sub Text1_Change()  If Len(Text1) >= 4 Then   If Text2.Visible Then Text2.SetFocus  End If End Sub Text2.Visible=TrueならSetFocusとすればエラーは出ないです。

関連するQ&A