フォーム上にある、TabIndexが5のコントロールにフォーカスを移動するにはどうすれば、よいでしょうか?
TabIndexが5のコントロールは、TextBoxか、ComboBoxか、あるいは、
その他入力が可能なコントロールです。
ControlsコレクションのメンバをFor Eachでまわして、
TabIndex=5であるオブジェクトを探し、
SetFocusしてループを抜けるとか。
Sayさん,ありがとうございます。
アドバイスを理解しきれていないのか......
いくつか、テキストボックス、コンボボックスなどをおいた
Form1で、
Dim Con as Control
For Each Con in Form1.Controls
If Con.TabIndex = 5 Then
MsgBox(TypeName(Con))
Exit For
End If
Next
は、動作しますが、
For Each Con in Form1.Controls
If Con.TabIndex = 5 Then
Con.SetFocus
Exit For
End If
Next
では、「プロシージャの呼び出し、または、引数が必要です」となりますが。
まさか、Form_LoadあたりでShowする前にやってるなんてことは・・・
そのまさかです。素人のやりそうなことを、よくわかってらっしゃると
感心いたしております。
Private Sub Form_Load()
Dim Con as Control
For Each Con in Me.Controls
If Con.TabIndex = 5 then
Me.Show 'Load時にするのなら、Showしてからということですね。
Con.SetFocus
Exit For
End If
Next
End Sub
ありがとうございました。
ツイート | ![]() |