Está en la página 1de 7

Macros y Programación

con VBA Curso de Microsoft Excel Nivel Avanzado

CUARTA PRACTICA

✓ Identificar los objetos y colecciones en Excel


OBJETIVOS ✓ Reconocer la jerarquía de los objetos
✓ Describir objetos a través del Examinador de objetos.
✓ Referenciar los objetos desde la ventana Inmediato.

LOS OBJETOS DE EXCEL


Excel ofrece una variedad amplia de objetos que permiten automatizar y personalizar el trabajo diario.
Entre los principales objetos tenemos:
• El objeto Application, que es el objeto superior. Ejemplo: Excel, Word, Power Point, etc.
• El objeto Workbook, se refiere a los distintos libros abiertos. Ejemplo: Libro1, Libro2, etc. Depende del
objeto Application
• El objeto Worksheet, se refiere al conjunto de hojas de un libro. Ejemplo: Hoja1, Hoja2, Hoja3, etc.
Depende del objeto Workbook
• El objeto Range, se refiere a una celda o un rango de celdas. Ejemplo: A1, A10:A20, etc. Depende del
objeto Worksheet.

COLECCIONES DE OBJETOS
Son el conjunto de objetos similares. Una colección es un grupo de la misma clase y esta colección por sí misma
es un objeto. Ejemplos:
• El libro denominado Libro1 es un objeto Workbook
• El libro denominado Libro2 es un objeto Workbook
• El conjunto de estos objetos Workbook conforman una colección denominada: Workbooks
• La hoja denominada Hoja1 es un objeto Worksheet
• La hoja denominada Hoja2 es un objeto Worksheet
• El conjunto de estos objetos Worksheet conforman una colección denominada: Worksheets.
• Una ventana abierta se denomina objeto window.
• Otra ventana abierta se denomina objeto window.
• El conjunto de objetos window conforman una colección denominada: Windows
• Charts es una colección de objetos Chart.
• Names es una colección de objetos name.
Resumiendo se puede decir que Excel ofrece más de 100 clases de objetos.

JERARQUÍA DE OBJETOS
Los objetos se manipulan utilizando código VBA.
Los objetos pueden actuar como recipientes de otros objetos.
La unidad básica de Excel es el objeto Workbook.
Por lo tanto para hacer referencia a los objetos se debe seguir una estructura jerárquica de los objetos, es decir,
qué objeto debe ser referenciado en primer lugar, luego quién en segundo lugar y así sucesivamente. Aunque,
en algunos casos se pueden omitir la referencia a los objetos superiores, lo recomendable es escribir la referencia
completa.

Ejemplos:
1. Hacer referencia a un libro llamado: factura.xlsx, de la siguiente manera:
Application.Workbooks(“factura.xlsx”)
Explicación: Esta instrucción hace referencia al libro: factura.xlsx, de la colección Workbooks que se
encuentra dentro del objeto Application de Excel.
2. Hacer referencia a la hoja llamada: Hoja1, del libro factura.xlsx, de la siguiente manera:
Application.Workbooks(“Factura.xlsx”).Worksheets(“Hoja1”)

Instituto de Informática y Telecomunicaciones Pág. ~ 1 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

3. Adentrándonos aún más, podemos hacer referencia a la celda A1 de la hoja1 del libro factura.xlsx, así:
Application.Workbooks(“factura.xlsx”).Worksheets(“Hoja1”).Range(“A1”)
Como se puede observar para hacer referencia a un objeto contenido se realiza a través de un punto para separar
los contenedores de los miembros.

EL EXAMINADOR DE OBJETOS
Es una herramienta que enumera todas las propiedades y métodos de cada objeto disponible. La lista
desplegable de la esquina superior izquierda del examinador de objetos incluye una lista de todas las bibliotecas
de objetos a las que se tiene acceso: Excel, Office, VBA, etc.
RECONOCIENDO CLASES DE OBJETO, METODOS Y PROPIEDADES
1. De la barra de herramientas estándar, clic en el botón Examinador de objetos (o pulse F2)
2. Del cuadro desplegable de búsqueda, escriba la clase de objeto Sheets y clic en el botón Búsqueda.
3. De la ventana del Examinador de objetos se puede observar dos listas:
• La de la izquierda con los nombres de las clases de objetos
• Y de la derecha con los miembros (o métodos y propiedades), también constante y/o eventos

