Comprensión del Modelo de Objetos de Excel
Desliza para mostrar el menú
Cada línea de VBA que escribirás en Excel es una frase sobre objetos: algo existe (una Application, un Workbook, una Worksheet, un Range), y lees una de sus propiedades o le pides que ejecute uno de sus métodos. Una vez que comprendes esta jerarquía, el resto del lenguaje es principalmente vocabulario.
Lectura de la jerarquía
- Application — toda la instancia en ejecución de Excel; la parte superior de cada jerarquía;
- Workbooks — la colección de todos los archivos abiertos; uno solo es un Workbook, por ejemplo,
Section_1_VBA_Intro.xlsm; - Worksheets — la colección de pestañas dentro de un workbook; una sola es una Worksheet, por ejemplo, "Employees";
- Range — una celda, un bloque de celdas, una fila completa o una columna completa;
- Cells / Value — los datos reales que se encuentran dentro de un Range.
Rara vez es necesario escribir toda la cadena desde Application hacia abajo: VBA asume que te refieres al workbook y hoja activos a menos que indiques lo contrario, pero nombrar los objetos explícitamente es lo que diferencia el código frágil del código confiable. Compara estas dos formas de escribir la misma instrucción:
' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000
La segunda versión seguirá funcionando incluso si el usuario tiene otros tres libros abiertos y una hoja diferente seleccionada, un hábito que importa enormemente una vez que tus macros superan unas pocas líneas. Utilizarás ThisWorkbook.Worksheets("SheetName") de esta manera constantemente durante el resto del curso.
Navegación de relaciones de objetos en la ventana inmediata
La Ventana Inmediata (Ver → Ventana Inmediata o Ctrl+G dentro del VBE; ^ ⌘ G en Mac) permite probar una sola línea de código sin envolverla en un Sub.


Escribe una línea comenzando con un signo de interrogación y presiona Enter para ver el resultado de inmediato. Prueba estas líneas en Section_1_VBA_Intro.xlsm:
?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count
La tercera línea introduce CurrentRegion, una propiedad que se expande desde una sola celda hasta el bloque completo de datos contiguos a su alrededor.
Tarea
- En la Ventana Inmediata, escribe una línea que imprima el Puesto de
Olivia Brown(fila 4) sin hacer clic primero en la celda; haz referencia directamente a través de la jerarquía de objetos. - Escribe una segunda línea que imprima cuántas filas hay en la tabla Employees usando
CurrentRegion.Rows.Count.
Haz referencia como ThisWorkbook.Worksheets("Employees").Range("D4").Value — la fila 4 es Olivia Brown, la columna D es Puesto.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Comprensión del Modelo de Objetos de Excel
Cada línea de VBA que escribirás en Excel es una frase sobre objetos: algo existe (una Application, un Workbook, una Worksheet, un Range), y lees una de sus propiedades o le pides que ejecute uno de sus métodos. Una vez que comprendes esta jerarquía, el resto del lenguaje es principalmente vocabulario.
Lectura de la jerarquía
- Application — toda la instancia en ejecución de Excel; la parte superior de cada jerarquía;
- Workbooks — la colección de todos los archivos abiertos; uno solo es un Workbook, por ejemplo,
Section_1_VBA_Intro.xlsm; - Worksheets — la colección de pestañas dentro de un workbook; una sola es una Worksheet, por ejemplo, "Employees";
- Range — una celda, un bloque de celdas, una fila completa o una columna completa;
- Cells / Value — los datos reales que se encuentran dentro de un Range.
Rara vez es necesario escribir toda la cadena desde Application hacia abajo: VBA asume que te refieres al workbook y hoja activos a menos que indiques lo contrario, pero nombrar los objetos explícitamente es lo que diferencia el código frágil del código confiable. Compara estas dos formas de escribir la misma instrucción:
' Fragile — depends on whatever sheet happens to be active
Range("F2").Value = 65000
' Reliable — states exactly which workbook and sheet, no matter what's on screen
ThisWorkbook.Worksheets("Employees").Range("F2").Value = 65000
La segunda versión seguirá funcionando incluso si el usuario tiene otros tres libros abiertos y una hoja diferente seleccionada, un hábito que importa enormemente una vez que tus macros superan unas pocas líneas. Utilizarás ThisWorkbook.Worksheets("SheetName") de esta manera constantemente durante el resto del curso.
Navegación de relaciones de objetos en la ventana inmediata
La Ventana Inmediata (Ver → Ventana Inmediata o Ctrl+G dentro del VBE; ^ ⌘ G en Mac) permite probar una sola línea de código sin envolverla en un Sub.


Escribe una línea comenzando con un signo de interrogación y presiona Enter para ver el resultado de inmediato. Prueba estas líneas en Section_1_VBA_Intro.xlsm:
?ThisWorkbook.Name
?ThisWorkbook.Worksheets("Employees").Range("B3").Value
?ThisWorkbook.Worksheets("Employees").Range("A1").CurrentRegion.Address
?ThisWorkbook.Worksheets.Count
La tercera línea introduce CurrentRegion, una propiedad que se expande desde una sola celda hasta el bloque completo de datos contiguos a su alrededor.
Tarea
- En la Ventana Inmediata, escribe una línea que imprima el Puesto de
Olivia Brown(fila 4) sin hacer clic primero en la celda; haz referencia directamente a través de la jerarquía de objetos. - Escribe una segunda línea que imprima cuántas filas hay en la tabla Employees usando
CurrentRegion.Rows.Count.
Haz referencia como ThisWorkbook.Worksheets("Employees").Range("D4").Value — la fila 4 es Olivia Brown, la columna D es Puesto.
¡Gracias por tus comentarios!