|
▼neptune さん:
>解決後だからもう見ないかな?
いえいえ、しっかり見ております
>CommandButtonのTabStopプロパティをFALSEにしておいて
>TextBox3のExitイベントで(検査必要なら検査して)
>CommandButtonにフォーカスを当てるという方法も思いつきました。
>どうですかね?
実はこの方法に近いことを一番最初にやってみたんです。
こんな感じです
Private Sub txt3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim X As Integer
X = Val(txt3.Text)
Select Case X
Case 10:
Lbl_3.Caption = "新規"
Kub = Get_Kub(Val(txt1.Text), Val(txt2.Text)) '区分取得
Me.txtKNO.Text = _
Mid(GET_KN(Kub), 1, 1) & CInt(Mid(GET_KN(Kub), 2, 4)) + 1 '新規工事番号出力
With Me.txtKNOS
.Text = "00"
.Enabled = False
End With 'サブコードに 00 セット
txtDCODE.SetFocus
Case 20, 30:
If X = 20 Then Lbl_3.Caption = "追加"
If X = 30 Then Lbl_3.Caption = "変更"
With txtKNOS
.Enabled = True
End With
Case Else:
Lbl_3.Caption = ""
CommandButton2.SetFocus
↑が機能しないで(ボタンのTabstopはFALSEです)次のTABへ
移動してしまうんです
End Select
End Sub
その結果、
・最初に相談したようにExitイベントのCancel = TRUE
になるとSetFocusが効かなくなる & このイベントプロシジャー
の中ではSETFOCUSが効かないみたいなんです
・エラー入力した場合、オペレーターから見て、画面クリアが優先処理
になる(正規コードを入れなおすためにはTextBoxをあらためて
選択する)といった問題が発生します
・Cancel値を使わなければ最大の問題である”正規コードを入れなければ
抜けられない”問題はneptuneさんの思いつかれた方法で解決するようで す。
そのへん、いかがなものなんでしょう・・・・
いずれにしましても、考えてくださってありがとうございます
心強いです。
|
|