|
続いて、質問させてください。
前回の
>> dim acc as iaccessible
>> set acc = textbox1
>> acc.accselect 16&
>> acc.accselect 1&
の
16&
1&
の定数のことは良く理解できてないままなのですが、できたら、この定数の意味も説明していただければ助かります。
本題の質問です。
前回の質問に関連しているので、このスレッドで続いて質問します。
Userform1に'TextBox1,'TextBox2,'TextBox3を配置しています。
'TextBox1***TextBox2の文字列の長さを格納
'TextBox2***指定文字数の文字列を入れて、この文字列をアクティブセルに格納
'TextBox3***任意の文字列を入れて、この文字列をアクティブセルの右隣セルに格納
TextBox3の値を入力確認メッセージで、Noを選んだとき、TextBox3を入力可能状態にしたいのですが、TextBox1にフォーカスが移動してしまいます。どのようにすればTextBox3を入力可能状態にできるでしょうか。
下記がそのコードです。
Private Sub TextBox2_Change()
Dim n As Long
Dim acc As IAccessible
If Len(Me.TextBox2.Text) = Me.TextBox1.Value Then
If YN確認("指定データ数になりました" & vbCr & "データ入力しますか?") = vbYes Then
ActiveCell.Value = Me.TextBox2.Text
'TextBox3へフォーカス移動
Set acc = TextBox3
Else
Set acc = TextBox2
End If
acc.accSelect 16&
acc.accSelect 1&
End If
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim acc As IAccessible
Dim strm As String
Dim i As Long
If Me.TextBox3.Text = "" Then Exit Sub
If YN確認("データ入力しますか?") = vbYes Then
ActiveCell.Offset(0, 1).Value = TextBox3.Text
Application.GoTo ActiveCell.Offset(1, 0) 'カーソルを下へ
Me.TextBox2.Text = Empty
Me.TextBox3.Text = Empty
'
'TextBox2へフォーカス移動
Set acc = TextBox2
Else
'TextBox3へフォーカスを戻す
Set acc = TextBox3 '<<==1.vbNoでは、TextBox3が入力可能状態にならない
End If
acc.accSelect 16&
acc.accSelect 1&
End Sub
'実行確認メッセージを表示
Function YN確認(Msg As String)
Dim Style As VbMsgBoxStyle
Dim Title As String
Style = vbYesNo + vbExclamation + vbDefaultButton1
Title = "実行の確認"
YN確認 = MsgBox(Msg, Style, Title) 'vbYes = 実行 , vbNo = 中止
End Function
|
|