Ejemplo de propiedad TabIndex
En el ejemplo siguiente se usa la propiedad TabIndex para mostrar y establecer el orden de tabulación de los controles individuales. Puede presionar Tab para llegar al siguiente control en el orden de tabulación y mostrar el TabIndex de ese control.
También puede hacer clic en un control para mostrar su TabIndex. Puede cambiar el tabindex de un control especificando un nuevo valor de índice en el Cuadro de texto y haciendo clic en CommandButton3. Al cambiar TabIndex para un control, también se actualiza tabindex para otros controles del marco.
Para usar este ejemplo, copie este código de muestra en la parte Declaraciones de un formulario. Asegúrese de que el formulario contiene:
- Un control Label denominado Label1.
- Un control TextBox denominado TextBox1.
- Un control Frame denominado Frame1.
- Un control TextBox en el control Frame, denominado TextBox2.
- Dos controles CommandButton en el objeto Frame denominado CommandButton1 y CommandButton2.
- ScrollBar en el marco denominado ScrollBar1.
- Un elemento CommandButton (no en Frame) denominado 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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.