Cuadro de Texto (TextBox) en Formularios VBA Excel
El control TextBox VBA para Excel es una herramienta multipropósito se utilizan normalmente para mostrar información o permitir a los usuarios ingresar datos. Los usuarios pueden editar contenido.
Insertar Control de Cuadro de Texto (TextBox) en Formulario
Haz clic en la pestaña «Insertar» y selecciona «UserForm». Busca y selecciona «Control de Cuadro de Texto (TextBox)» en la lista de controles del Cuadro de Herramientas.
Propiedades
Las propiedades más importantes de los cuadros de texto son:
- Name: nos permite especificar el nombre con el que nos referiremos al cuadro de texto del código. Por defecto, se llama TextBox1.
- Text: esta propiedad controla el contenido que se muestra en el cuadro de texto. Se puede configurar de tres formas diferentes. En tiempo de diseño desde la ventana Propiedades. En tiempo de ejecución usando código como: txt_mensaje.Text = «Ingresa tus datos aquí.» Finalmente, utilizando texto escrito por el usuario en tiempo de ejecución. El contenido se puede recuperar leyendo la propiedad de texto en tiempo de ejecución.
- Font: esta propiedad establece la fuente, el estilo y el tamaño del texto contenido en el control.
- Enabled: Verdadero o Falso dependiendo de si el control puede responder a eventos generados por el usuario. Usamos esta propiedad para habilitar y deshabilitar el control. Si asignamos un valor de False, el usuario no podrá interactuar con el control. Esto significa que el cuadro de texto no responderá al usuario hasta que lo cambiemos a verdadero.
Propiedades del TextBox
Las propiedades más importantes del TextBox
son:
- Name: Identificador del TextBox. Por defecto es
TextBox1
, pero puedes cambiarlo a algo más descriptivo comotxtNombre
. - Text: Contenido del TextBox. Puede establecerse en tiempo de diseño, tiempo de ejecución, o mediante la entrada del usuario.
- Font: Establece la fuente, el estilo y el tamaño del texto.
- Enabled: Determina si el TextBox está habilitado para la interacción del usuario.
- Locked: Controla si el contenido del TextBox puede ser editado.
- MaxLength: Número máximo de caracteres que el usuario puede ingresar.
- ScrollBars: Permite agregar barras de desplazamiento si el contenido es mayor que el área visible.
- MultiLine: Permite que el TextBox acepte múltiples líneas de texto.
- PasswordChar: Caracter para ocultar la entrada del usuario, útil para contraseñas.
3. Ejemplo Práctico: Configurar y Usar un TextBox
Inserción y Configuración
- Nombre y Apellido:
- Añade dos
Label
y dosTextBox
al UserForm. - Cambia el
Name
del primer TextBox atxtNombre
y del segundo atxtApellido
.
- Añade dos
Configuración de Propiedades en Tiempo de Diseño
- Name: Cambia
TextBox1
atxtNombre
yTextBox2
atxtApellido
. - Text: Puedes establecer un texto predeterminado, aunque generalmente se deja vacío para la entrada del usuario.
- Font: Cambia la fuente si es necesario.
- Enabled: Si quieres que el TextBox esté deshabilitado inicialmente, establece
Enabled
enFalse
. - Locked: Si quieres que el contenido no sea editable, establece
Locked
enTrue
. - MaxLength: Si solo deseas permitir hasta 50 caracteres, establece
MaxLength
en 50. - ScrollBars: Si esperas texto largo, establece
ScrollBars
enfmScrollBarsVertical
para una barra de desplazamiento vertical. - MultiLine: Para permitir múltiples líneas de texto, establece
MultiLine
enTrue
. - PasswordChar: Para ocultar la entrada (por ejemplo, contraseñas), establece
PasswordChar
en*
.
Código para Manipular el TextBox en Tiempo de Ejecución
Private Sub UserForm_Initialize()
' Inicializa el TextBox con un mensaje
txtNombre.Text = "Ingresa tu nombre aquí."
txtApellido.Text = "Ingresa tu apellido aquí."
' Configurar otras propiedades en tiempo de ejecución
txtNombre.Font.Size = 12
txtNombre.Font.Bold = True
txtApellido.MaxLength = 50
End Sub
Private Sub btnInsertar_Click()
Dim lastRow As Long
Dim ws As Worksheet
' Set the worksheet where data will be inserted
Set ws = ThisWorkbook.Sheets("Sheet1")
' Find the last row with data in column A
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
' Insert the data from the UserForm into the worksheet
ws.Cells(lastRow, 1).Value = txtNombre.Text
ws.Cells(lastRow, 2).Value = txtApellido.Text
End Sub
4. Agregar Eventos al TextBox
Para manejar eventos del TextBox
, como cuando el usuario cambia el texto, puedes usar el siguiente código:
Private Sub txtNombre_Change()
' Evento que se dispara cuando el contenido del TextBox cambia
If Len(txtNombre.Text) > 0 Then
txtNombre.BackColor = vbWhite
Else
txtNombre.BackColor = vbYellow
End If
End Sub
Resumen de Propiedades
- Text: Controla el contenido.
- Font: Establece la apariencia del texto.
- Locked: Impide la edición si es
True
. - MaxLength: Limita el número de caracteres.
- ScrollBars: Agrega barras de desplazamiento.
- MultiLine: Permite múltiples líneas de texto.
- PasswordChar: Oculta la entrada del usuario.
Conoce otros controles para nuestros formularios:
- Etiquetas (Label)
- Cuadro Combinado (ComboBox)
- Casilla de verificación (Checkbox)
- Botón de Opciones (OptionButton)
- Botón de Comando (Commandbutton) y el Marco (Frame)
- Cuadro de Lista (ListBox)
- Vista de Lista (ListView)
- Páginas Múltiples y Tab Strip
- Barra de desplazamiento y Botón de Número
- Control Imagen (Imagen)
- botón de alternar (Togglebutton)
Responses