Vous êtes sur la page 1sur 3

Las colecciones de

objetos Workbooks y
Worksheets
Un objeto en VBA puede contener otro objeto y ese objeto a su vez
puede contener otro objeto y así sucesivamente. La raíz de todos los
objetos en VBA se encuentra en el objeto Application el cual a su vez
contiene las colecciones de objetos Workbooks y Worksheets.

El objeto Workbook y el objeto Worksheet


El objeto Workbook representa un libro de Excel y el objeto Worksheet
representa una hoja de un libro de Excel. Como sabemos, un libro de
Excel puede tener más de una hoja lo cual significa que un objeto
Workbook puede contener más de un objeto Worksheet.

Ya que no hay límite en el número de hojas que puede tener un libro,


se volvería complicado organizar esta relación entre los objetos
Workbook y Worksheet y por esta razón se crearon las colecciones de
objetos. De esta manera un objeto Workbook tiene asociada una
colección de objetos Worksheets la cual contiene los objetos
Worksheet que representan las hojas de ese libro de Excel. De la
misma manera, el objeto Application no tiene asignados directamente
todos los libros de Excel sino que tiene una colección de objetos
Workbooks la cual incluirá todos los objetos Workbook de los libros de
Excel que abramos en nuestro código VBA.

Abrir un libro de Excel


Para abrir un libro de Excel en VBA podemos utilizar el método Open
del objeto Workbooks de la siguiente manera:

Application.Workbooks.Open Filename:="C:Libro1.xlsx"

Esta instrucción abrirá el archivo ubicado en “C:Libro1.xlsx” y lo


agregará a la colección de objetos Workbooks. De esta manera
podemos abrir tantos archivos como sean necesarios y para cada uno
de ellos se creará un objeto Workbook el cual será almacenado dentro
de Workbooks.
Hacer referencia a un libro en VBA
Una vez que hemos abierto los archivos que necesitamos podremos
hacer referencia a cada uno de ellos a través de la colección de
objetos Workbooks de la siguiente manera:

Application.Workbooks(1).Activate

El número que observas dentro de los paréntesis indica el índice del


objeto Workbook dentro de la colección de objetos Workbooks. De
manera predeterminada el índice 1 será para el libro de Excel que
contiene el código VBA y a partir de ahí la numeración será de
acuerdo al orden en que hayamos abierto otros archivos. Si
conocemos el nombre del libro podemos utilizarlo en lugar del índice y
tener una instrucción como la siguiente:

Application.Workbooks("Libro1.xlsx").Activate

La colección de objetos Workbooks nos permitirá acceder a todos


los libros que hayamos abierto dentro de nuestra aplicación VBA.

Acceder las hojas de un libro


De igual manera podemos acceder las hojas de cualquier libro a
través de su colección de objetos Worksheets. Esta colección también
puede ser accedida por el índice de cada una de las hojas del libro:

Application.Workbooks(1).Worksheets(1).Range("A1").Value = "Hola"

Esta instrucción accede a la hoja con el índice 1 y coloca el valor “Hola


Mundo” en la celda A1. También podemos acceder a una hoja a
través de su nombre en caso de que lo conozcamos:

Application.Workbooks(1).Worksheets("Hoja1").Range("A1").Value =

"Hola"

Agregar una nueva hoja


A través de la colección de objetos Worksheets podemos crear
nuevas hojas en un libro. Observa la siguiente instrucción:

Worksheets.Add
Observa que no he iniciado la instrucción anterior con el objeto
Application, ni tampoco está precedida por el objeto Workbooks. Esta
es una sintaxis aceptable dentro de VBA e indica que se agregará una
nueva hoja al libro que esté activo en ese momento. Este es un
método abreviado que podemos utilizar si estamos seguros de que el
libro activo es el libro al que deseamos agregar una nueva hoja. De lo
contrario, podemos especificar tota la ruta completa:

Application.Workbooks("Libro1.xlsx").Worksheets.Add

Ahora ya sabemos que VBA tiene un objeto para representar los libros
de Excel (Workbook) y otro objeto para representar las hojas de un
libro (Worksheet). Ambos tipos de objetos son almacenados dentro de
colecciones de objetos que son conocidas como Workbooks, que se
refiere a la colección de libros que se han abierto y Worksheets que es
la colección de hojas que pertenecen a un determinado libro.

Artículos relacionados
Navegando el modelo de objetos en VBA

Vous aimerez peut-être aussi