Computing">
0 - Conceptos de VBA
0 - Conceptos de VBA
0 - Conceptos de VBA
VBA.
Los módulos de clase llegaron para quedarse en VBA, haciendo a Excel una herramienta mas
optimizada para la programación basada en objetos. En esta Guia Rápida hablaremos de
como se pueden utilizar para mejorar tus líneas de código.
Los módulos de clase técnicamente son objetos que se pueden crear dentro del ambiente de
programación como objetos vacíos, mismos que les podemos asignar cualquier propiedad
existente (o no) para generar procesos complejos o almacenar información para después.
2. Declaración y propiedades.
La ventana se ve igual a todos los demás blogs de desarrollo, pero aceptara un tipo de código
especifico que nos dejara desarrollar los objetos nuevos. Dentro de las propiedades (lado
izquierdo inferior seleccionando el módulo de clase veremos que contiene dos propiedades:
Nombre e Instansing. Esta será la forma en la que se muestra el código. Por default, los
módulos de clase son privados, por lo que si quieres utilizarlos dentro de otras líneas de
código puedes cambiarlos a “PublicNotCreateble”.
3. La propiedad Let
Dentro de la ventana de desarrollador escribamos primero una variable tipo Private que nos
servirá para traer valores desde otros módulos.
Ahora, iniciemos este objeto con la propiedad Let, la cual nos dejara obtener un valor para
nuestra clase.
dbl = numero
End Property
La propiedad Let siempre debe tener al menos una variable dentro del paréntesis para
poder funcionar, en este caso llamaremos a la variable número para asignar un valor del tipo
número decimal. Usando la variable dbl asignada arriba, lograremos traer un nuevo numero
de un módulo externo.
4. La propiedad Get
A diferencia de Let, Get nos permitirá seleccionar el valor asignado a nuestro objeto y
devolverlo dentro de cualquier otra instancia.
valor = dbl
End Property
Al hacer una declaración de este tipo, podremos obtener el valor de dbl que asignamos dentro
del Let, con lo cual el objeto ya tiene una característica (un numero decimal).
Una vez dentro, declararemos una variable del tipo público para llamar a nuestra clase.
Sub nClaseIn()
aDbl = 8.5
nClase.Valor = aDBL
End Sub
Nota como mediante esto estamos designando un número que servirá como propiedad Valor
dentro de la clase publica nClase, por lo que ahora nuestro objeto tiene un valor de 8.5
almacenado en su memoria.
A diferencia de un método normal, ese objeto valdrá 8.5 hasta que nosotros designemos lo
contrario, por lo que desde otro procedimiento podemos acceder a su valor sin ningún
problema
Sub nClaseOut()
MsgBox nClase.Valor
End Sub
Si probamos los procedimientos por separado veremos como el valor de nuestro objeto en el
módulo de clase no cambiara, así corramos mil macros más o hagamos cualquier cosa (menos
volver a designar el valor).
dbl = numero
End Property
Valor = dbl
End Property
Para el modulo normal
Public nClase As New Clase1 ' Una nueva instancia del objeto
Sub nClaseIn()
' Inicializaremos nuestra clase declarando una variable a su propiedad
' Let, con lo que esa propiedad obtendra un valor
Sub nClaseOut()
' Con este procedimiento llamaremos por separado al objeto.
' El valor del objeto en su propiedad Valor sera el designado
' al inicializar con el procedimiento de arriba.
MsgBox nClase.Valor
End Sub
Puedes usar los módulos de clase en cualquier procedimiento, evento o incluso en UserForms,
por lo que son una herramienta útil y pueden tener tantas propiedades como uno quiera.
Las variables se suelen utilizar en muchos ámbitos diferentes, como por ejemplo,
en matemáticas. Pero aquí te encontrarás la definición de variable en
programación.
Guardar datos y estados.
Asignar valores de una variable a otra.
Representar valores dentro de una expresión matemática.
Mostrar valores por pantalla.
Todas las variables deben ser de un tipo de datos, ya sea un dato de tipo primitivo,
como un número o texto, o un dato abstracto, como un objeto que se ha creado.
La función LCase:
Sintáxis es: LCase ( cadena )
Observaciones
Ejemplo
expresión de cadena
Subprocedimiento
comprobación de sintaxis
error de sintaxis
Un error que ocurre cuando ingresa una línea de código que Visual Basic no
reconoce.
Tenga en cuenta que las reglas de sintaxis para palabras clave individuales se
definen en la sección Sintaxis del tema de ayuda asociado. Para obtener ayuda
sobre una palabra clave desde el entorno de desarrollo, seleccione la palabra clave
y presione F1.
orden de tabulación
Expresión de tiempo
Cualquier expresión que pueda interpretarse como una hora. Esto incluye cualquier
combinación de literales de tiempo, números que parecen horas, cadenas que
parecen horas y horas devueltas por funciones.
Una unidad de medida de pantalla igual a 1/20 punto. Un twip es una unidad
independiente de la pantalla que se utiliza para garantizar que la ubicación y la
proporción de los elementos de la pantalla en su aplicación de pantalla sean las
mismas en todos los sistemas de visualización. Hay aproximadamente 1440 twips
por pulgada lógica o 567 twips por centímetro lógico (la longitud de un elemento
de pantalla que mide una pulgada o un centímetro cuando se imprime).
biblioteca de tipos
Unicode
variable
Una ubicación de almacenamiento con nombre que puede contener datos que se
pueden modificar durante la ejecución del programa. Cada variable tiene un
nombre que la identifica de forma única dentro de su ámbito. Se puede especificar
o no un tipo de datos.
Los nombres de las variables deben comenzar con un carácter alfabético, deben ser
únicos dentro del mismo ámbito, no pueden tener más de 255 caracteres y no
pueden contener un punto incrustado o un carácter de declaración de tipo.
expresión variante
Cualquier expresión que pueda evaluar datos numéricos, de cadena o de fecha, así
como los valores especiales Empty y Null .
mira la expresión
Evento Worksheet_Change
El Evento Change ocurre cuando cualquier celda en una hoja es cambiado por el usuario o por
código VBA. El Evento Change NO se activa cuando un cálculo genera un valor diferente en las celdas
o cuando un objeto es añadido a la hoja. Dicho de otro modo, cuando cambiamos el contenido de
cualquier celda en la hoja este Evento se dispara ejecutando el código contenido dentro de él. Si el valor
de una celda cambia por actualización de fórmulas este no se ejecuta. El
Evento Worksheet_Change recibe un argumento llamado Target y que corresponde a un objeto Range
el cual es la celda que cambio o las celdas que cambiaron de contenido. Para nuestro problema solo
queremos que se ejecute cuando una celda en específico cambie, para nuestro caso la celda E4. Para
poder hacer esto utilizamos el método intersect.
Evento Enter
El evento Enter ocurre antes de que un control reciba realmente el foco de un control en el
mismo formulario o informe. Este evento enter se le puede asignar a un objeto de control,
para el ejemplo, utilizamos el ComboBox:
ComboBox1.RemoveItem 0
Next Fila
Exit For
End If
Next
Lista = Hoja2.Cells(Fila, 1)
ComboBox1.AddItem (Lista)
Next
End Sub
Este código revisa las filas y columnas para agregar a la lista los ítems.