Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VBA Excel UserForms (Spanish Edition)
VBA Excel UserForms (Spanish Edition)
UserForms
By
Luis E Brito
Copyright 2016
Copyright © 2016 by Luis E Brito
All rights reserved. This book or any portion thereof may not be reproduced or
used in any manner whatsoever without the express written permission of the
publisher except for the use of brief quotations in a book review.
Tabla de Contenidos
Otros Libros Publicados por Luis E Brito
Introducción
Capítulo 1 - UserForms
Capítulo 2 - Controles: Cajas de Texto, Etiquetas y Botones de Comando
Capítulo 3 - Controles: Casilla de Verificación, Botón de Opción, Botón de
Alternar y Marcos
Capítulo 4 - Controles: Lista y Cuadro Combinado
Capítulo 5 - Controles: Barra de Desplazamiento, Botón de Número
Capítulo 6 - Control: Multi Páginas, Imagen y RefEdit
Capítulo 7 - Herramientas de Formato
Capítulo 8 - Eventos
Capítulo 9 - Interacción Entre Formularios, VBA y Hojas de Excel
Resumen
Acerca del Autor
Otros Libros Publicados por Luis E Brito
Amazon US
https://www.amazon.com/dp/B01M8K5120
Amazon México
https://www.amazon.com.mx/dp/B01M8K5120
Amazon US
https://www.amazon.com/dp/B01M674D09
Amazon México
https://www.amazon.com.mx/dp/B01M674D09
Introducción
Los formularios (UserForms) y sus controles constituyen una de las
herramientas que proporciona VBA para el intercambio de información:
Entrada de datos y salida de resultados. Proporcionan la facilidad de diseñar y
crear formularios que son agradable a la vista, y que enfocan la visión del
usuario en los datos que son requeridos para la ejecución de los
procedimientos.
La mayoría de los usuarios no conocen esta utilidad, a pesar de que son fáciles
de diseñar y que proporcionan una interfaz gráfica agradable que mejora la
experiencia del usuario a la hora de ingresar datos a la aplicación. Pueden ser
utilizados como forma de entrada para incorporar datos a una base de datos, o
simplemente para recoger datos que serán utilizados para realizar cálculos y
devolver resultados como si fuesen una aplicación independiente.
En este libro trataremos sobre los formularios, los controles, sus propiedades
y métodos, como diseñar y construir un formulario, como programar los
controles, asociándolos a eventos para que ejecuten los procedimientos que se
requieran.
Finalmente les expreso, a pesar que el material es extenso, que existe una gran
cantidad de propiedades y métodos, que existe una gran cantidad de eventos,
podemos sacar provecho de los formularios (UserForms) si nos enfocamos en
algunos elementos que son importantes. A medida que vayamos avanzando en
el aprendizaje de los elementos fundamentales podemos ir incorporando
nuevos elementos cuando sean requeridos. Una fuente de ayuda muy importante
es el examinador de objetos, se puede recurrir a él para verificar los objetos,
sus propiedades, métodos y la sintaxis.
Sin más, solamente deseo que este libro sea de utilidad y cumpla con su
objetivo de ayudar al lector a comprender y a utilizar los formularios en VBA
Excel.
Capítulo 1 - UserForms
UserForms (Formas o Formularios)
Una forma o formulario (UserForm) es esencialmente una caja de dialogo
construida al gusto y necesidad del usuario, de allí su nombre en inglés: User:
usuario y Form. Forma o formulario. Pero en realidad esta definición se queda
corta. Recordemos las funciones InputBox y MsgBox, donde la entrada se
restringe a un solo elemento, un valor numérico, una cadena de texto, un rango,
una matriz. Pero una forma permite recoger múltiples valores, en las cajas de
texto, permite seleccionar elementos con listas o cajas combinadas,
seleccionar opciones y muchas otras características. También permite
desplegar los resultados de un procedimiento. Pueden intercambiar valores
con las hojas de Excel o puede trabajar independientemente sin intercambiar
valores con las hojas.
En VBA un UserForm es un objeto, con propiedades y métodos, que contiene
otros objetos como cajas de texto, etiquetas, botones, imágenes, etc.
Como todo objeto dentro del modelo sigue las mismas reglas. El operador
punto se utiliza para separar el objeto de sus propiedades y métodos.
UserFormName.Propiedad
UserFormName.Metodo
Las propiedades incluyen aquellas que se utilizan para dar formato a las
características del formulario. Estas propiedades se pueden cambiar mediante
código en VBA, o se pueden cambiar en la ventana de propiedades, si esta
ventana no está visible puede hacerse visible con la tecla F4, o en la barra de
menú, en la pestaña ver, hacer clic en Ventana de propiedades.
Algunas de las propiedades que se pueden cambiar son:
Name
Para cambiar el nombre de la forma. De forma predeterminada VBA asigna a
las formas el nombre genérico UserForm y un número consecutivo. Así la
primera forma que creemos tendrá nombre UserForm1, y la segunda
UserForm2, y así sucesivamente. Sin embargo, se puede cambiar este nombre
por otro nombre que resulte más descriptivo y que tenga significado para el
programador. Con la finalidad de identificar los diferentes objetos se
recomienda colocar un prefijo, y luego el nombre que se desee. Esto no es
obligatorio, pero si recomendable. Por ejemplo, para las formas se utiliza el
prefijo es frm, así que podríamos dar un nombre a la forma frmEmpleados, si
estamos trabajando en una forma para recoger datos de los empleados.
BackColor
Para establecer el color del fondo de la forma. Se puede cambiar en la ventana
de propiedades, y muestra una paleta de colores para la selección.
BorderStyle
Para cambiar el tipo de borde de la forma. Tiene dos valores:
fmBorderStyleNone (0) y fmBorderStyleSingle (1).
Caption
Para colocar una etiqueta en la barra de título de la forma. Por defecto muestra
el título UserForm y un número consecutivo igual al que tiene la propiedad
Name.
Font
Cambia las propiedades asociadas a la fuente utilizada, nombre de la fuente,
tamaño, resaltado, itálica, etc.
ForeColor
Permite definir el color que mostrara la fuente.
Height
Para modificar el alto de la Forma. También se puede modificar el alto
arrastrando el borde inferior, donde aparece un cuadradito de color blanco,
cuando aparezca el cursor como una doble flecha vertical.
Width
Para modificar el ancho de la forma. También se puede modificar el ancho
arrastrando el borde lateral, donde aparece un cuadradito de color blanco,
cuando aparezca el cursor como una doble flecha horizontal.
Cada uno de los controles que se crean en la forma constituyen propiedades
del objeto UserFormName. Por ejemplo, si se crea una caja de texto, TextBox1
se convierte en una propiedad.
Entre los métodos más importantes de los UserformName están Show y Hide.
UserFormName.Show muestra la forma
UserFormName.Hide oculta la forma.
Como se crea una Forma (UserForm)
Una Forma se crea en el editor de Visual Basic. En el menú insertar, que
permite insertar módulos y procedimientos, también tiene la opción de insertar
UserForm. Si se tienen varios proyectos abiertos (Libros) primero debe
seleccionarse el libro donde se desea insertar el UserForm. Luego en la barra
de menú hacer clic en Insertar y seleccionar UserForm.
Se creará una forma vacía con el nombre de UserForm1 en la barra de título, y
aparecerá el cuadro de herramientas con los controles que pueden utilizarse en
la forma. También en el explorador de proyectos aparecerá una carpeta con el
nombre Formularios y en la ventana de propiedades aparecerán las
propiedades de UserForm1.
La caja de texto muestra en las esquinas y en la parte central de cada lado unos
pequeños cuadrados de color blanco, que son unas agarraderas (handles) que
permiten redimensionar la caja. Cuando se coloca el cursor sobre las
agarraderas de las esquinas aparecerá una flecha en diagonal de doble punta,
haciendo clic y manteniendo presionado el botón del ratón y moviéndola
permitirá cambiar la altura y anchura de la caja en forma simultánea. En los
cuadros de los bordes inferior y superior aparecerá una doble flecha vertical,
haciendo clic y manteniendo presionado movemos y cambiará el alto de la
caja. Igual sucede con los cuadros que están en los laterales izquierdo y
derecho, al moverlos cambiara el ancho de la caja. En cualquier parte del
borde de la caja aparecerá una cruz de flechas de doble dirección, al hacer
clic y mantener presionado, cuando presenta esta forma, permitirá moverá la
caja en cualquier dirección, al soltar el botón del ratón se anclará la caja en su
nueva posición.
En la ventana de propiedades se desplegarán las propiedades de la caja de
texto recién creada. En esta ventana se mostrarán las propiedades del control
que se haya seleccionado, si no se encuentra seleccionado ningún control,
mostrará las propiedades de la forma.
En la figura se muestra una forma con dos grupos de opciones, cada grupo está
incluido dentro de su propio marco, de esta manera la exclusión de las
diferentes opciones queda contenida, y no se afectan entre sí. De esta manera
es posible seleccionar una opción en el marco de la izquierda y seleccionar
una opción en el marco de la derecha.
Tiene propiedad Name para cambiar el nombre del control, pero no tiene
propiedad Caption para colocar una etiqueta de identificación, por lo que se
necesita un control etiqueta (label) para colocar una identificación al control.
Las propiedades generales para dar formato también aplican a este control,
tales como:
Backcolor, BackStyle, BorderColor, BorderStyle, Font, ForeColor, Height,
Width, Top, Left.
Al igual que el control lista, tienen una propiedad RowSource, que permite
crear la lista de elementos del control, ligándolo a un rango o a un nombre de
rango de una hoja de Excel.
Formas de Poblar una Lista o Cuadro Combinado
Utilizando el método AddItem
Una lista o un cuadro combinado pueden ser cargados utilizando el método
AddItem, en un evento de inicialización del formulario. Utilizando la siguiente
sintaxis:
ObjetoListBox.AddItem ([pvargItem, [pvargIndex])
ObjetoComboBox.AddItem([pvargItem, [pvargIndex])
Donde pvargItem es opcional y es el elemento o fila que se va a añadir a la
lista o cuadro combinado y,
pvargIndex es opcional y es un número entero, que representa la posición del
elemento o fila dentro del objeto. Si se omite el Index, el Item o fila es
ubicado al final de la lista. Index comienza con cero, así que el primer
elemento de la lista tiene index 0. El valor de index no puede ser mayor que el
número total de filas, el cual se establece con la propiedad ListCount.
AddItem no funciona si el ListBox o ComboBox están ligados a datos
mediante la propiedad RowSource, así que, si desean agregar elementos
utilizando el método AddItem, primero debe borrarse el valor de la propiedad
RowSource.
A continuación, un ejemplo de un procedimiento de un evento de inicialización
del formulario, que carga los elementos de la lista utilizando el método
AddItem.
Private Sub UserForm_Initialize()
Me.lstTest.AddItem "Peter"
Me.lstTest.AddItem "John"
Me.lstTest.AddItem "Richard"
Me.lstTest.AddItem "Luis"
Me.lstTest.AddItem "Jorge"
End Sub
Aquí Me se refiere al objeto UserForm activo.
A continuación, se muestra como aparece el control lista luego de la
inicialización.
Se observa que en la caja de lista solo se pueden visualizar 3 elementos, por
lo que aparece una barra de desplazamiento vertical para acceder a los
elementos no visibles dentro de la caja de la lista.
Para un control de caja combinado (ComboBox) procedemos de manera
similar con el método AddItem. Me, se refiere al objeto UserForm Activo,
donde se encuentra el control cuadro combinado y cbopaises es el nombre del
objeto ComboBox.
En lugar de Me podríamos haber utilizado frmTESTCBO.
frmTESTCBO.cbopaises.AddItem "País" es equivalente a
Me.cbopaises.AddItem "País".
Private Sub UserForm_Initialize()
Me.cbopaises.AddItem "Venezuela"
Me.cbopaises.AddItem "México"
Me.cbopaises.AddItem "Colombia"
Me.cbopaises.AddItem "Brasil"
Me.cbopaises.AddItem "Peru"
Me.cbopaises.AddItem "Chile"
Me.cbopaises.AddItem "Ecuador"
End Sub
Aparece una caja de texto, el cual al presionar el botón con flecha en el borde
derecho despliega un menú, con los elementos añadidos con el método
AddItem.
Utilizando la Propiedad RowSource
La propiedad RowSource permite cargar de elementos un control de lista o un
control de caja combinada. RowSource ingresa una referencia a un rango de
celdas dentro de una hoja, el cual es un rango vertical de celdas para una lista
de una sola columna, o un bloque de celdas para una lista de múltiples
columnas. En la siguiente figura se muestra el rango A3:A8, de la hoja datos.
La sintaxis es el nombre de la hoja seguido de un signo de admiración y luego
el rango de las celdas. Si el nombre de la hoja contiene espacios vacíos o
caracteres especiales, debe colocarse el nombre dentro de comillas simples.
Por ejemplo si el nombre de la hoja es datos de listas, la referencia debe
colocarse: 'datos de listas'!A3:A8
La referencia del rango puede ser colocado directamente en la ventana de
propiedades, donde aparece la propiedad RowSource. En la figura se muestra
una porción de la ventana de propiedades del objeto tipo ListBox de nombre
lstGolosinas, con la propiedad RowSource y la referencia del rango.
Para que los valores de las barras de desplazamiento se copien a las cajas de
texto se crean procedimientos que se ejecutan con el evento Change. Cada vez
que se haga un cambio en las barras de desplazamiento se ejecutara el
procedimiento. A continuación, los procedimientos para los eventos Change de
las dos barras de desplazamientos.
Private Sub scrbar1_Change()
Me.txtVal1.Value = scrbar1.Value
Me.txtVal3.Value = Val(Me.txtVal1.Value) * Val(Me.txtVal2.Value)
End Sub
###
Private Sub scrBar2_Change()
Me.txtVal2.Value = scrBar2.Value
Me.txtVal3.Value = Val(Me.txtVal1.Value) * Val(Me.txtVal2.Value)
End Sub
Cuando se acciona cualquiera de las barras de desplazamiento se efectúa la
multiplicación de los valores que contengan las cajas de texto 1 y 2 y el
resultado se colocara en la caja de texto 3. Los valores almacenados en las
cajas de texto son de tipo String, por lo que para transformarlos en números se
utiliza la función Val.
En resumen, las propiedades más importantes de las barras de desplazamiento
(ScrollBar) son las siguientes:
Name: Para asignar un nombre al control
ControlSource: Identifica la dirección de una celda de una hoja o de un campo
ligado al control. El valor predeterminado es una cadena de texto vacía. Un
ControlSource solo puede estar ligado a un control.
LargeChange: Para establecer el cambio grande, cuando se presiona en la zona
de la barra de desplazamiento ubicada entre los dos botones.
SmallChange: Para establecer el cambio pequeño, cuando se presiona en los
dos botones laterales de la barra de desplazamiento.
Max: Valor máximo de la barra de desplazamiento.
Min: Valor mínimo de la barra de desplazamiento.
Orientation: Determina la orientación que tendrá la barra de desplazamiento,
tiene tres valores: Auto, -1, fmOrientationAuto; Vertical, 0,
fmOrientationVertical; Horizontal, 1, fmOrientationHorizontal. La propiedad
Orientation tiene el valor predeterminado en Auto, por lo que la barra de
desplazamiento tendrá una orientación dependiendo de las dimensiones de alto
y ancho del control-
Botón de Número (Spin Button, spn)
El control de Botón de número (Spin Button) funciona de manera similar que
el control de barra de desplazamiento (ScrollBar), la diferencia es que el
control de botón de número solo tiene dos botones, uno para disminuir y otra
para incrementar en una cantidad establecida con la propiedad SmallChange,
la cual tiene un valor predeterminado de 1. No muestra una barra entre los
botones, por lo que no tiene la propiedad LargeChange.
Tiene la propiedad Name para cambiar el nombre del control, pero no tiene
propiedad caption. Tiene las propiedades generales que son utilizadas para
dar formato al control.
La propiedad ControlSource funciona de igual manera que para el control
barra de desplazamiento.
El valor del control se puede asociar a una caja de texto o a una etiqueta para
que se actualice utilizando un procedimiento asociado a un evento Change del
control SpinButton. En el siguiente procedimiento asociado a un evento
Change del control spnVal1 se liga el valor del control txtVal1 al valor del
control spnVal1.
Private Sub spnVal1_Change()
Me.txtVal1.Value = Me.spnVal1.Value
End Sub
Cada página actúa como si fuese una forma individual, tiene su propia ventana
de propiedades para cambiar las propiedades de cada página. Entre las
propiedades están:
Name, para dar nombre a cada página.
Caption, para colocar la etiqueta en la pestaña que identifica la página.
En cada página pueden colocarse los controles que se requieran y su
programación es como si se tratase de una forma independiente.
Control Imagen (Image, img)
Este control se utiliza para insertar una imagen en el formulario. La imagen
puede ser insertada utilizando la propiedad Picture en la ventana de
propiedades. Las dimensiones de la caja son en pixeles de ancho y alto. La
imagen puede ser un logo, o algún motivo alusivo al formulario para hacerlo
mas interesante.
El control imagen (Image) tiene como todos los controles una propiedad
Name, para asignarle un nombre y las propiedades generales para dar formato
al control como:
BackColor, BackStyle, BorderColor, BorderStyle, Height, Left, Top, Width.
Y tiene unas propiedades para controlar la imagen:
Picture, para seleccionar el archivo de la imagen que se desea mostrar. Abre
una caja de dialogo para seleccionar el archivo a mostrar en la caja de
imagen.
PictureAlignment, Para alinear la imagen dentro de la caja. Tiene 5 valores:
- fmPictureAlignmentTopLeft, 0
- fmPictureAlignmentTopRight, 1
- fmPictureAlignmentCenter, 2
- fmPictureAlignmentBottomLeft, 3
- fmPictureAlignmentBottomRight, 4
Por defecto la imagen está alineada en el centro.
PictureSizeMode, Para determinar la forma en que se mostrara la imagen, en
caso de que el tamaño sea diferente al tamaño de la caja. Presenta 3 valores:
- fmPictureSizeModeClip, 0. Si la imagen es de mayor tamaño que la caja
creada solo aparece una porción de ella (clip)
- fmPictureSizeModeStretch, 1. La imagen ocupa toda la caja, pero aparece
deformada, estirada para lograr abarcar todo el marco (no se conserva la
relación de aspecto)
- fmPictureSizeModeZoom, 3. La imagen ocupa todo el marco, pero mantiene
la relación de aspecto.
-PictureTiling, Si la imagen está en el modo de fmPictureSizeModeZoom y no
completa todo el cuadro, se añaden porciones de la imagen para ocupar todo
el cuadro si el valor de la propiedad PictureTiling es True.
SpecialEffect, para crear un efecto especial en la imagen que se inserta en el
cuadro de imagen. Tiene 5 valores:
- fmSpecialEffectFlat, 0.
- fmSpecialEffectRaised, 1.
- fmSpecialEffectSunken, 2.
- fmSpecialEffectEtched, 3.
- fmSpecialEffectBump, 6.
Control RefEdit (RefEdit,rfe)
Este control no aparece de forma predeterminada en la caja de herramientas,
para añadirlo hay que ir al menú en VBE y en la pestaña de herramientas
seleccionar
Al hacer clic aparece una caja de dialogo, con un listado bastante grande de
controles de aplicaciones de Microsoft y de otros fabricantes, se localiza el
control que deseamos incluir en la caja de controles y se marca. Aparecerá en
la caja de herramientas.
El control RefEdit permite crear una caja para recoger la dirección de un
rango en una hoja. La dirección será recogida en la caja creada al marcar el
rango sobre la hoja. También se puede ingresar la dirección directamente,
escribiendola.
A continuación, se muestra una forma donde se incluye un control RefEdit, una
caja de texto y un botón de comando. Se va a realizar un procedimiento muy
sencillo que consiste en seleccionar un rango y calcular la suma de los valores
contenidos en el rango.
Alinear
Permite alinear los elementos seleccionados dentro de la forma. Para
seleccionar varios elementos hacer Ctrl + clic sobre cada uno de los
elementos, o haciendo clic sobre la forma y arrastrando para dibujar un
rectángulo sobre la forma, los controles que están dentro del rectángulo serán
seleccionados. Las opciones de alineamiento son:
Alineación en sentido horizontal: Izquierda, Centro, Derecha
Alineación en sentido vertical: Superior, Medio, Inferior y
Alineación a la cuadricula.
Los elementos deben estar seleccionados antes de aplicar el formato de
alineación.
Igualar Tamaño
Permite hacer que las dimensiones de alto, ancho o ambas simultáneamente
sean iguales en los elementos seleccionados dentro de la forma. Tiene tres
opciones: igualar alto, igualar ancho e igualar ambos.
Ajustar Tamaño al Contenido
Si la caja tiene un texto asociado a la propiedad caption, el tamaño de la caja
del control se ajustará automáticamente al tamaño del texto.
Ajustar tamaño a la Cuadrícula
La caja del control se ajustará para que coincida con la marca de la cuadricula
más próxima.
Espacio Horizontal
Permite que los elementos seleccionados estén igualmente espaciados en el
sentido horizontal. Tiene 4 opciones: Igualar espaciamiento. Aumentar
espaciamiento, Disminuir espaciamiento y Quitar espaciamiento.
Espacio Vertical
Permite que los elementos seleccionados estén igualmente espaciados en el
sentido vertical. Tiene 4 opciones: Igualar espaciamiento. Aumentar
espaciamiento, Disminuir espaciamiento y Quitar espaciamiento.
Centrar en el Formulario
Permite centrar los elementos seleccionados en el formulario. Tiene dos
opciones: Centrar los elementos en el sentido horizontal y centrar los
elementos en el sentido vertical.
Organizar los Botones
Permite organizar los botones de comando y ubicarlos en una posición
seleccionada. Tiene dos opciones: Abajo y Derecha.
Agrupar y Desagrupar
Agrupar permite agrupar varios elementos y manejarlos como una sola unidad,
y Desagrupar permite desagrupar un grupo de elementos previamente
agrupados, a fin de manipular cada elemento por separado.
Orden
Cuando existen elementos que se sobreponen, es posible decidir cuál elemento
está al frente y cual elemento detrás. Tiene cuatro opciones: Traer al frente,
Enviar hacia atrás, Traer adelante y Enviar al fondo.
Formato Utilizando Propiedades
Adicional a estas herramientas de formato, existen un conjunto de propiedades
que permiten modificar algunas de las características de formato de los
controles. Estas propiedades pueden cambiarse en la ventana de propiedades
o utilizando código en procedimientos de VBA. Estas propiedades son:
Height, cambia el alto del control.
Width, cambia el ancho del control.
Top, cambia la posición del control con respecto al borde superior del
formulario.
Left, cambia la posición del control con respecto al borde izquierdo del
formulario.
BackColor, cambia el color de fondo del control.
BackStyle, cambia el estilo del fondo.
Font, cambia el tipo de fuente, tamaño, resaltado, itálica y otros.
ForeColor, cambia el color de la fuente que utiliza el control para el texto que
se coloca con la propiedad caption, o el texto que es ingresado como dato en
una caja de texto o en una lista o caja combinada.
Capítulo 8 - Eventos
Los formularios y sus controles pueden ser programados para que reaccionen
a eventos, es decir que hagan una acción cuando algo ocurre. Un evento puede
ser cambiar el valor de una caja de texto, cambiar el valor de una barra de
desplazamiento, hacer clic en un botón de comando y muchos otros. En los
ejemplos que hemos realizado durante el desarrollo de este libro se han
utilizado eventos, sin embargo, no se habían definido formalmente.
Para especificar la forma en que el formulario o un control reaccionara a un
evento se debe escribir un procedimiento, el cual va contenido dentro de un
contenedor de código, que es generado automáticamente en el módulo del
formulario (UserForm). Para acceder a la ventana de código, y escribir un
procedimiento asociado a un evento se puede hacer doble clic sobre el
formulario o sobre alguno de los controles, o se puede hacer clic en el botón
derecho del ratón para desplegar un menú contextual, allí seleccionar y hacer
clic en la opción ver código.
Por ejemplo, para los botones de comando se tienen los siguientes eventos:
BeforeDropOver
BeforeDropOrPaste
Click
DblClick
Enter
Error
Exit
KeyDown
KeyPress
KeyUp
MouseDown
MouseMove
MouseUp
Siendo el evento click el evento usado con mayor frecuencia para los
controles de botón de comando.
Para los controles de caja de texto (TextBox) y las barras de desplazamiento y
botón de número el evento Change es el más utilizado.
A continuación, mostraremos los procedimientos asociados a los eventos para
los controles caja de texto y botón de comando del formulario de ejemplo.
Dim A As Double
Dim B As Double
Dim C As Double
###
Private Sub cmdSumar_Click()
C = A+ B
Me.txtC = C
End Sub
###
Private Sub txtA_Change()
A = Val(Me.txtA.Text)
End Sub
###
Private Sub txtB_Change()
B = Val(Me.txtB.Text)
End Sub
Capítulo 9 - Interacción Entre Formularios, VBA y
Hojas de Excel
Los formularios constituyen una de las opciones para el intercambio de
información con los procedimientos en VBA y con las hojas de Excel. En los
formularios se tienen varios controles que recogen información del usuario,
como lo son las cajas de texto, cuadros de listas, cajas combinadas, casillas
de verificación, botones de opción, barras de desplazamiento, botones de
número y otros.
Interacción Entre el Formulario y VBA
Los valores que son recogidos en los controles pueden ser asignados a
variables dentro de VBA, y ser utilizados en procedimientos. Existen
procedimientos de lectura, donde los valores de un control son asignados a
una variable y existen procedimiento de escritura donde los resultados del
procedimiento son enviados de vuelta al formulario, a un control que puede
ser una caja de texto, una etiqueta o un cuadro de lista.