4. Indique cinco métodos y cinco propiedades de la clase objeto: sheets (si hay eventos, indicar unos cuantos)
Métodos Propiedad Eventos
Add Count (No hay)
Copy Creator
Delete Item
Move Parent
Select Visible

TAREA (Observe que pueden haber métodos y propiedades con el mismo nombre)
1. Indicar cinco métodos, cinco propiedades (si hay eventos, mencionarlos) de la clase objeto: Workbook
Métodos Propiedad Eventos

2. Indicar cinco métodos, cinco propiedades (si hay eventos, mencionarlos) de la clase objeto: Worksheet
Métodos Propiedad Eventos

Instituto de Informática y Telecomunicaciones Pág. ~ 2 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

ACTIVIDADES PRÁCTICAS

EN LA VENTANA INMEDIATO, EJECUTAR LAS SIGUIENTES INSTRUCCIONES


EL OBJETO LIBRO Y SUS PROPIEDADES
Primero abrimos unos tres libros (por ejemplo: Gráficos.xlsm, Documentación.xlsx y FiltrosAvanzados.xlsx)
Proceda a Abrir un nuevo libro en blanco y estando en el Libro1 pulse Alt+F11 para ingresar al VBA de Excel.

1. ¿Cuántos libros están abiertos? Escriba el comando: ? Workbooks.Count.

Se obtiene el siguiente resultado :

2. ¿Cómo saber cuáles son esos 4 libros abiertos?


Para hacer referencia al primero de los libros abiertos escribimos: ? Workbooks.Item(1).Name

Explicación: Leamos la instrucción de derecha a izquierda.


Name: Es una propiedad para un solo libro. Item: es la propiedad de una colección y hace referencia a un
único elemento de la colección. Workbooks: cita a la colección de libros.

Hacer referencia al segundo libro abierto: ? Workbooks.Item(2).Name

Hacer referencia al tercer libro abierto: ? Workbooks.Item(3).Name (Visualiza FiltrosAvanzados)


Hacer referencia al cuarto libro abierto: ? Workbooks.Item(4).Name (Visualiza el Libro1)

3. Cerrando libros. Estando en el Libro1, cierre el Libro3(ojo su número de ítem es 3), dando la instrucción
siguiente: Workbooks(3).Close

Antes de cerrar un Libro, verifique que número de Ítem ocupa en la parte de los nombres de hojas del libro
que desea cerrar, con el comando Workbooks.item
4. Otra forma de cerrar un libro es haciendo referencia al libro activo: ActiveWorkbook.Close.
En el explorador de proyectos seleccione el libro6 y en la ventana inmediato escriba:

EL OBJETO HOJA Y SUS PROPIEDADES


1. ¿Cómo agregamos una nueva hoja? Escribiendo: WorkSheets.Add
La Hoja1 por defecto ocupa el ítem 1 o posición1. Al agregar una nueva hoja, ésta
se ubica al inicio de las demás hojas, por tanto la Hoja insertada (Hoja2) ocupa el ítem 1 o posición 1.
2. ¿Cómo visualizo el nombre de la hoja que se encuentra al inicio o la que ocupa la posición 1?
Escribiendo: ? WorkSheets.Item(1).Name (Mostrará como resultado a la Hoja2)
3. Agregue tres nuevas hojas (la última hoja agregada es la Hoja5, por tanto esta hoja ocupa la posición 1).

Instituto de Informática y Telecomunicaciones Pág. ~ 3 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

4. Active la Hoja1 y realice los demás comandos.


