Identificar los tipos de controles que tenemos en un Formulario de Excel vba

En este artículo les comparto unas macros en Excel que nos permitirán identificar los diferentes tipos de controles ActiveX que podemos utilizar en Formularios u hojas de Excel.

Cómo lo hacemos

Tenemos un formulario de Excel con 4 diferentes tipos de controles ActiveX: TextBox, CheckBox, ComboBox y Label. Primeramente haremos uso de la intrucción For Each…Next para recorrer todos los controles que tenemos en el formulario.

image

Figura 1. Formulario de Excel vba con diferentes tipos de controles.

Para poder identificar el tipo de Control haremos uso de la instrucción TypeOf nombre_objeto Is tipo_objeto.

Ejemplos con la instrucción TypeOf

Cambiar el efecto a Cuadro de texto

El primer tipo que usaremos será el TextBox que hace referencia a Cuadro de texto. Le cambiaremos la propiedad SpecialEffect a todos los TexBox que haya en el formulario:

image

Figura 2. Cambiando la propiedad SpecialEffect de un TextBox.

A continuación la macro usada:

'Botón Efecto
Private Sub CommandButton3_Click()
'
    For Each Control In Me.Controls
        '
        If TypeOf Control Is MSForms.TextBox Then
            '
            Control.SpecialEffect = fmSpecialEffectEtched
            '
        End If
        '
    Next Control
    '
End Sub

Mostrar el nombre de CheckBox

El siguiente tipo será CheckBox, que son los cuadros de chequeo. Mostraremos en un mensaje el nombre de los 4 CheckBox del formulario:

image

Figura 3. Mostrando nombre de CheckBox con MsgBox.

A continuación la macro usada:

'Botón Nombres
Private Sub CommandButton4_Click()
'
    For Each Control In Me.Controls
        '
        If TypeOf Control Is MSForms.CheckBox Then
            '
            Nombre = Control.Name
            Nombre2 = Nombre2 & " " & Nombre
            '
        End If
        '
    Next Control
    '
    MsgBox Nombre2, vbInformation

End Sub

Contar Combos

Otro tipo de control es el ComboBox. Para este ejemplo mostraremos un mensaje indicando cuántos Combos hay:

image

Figura 4. Contar Combos en el formulario.

Ahora les comparto el código vba usado:

'Botón Contar
Private Sub CommandButton1_Click()
'
Dim CuentaCombo As Integer
    '
    CuentaCombo = 0
    '
    For Each Control In Me.Controls
        '
        If TypeOf Control Is MSForms.ComboBox Then
            CuentaCombo = CuentaCombo + 1
        End If
        '
    Next Control
    '
    MsgBox CuentaCombo & " Combos", vbInformation
    '
End Sub

Cambiar color a Etiquetas

Para este último ejemplo usaremos el tipo de control Label o etiquetas. Le cambiaremos el color a rojo a todas las etiquetas del formulario modificando la propiedad ForeColor:

image

'Botón Color
Private Sub CommandButton2_Click()
'
    For Each Control In Me.Controls
        '
        If TypeOf Control Is MSForms.Label Then
            '
            Control.ForeColor = vbRed
            '
        End If
        '
    Next Control
    '
End Sub

Figura 5. Modificar color de texto a etiquetas.

Anexos

:: Descargar Identificar Controles.rar

También te podría gustar...