Obtenga más información sobre el objeto Libro de trabajo y Hoja de trabajo en Excel VBA .

Jerarquía de objetos

En Excel VBA, un objeto puede contener otro objeto y ese objeto puede contener otro objeto, etc. En otras palabras, la programación de Excel VBA implica trabajar con una jerarquía de objetos. Esto probablemente suene bastante confuso, pero lo dejaremos claro.

La madre de todos los objetos es el propio Excel. Lo llamamos el objeto Aplicación. El objeto de la aplicación contiene otros objetos. Por ejemplo, el objeto Libro de trabajo (archivo de Excel). Puede ser cualquier libro de trabajo que haya creado. El objeto Libro de trabajo contiene otros objetos, como el objeto Hoja de trabajo. El objeto Hoja de trabajo contiene otros objetos, como el objeto Rango.

El capítulo Crear una macro ilustra cómo ejecutar código haciendo clic en un botón de comando. Usamos la siguiente línea de código:

Range("A1").Value = "Hello"

pero lo que realmente queríamos decir fue:

Application.Workbooks("create-a-macro").Worksheets(1).Range("A1").Value = "Hello"

Nota: los objetos están conectados con un punto. Afortunadamente, no tenemos que agregar una línea de código de esta manera. Esto se debe a que colocamos nuestro botón de comando en create-a-macro.xlsm , en la primera hoja de trabajo. Tenga en cuenta que si desea cambiar cosas en diferentes hojas de trabajo, debe incluir el objeto Hoja de trabajo. Sigue leyendo.

Colecciones

Es posible que haya notado que los libros de trabajo y las hojas de trabajo están en plural. Eso es porque son colecciones. La colección Workbooks contiene todos los objetos Workbook que están abiertos actualmente. La colección Worksheets contiene todos los objetos Worksheet en un libro.

Nombres de hojas de trabajo

Puede hacer referencia a un miembro de la colección, por ejemplo, un solo objeto Hoja de trabajo, de tres formas.

1. Usando el nombre de la hoja de trabajo.

Worksheets("Sales").Range("A1").Value = "Hello"

2. Usando el número de índice (1 es la primera hoja de trabajo que comienza desde la izquierda).

Worksheets(1).Range("A1").Value = "Hello"

3. Usando el CodeName.

Sheet1.Range("A1").Value = "Hello"

Para ver el CodeName de una hoja de trabajo, abra el Editor de Visual Basic . En el Explorador de proyectos, el primer nombre es CodeName. El segundo nombre es el nombre de la hoja de trabajo (Ventas).

Nombre clave

Nota: CodeName sigue siendo el mismo si cambia el nombre de la hoja de trabajo o el orden de sus hojas de trabajo, por lo que esta es la forma más segura de hacer referencia a una hoja de trabajo. Haga clic en Ver, Ventana de propiedades para cambiar el nombre de código de una hoja de trabajo. Existe una desventaja: no puede usar CodeName si hace referencia a una hoja de trabajo en un libro de trabajo diferente.

Propiedades y métodos

Ahora echemos un vistazo a algunas propiedades y métodos de la colección Workbooks y Worksheets. Las propiedades son algo que tiene una colección (describen la colección), mientras que los métodos hacen algo (realizan una acción con una colección).

Coloque un botón de comando en su hoja de trabajo y agregue las líneas de código:

1. El método Add de la colección Workbooks crea un nuevo libro.

Workbooks.Add

Nota: el método Add de la colección Worksheets crea una nueva hoja de trabajo.

2. La propiedad Count de la colección Worksheets cuenta el número de hojas de trabajo en un libro.

MsgBox Worksheets.Count

Resultado al hacer clic en el botón de comando en la hoja:

Contar propiedad en Excel VBA

Nota: la propiedad Count de la colección Workbooks cuenta el número de libros activos.

1/8 Completado! Más información sobre libros y hojas>
Capítulo siguiente: Objeto de rango