5. Visualice la primera hoja: ? WorkSheets.Item(1).Name (Mostrará la Hoja5)
6. ¿Cómo visualizo el nombre de cualquier hoja?
? WorkSheets(“Hoja2”).Name
7. ¿Cómo cambio el nombre de una hoja, por ejemplo a la Hoja4 por “Mi hoja”?
Primero verifico el número de ítem de la hoja. (Observe que la Hoja4 está en el ítem 2 o posición 2)
WorkSheets(2).Name = “Mi hoja”
8. ¿Cómo elimino una hoja? Suponga que desea borrar la Hoja5 cuyo ítem es 1
WorkSheets(1).Delete (visualiza una pregunta, proceda a eliminar pulsando ENTER)
9. ¿Cómo selecciono una hoja? Por ejemplo la hoja “Mi hoja”
Worksheets(“Mi hoja”).Select
10. ¿Cuántas hojas en total hay ahora en el libro activo?: ? WorkSheets.Count

LA PROPIEDAD RANGE
Devuelve un objeto Range. Se aplica a dos tipos de objetos: un objeto Worksheet o un objeto Range.
La propiedad Range también puede trabajar como un objeto Range (en este caso, el objeto Range es la celda
activa). Es decir trata al objeto celda activada como si fuera la celda A1. Vea los ejemplos en el acápite III.5.
I. FORMAS DE SELECCIONAR Y/O ACTIVAR UNA CELDA EN HOJA ACTIVA
1. Referenciando en forma completa desde el objeto o aplicación Excel
Application.Workbooks("libro1").Worksheets(1).Range("A5").Activate
(Desde la aplicación Excel hace referencia a un objeto libro llamado “libro1” y desde éste objeto hace
referencia a un objeto hoja (“Mi hoja” que fue seleccionada anteriormente) y que se encuentra en la
primera posición de las hojas y desde esa hoja a través de la propiedad Range, hace referencia al rango
o celda A5 haciéndolo activo a dicha celda a través del método Activate).

2. Referencia completa desde el objeto libro


Workbooks("libro1").Worksheets("hoja1").Range("A6").Select
(Desde el libro llamado “libro1”, hace referencia a la hoja llamada “hoja1” y desde éste, a través de la
propiedad Range hace referencia al objeto rango o celda A6 y la selecciona a través del método Select).

3. Referencia complete desde el objeto hoja


Worksheets("Mi hoja").Range("a10").Activate
(Desde el libro activo, hace referencia la hoja llamada “hoja1” y desde éste, hace referencia al objeto
rango o celda A10 y lo activa a través del método Activate).

4. Referencia desde la hoja activa desde el objeto range.


Range("B1").Select
(Desde el libro activo y la hoja activa, hace referencia al rango o celda B1 y la selecciona).

5. Otras formas de seleccionar y/o activar una celda en un mismo libro y misma hoja.
worksheets(1).cells(4,2).activate
worksheets(1).cells(8,1).activate
cells(10,3).activate
cells(6,1).select
cells(8,2).select
cells(15,3).select
cells(6,1).select
activecell.Offset(0,2).Select
activecell.Offset(3,0).Select
activecell.Offset(5,0).Select
activecell.Offset(0,-1).Select
activecell.Offset(-5,0).Select
Como se puede observar, si usted sabe la hoja y el libro donde está trabajando se pueden ir omitiendo la
referencia a estos objetos (application, workbooks y worksheets). Pero si va trabajar con diferentes hojas y
distintos libros, obligatoriamente tendrá que referenciar la jerarquía de todos los objetos.

Instituto de Informática y Telecomunicaciones Pág. ~ 4 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

II. FORMAS DE SELECCIONAR UN RANGO DE CELDAS EN LA HOJA ACTIVA


1. worksheets(1).range("B1:B10").select
2. worksheets(1).range("A1:A10").select
3. range("b5:b10").Select
4. range("b11,b15").Select

III. FORMAS DE ASIGNAR VALOR A UNA CELDA ESPECÍFICA


