TabIndex-Eigenschaft (Beispiel)
Im folgenden Beispiel wird die TabIndex-Eigenschaft verwendet, um die Aktivierreihenfolge für einzelne Steuerelemente anzuzeigen und festzulegen. Sie können TAB drücken, um das nächste Steuerelement in der Aktivierreihenfolge zu erreichen und den TabIndex dieses Steuerelements anzuzeigen.
Sie können auch auf ein Steuerelement klicken, um dessen TabIndex anzuzeigen. Sie können den TabIndex eines Steuerelements ändern, indem Sie einen neuen Indexwert im Textfeld angeben und auf CommandButton3 klicken. Wenn Sie den TabIndex für ein Steuerelement ändern, wird auch der TabIndex für andere Steuerelemente im Frame aktualisiert.
Kopieren Sie diesen Beispielcode in den Deklarationsbereich eines Formulars. Make sure that the form contains:
- Ein Bezeichnungsfeld-Steuerelement ( Label ) mit der Bezeichnung "Label1".
- A TextBox named TextBox1.
- Ein Rahmen-Steuerelement ( Frame ) mit der Bezeichnung "Frame1".
- A TextBox in the Frame named TextBox2.
- Zwei CommandButton -Steuerelemente im Frame -Objekt mit der Bezeichnung "CommandButton1" und "CommandButton2".
- Eine Bildlaufleiste im Frame mit dem Namen ScrollBar1.
- Ein CommandButton-Element (nicht im Frame) mit der Bezeichnung "CommandButton3".
Private Sub MoveToFront()
Dim i, Temp As Integer
Temp = Frame1.ActiveControl.TabIndex
For i = 0 To Temp - 1
Frame1.Controls.Item(i).TabIndex = i + 1
Next i
Frame1.ActiveControl.TabIndex = 0
TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub
Private Sub CommandButton3_Click()
Dim i, Temp As Integer
If IsNumeric(TextBox1.Text) Then
Temp = Val(TextBox1.Text)
If Temp >= Frame1.Controls.Count Or Temp < 0
Then
'Entry out of range; move control to front
'of tab order
MoveToFront
ElseIf
Temp > Frame1.ActiveControl.TabIndex
Then
'Move entry down the list
For i = Frame1.ActiveControl.TabIndex + _
1 To Temp
Frame1.Controls.Item(i).TabIndex = _
i - 1
Next i
Frame1.ActiveControl.TabIndex = Temp
TextBox1.Text = _
Frame1.ActiveControl.TabIndex
Else
'Move Entry up the list
For i = Frame1.ActiveControl.TabIndex - _
1 To Temp
Frame1.Controls.Item(i).TabIndex = _
i + 1
Next i
Frame1.ActiveControl.TabIndex = Temp
TextBox1.Text = _
Frame1.ActiveControl.TabIndex
End If
Else
'Text entry; move control to front of tab
'order
MoveToFront
End If
End Sub
Private Sub UserForm_Initialize()
Label1.Caption = "TabIndex"
Frame1.Controls(0).SetFocus
TextBox1.Text = Frame1.ActiveControl.TabIndex
Frame1.Cycle = fmCycleCurrentForm
CommandButton3.Caption = "Set TabIndex"
CommandButton3.TakeFocusOnClick = False
End Sub
Private Sub TextBox2_Enter()
TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub
Private Sub CommandButton1_Enter()
TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub
Private Sub CommandButton2_Enter()
TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub
Private Sub ScrollBar1_Enter()
TextBox1.Text = Frame1.ActiveControl.TabIndex
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.