Professional Documents
Culture Documents
6
Visual Basic para aplicaciones
II
Jerarquía de Objetos
Colecciones
Propiedades y métodos
Objetos
Application
WorkWooks / WorkSheets
Range
Microsoft Excel 2016
JERARQUÍA DE OBJETOS
Es la que permite determinar qué elementos u objetos están por encima de otros, esto es muy
importante, gracias a esta jerarquía podemos acceder a un objeto determinado.
Recordemos que todos los elementos que trabaja Excel, son considerados objetos, por este motivo
es necesario conocer la jerarquía de objetos.
VBA es considerado un programa orientado objetos, ya que tiene la opción de poder trabajar con
una variedad de objetos.
¿QUÉ ES UN MÓDULO?
Un módulo lo podemos definir como un contenedor de macros, los cuales tendrán un conjunto de
códigos agrupados por bloques o procedimientos.
PROCEDIMIENTO SUB
Es un bloque de código que realiza una acción y responde a un único evento, que es el
click.
PROCEDIMIENTO FUNCTION
PROCEDIMIENTO PROPERTY
¿QUÉ ES UN OBJETO?
Un objeto representa un elemento de una aplicación, como una hoja de cálculo, una celda, un
gráfico, un formulario o un informe. En el código de Visual Basic, debe identificar un objeto antes
de aplicar uno de los métodos del objeto o cambiar el valor de una de sus Propiedades.
COLECCIÓN
Lo podemos definir como un conjunto de objetos, por ejemplo, la colección de hojas, se le denomina
sheets, de esta colección podemos crear hojas, contar las hojas de un libro, etc.
Tener presente que esa colección sheets, también es considerada objeto. Veamos los dos objetos
más importantes de VBA.
Workbook1
Workbook2
WorkSheet1
WorkSheet2
APPLICATION
WORKWOOKS
WORKSHEETS
RANGE CELLS
REFERENCIA DE OBJETOS
REFERENCIA A CELDA O RANGO
Si nosotros deseamos hacer una referencia a una celda, podemos utilizar una de los siguientes
comandos:
RANGE
Range ( “celda” )
Range ( “Rango” )
CELLS
REFERENCIA A UN LIBRO
Workbooks.open(“E:\Sistema.xlsx”)
EJEMPLO 1
Range(“d7”).value = 2018
Cells(7,”d”) = 2018
EJEMPLO 2
Sheets(3).cells(2,”C”) = “Reporte”
EJEMPLO 3
Workbooks(“consolidado”).sheets(“gráfico”).cells(7,”a”) = “Gráfico”
EJEMPLO 4
Escribir una macro que solicite el nombre de una celda y lo deposite en la celda f4
Cells(4,”f”) = nombre
EJEMPLO 5
Escribir una macro que muestre un mensaje donde indique la hora del sistema
COLECCIONES
Otro concepto importante en la programación de Visual Basic for Application es el de las
colecciones.
Una colección se define como un grupo de objetos que pertenece a la misma clase (y la
propia colección es un objeto).
Una colección se parece a una matriz, en el sentido que podemos acceder a sus elementos
mediante un índice.
Una de las principales ventajas del uso de objetos VBA para EXCEL es la simplificación del
código de programación, aprovechando así el uso de los elementos las veces que sea
necesario.
PROPIEDADES Y MÉTODOS
Recuerde que VBA es un programa orientado a objetos, y como tal, es necesario trabajar
con dichos objetos para desarrollar procesos o programas a medida.
Cada objeto, asi como en el mundo real tiene características, y en programación a esto se
le denomina propiedades, adicionalmente manejaremos otro concepto, el método.
PROPIEDADES
Es importante mencionar que toda propiedad necesita de una igualdad, ya sea para
depositar el valor correspondiente o para asignarle un dato, ejemplo:
<variable> = objeto.propiedad
objeto.propiedad = <valor>
MÉTODOS
En la mayoría de los casos, los métodos son acciones y las propiedades cualidades. Si se
utiliza un método, la acción recae sobre el objeto, mientras que, si se usa una propiedad,
se devuelve información acerca del objeto o se cambia una de sus cualidades.
Objeto.método
Igual que en el mundo real estamos rodeados de objetos, en VBA ofrece una gran variedad
de objetos que permite automatizar y personalizar el trabajo diario. Como ya se mencionó
al inicio de esta sesión, los objetos de Excel o cualquier otro programa de office, se
encuentran organizados jerárquicamente:
El objeto más alto según esa jerarquía es el Objeto Application, de ahí se derivan los objetos
Workbooks, Worksheets, Charts, etc.
Dentro del objeto Worksheets se tiene más objetos, Cells, Range, Columns, Rows, etc.
Application.Workbooks("libro1").Worksheets("hoja1").Range ("a1")
Si omitimos muchos objetos y abreviar el código, Excel usa los objetos activos, así el código
anterior quedaría del siguiente modo
Worksheets("hoja1").Range ("a1")
Range ("a1")
Los objetos del mundo real comparten dos características: todos tienen estado y
comportamiento.
OBJETO APPLICATION
Es el objeto que está en el nivel más alto de la jerarquía de objetos de VBA.
QUIT
Permite cerrar el programa o la aplicación
Application.quit
ACTIVECELL
Hace referencia a la celda activa en la hoja de cálculo.
Msgbox Application.ActiveCell
CAPTION
Permite cambiar el título de la ventana
Application.Caption = “Programación de Evento 2018”
WINDOWSTATE
Permite establecer el estado de la ventana, si esta maximizada, restaurada o
minimizada.
Application.WindowState=xlmaximized
Application.WindowState=xlMinimized
DISPLAYFORMULABAR
Establece si la barra de fórmula debe mostrarse o no.
Application.DisplayFormulaBar = False
OBJETO WORKWOOKS
El objeto Workbooks pertenece a la colección Workbooks
1. ADD
Permite crear un nuevo libro de excel
2. CLOSE
Es un método que cierra el libro actual
3. OPEN
Es un método que permite abrir un libro, se debe indicar la ubicación.
1. COUNT
Muestra el número de libros abiertos actualmente
2. NAME
Muestra el nombre del libro actual
3. PATH
Propiedad que muestra la ubicación o la ruta donde esta guardado el libro.
4. APPLICATION
Propiedad que muestra el nombre del programa donde se encuentra el archivo.
OBJETO WORKSHEETS
El objeto workseets solo reconoce a las hojas de cálculo de un libro, y no a las hojas de
tipo gráfico, ni de macro.
1. ADD
Permite crear un nueva hoja de cálculo en el libro activo.
Podemos insertar una hoja después de otra, por ejemplo, insertemos una hoja
llamada reporte después de productos.
Worksheets.add After:=sheets(“Productos”)
2. ACTIVATE
Activa una de las hojas del libro activo, por intermedio de su índice o nombre.
3. DELETE
Elimina una hoja de cálculo especificando su nombre o el número de índice.
1. COUNT
Muestra el número de hojas de un libro de trabajo.
2. NAME
Hace referencia al nombre de la hoja. Por ejemplo, podemos cambiar el nombre de
la tercera hoja del libro.
Worksheets(3).name = “Análisis”
3. NEXT
Propiedad que permite mostrar la siguiente hoja.
ActiveSheet.Next.Activate
4. PREVIOUS
Propiedad que permite mostrar la hoja anterior.
ActiveSheet.Previous.Activate
OBJETO RANGE
Representa a una celda o a un conjunto de celdas continuas o discontinuas, permite la
referencia a toda una fila o columna.
Gracias a este objeto, podemos aplicar un formato, valor o fórmula; a las celdas o rango.
1. AUTOFILL
Activa la opción autofiltros a partir de la celda especificada.
Range("b5").AutoFilter
2. CLEAR
Borra el contenido y el formato de la celda especificada
Range("b5").clear
4. DELETE
Borra la celda especificada, desplazando las celdas que están por debajo de la
eliminada hacia arriba.
Range("b5").Delete
5. PRINTPREVIEW
Permite mostrar una vista previa
Range("b5").PrintPreview
6. SELECT
Permite seleccionar una celda o un rango.
Range(“h12”).Select
Range(“b4:b23”).Select
7. SORT
Ordena la información de una lista o tabla según la celda especificada.
Recuerde que el objeto Range, se utilizara para trabajar con rangos y celdas.
1. PROPIEDAD RANGE
Range(“e4”) = “Inventario”
Range(“b6:b13”) = 2018
2. PROPIEDAD CELLS
Hace referencia a una celda, la diferencia con la anterior, es que podemos controlar
mejor la fila y columna, ya que ambos deben ser valores numéricos en el caso de
esta propiedad.
Cells (2 , 4) = “Visual”
3. PROPIEDAD OFFSET
PROPIEDAD ADDRESS
Para que el comando sea dinámico, podemos trabajar con la celda activa, del
siguiente modo:
Msgbox ActiveCell.Address
PROPIEDAD VALUE
Permite asignar un dato a una celda, es la propiedad que ya viene por defecto; por
eso que en la mayoría de veces se omite esta propiedad.
PROPIEDAD TEXT
Muestra el contenido real de una celda, incluye los formatos que tenga, así cuando
deseamos mostrar el dato de una celda en un mensaje, VBA mostrará tal y como se
ve en la celda.
PROPIEDAD COLOR
A partir de la versión 2007, aquí ya podemos utilizar 256 colores elevado al cubo,
lo que nos da 16777216 colores.
Ejemplo 1:
Range("b6").Interior.ColorIndex = 45
Ejemplo 2:
Range("b6").Interior.Color = 7520
PROPIEDAD FONT
Propiedad que se utiliza para dar formatos de fuente a los datos de la celda. Debo
aclarar que no reconoce el formato de Subrayado.
PROPIEDAD FORMULA
Propiedad que nos permite asignar una fórmula a la celda, tenga en cuenta que la
función debe ser escrita en inglés.
PROPIEDAD FORMULALOCAL
Propiedad que nos permite asignar una fórmula a la celda, la diferencia con la
anterior, es que la fórmula la podemos ingresar tal como lo hacemos en la hoja de
cálculo, en nuestro propio idioma.
o Range("b12").FormulaLocal = "=suma(d3:d8)"
o Range("b12").FormulaLocal = "=promedio(d3:d8)"
o Range("b12").FormulaLocal = "=max(d3:d8)"
o Range("b14").FormulaLocal = "=min(d3:d8)"
FUNCIONES DE FECHAS
FUNCIONES DE TEXTO
FUNCIÓN STRCONV
Valor Descripción
1 Convierte la cadena a caracteres en mayúscula.
2 Convierte la cadena a caracteres en minúscula.
3 Convierte la primera letra de cada palabra de la cadena en mayúscula.
FUNCIONES MATEMÁTICAS