1. Referencia completa desde el objeto Excel
Application.Workbooks("Libro1").Worksheets(1).Range("A4"). Value = 20
(Desde la aplicación Excel, hace referencia a un objeto llamado “Libro1” y éste hace referencia a la
primera posición de las hojas y desde esa hoja hace referencia al objeto rango A4 y a través de la
propiedad Value, asigna el valor de 20 a la celda A4).
2. Referencia completa desde el objeto libro
workbooks("Libro1").Worksheets(1).range("A4") = 30
3. Referencia completa desde el objeto hoja
worksheets("Mi hoja1").range("A4") = 18
4. Referencias a una celda desde la propiedad range
range("A4").Value=100
range("A4") = 200
range("A4").Value = datevalue("15/02/2012")
range("A4") = datevalue("20/10/2012")
5. Referencia desde un objeto Range activado (Tener cuidado con esta forma de notación)
Active por ejemplo la celda B3; esta celda es la celda activa y será tratada como si fuera A1.
Activecell.Range("C3") =10. (El valor 10 es asignado en la celda D5)
Activecell.Range("E5") =15. (El valor 15 es asignado en la celda F7)

LA PROPIEDAD CELLS y OFFSET


I. Formas de asignar valor a una celda específica
1. Referencias desde la propiedad: Cells
cells(4,1)=500
cells(4,1)= “Excel Avanzado”
cells(4,1).value = date
cells(4,1).value = datevalue("21/06/2011")

2. Formas de asignar valor a una celda activa


(Primero haga clic en la celda B4, esta será la celda activa)
activecell.Value=300
activecell.FormulaR1C1 = 500
activecell = 1000
activecell.offset(0,0).value = 250
activecell.Offset(0,0) ="Mi nombre es Carlos"
activecell.Offset(0,0) = datevalue("25/12/2012")
activecell(1,1) = 20

3. Formas de asignar valor en cualquier celda desde la hoja activa y celda activa. Clic en la Hoja1.
activeSheets.cells(3,4) = 50. (Ingresa el valor en la celda D3, es decir, fila 3, columna 4).
activeSheets.cells(6,4) = 50
activesheet.cells(8,2)=11
activesheet.cells(10,3)=30
worksheets("Hoja1").cells(7,1) = 25
worksheets("Hoja1").cells(5,2) = 30

4. Formas de asignar un valor a un rango de celdas


Antes proceda a borrar todos los datos de la hoja1
range("a6") = 1003 : range("b6") = "bio limon" : range("c6") = 2.00 : range("d6") = "12/05/2011"
Selection.EntireRow.Insert

Instituto de Informática y Telecomunicaciones Pág. ~ 5 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

PROPIEDADES DE FILAS(ROWS) Y COLUMNAS(COLUMNS)


La propiedad Columns, devuelve una colección de columnas
1. Seleccionar todas las celdas de una hoja de cálculo 2. Seleccionar toda una columna

3. Seleccione la columna B 4. Seleccione las columnas B hasta la D

La propiedad Rows , devuelve una colección de filas


1. Selecciona todas las celdas de una hoja 2. Seleccione las filas 3,4 y5

OTRAS PROPIEDADES DEL OBJETO RANGE. TRABAJANDO CON REGIONES DE UNA TABLA
Primero proceda a abrir el archivo Ordenes.xlsx y ubicarse en la hoja órdenes.

1. Active la celda B3 y luego seleccione toda la región sólo de esa tabla.

El resultado será toda la región de la tabla:

2. Seleccione la celda D3 y luego seleccione toda la columna D

El resultado de la columna seleccionada se muestras de esta manera:

Instituto de Informática y Telecomunicaciones Pág. ~ 6 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000
Macros y Programación
con VBA Curso de Microsoft Excel Nivel Avanzado

3. Seleccione toda la región de la tabla a través de una variable

FIN DE LA PRÁCTICA

Instituto de Informática y Telecomunicaciones Pág. ~ 7 ~ Lic. Manuel Mendoza M.


Telf. 52 - 583000

También podría gustarte