Los objetos de Excel VBA se refieren a "entidades" individuales compuestas por código y datos. La aplicación de Excel en sí misma es un objeto, al igual que los libros de trabajo, las hojas de trabajo, los rangos de celdas y las formas. Cada objeto tiene propiedades y métodos asociados. Los objetos también pueden contener otros objetos y el objeto de colecciones se utiliza para hacer referencia a un grupo de los mismos objetos de Excel.
En este tutorial, veremos algunos objetos de Excel de uso común.
Objeto de aplicación
El objeto de aplicación se refiere a toda la aplicación de Excel. El objeto Aplicación contiene el objeto del libro de trabajo.
El siguiente código usa la propiedad WindowState del objeto Aplicación para establecer la ventana de Excel en el tamaño máximo disponible:
12345 | Sub MaximizingTheExcelWindow ()Application.WindowState = xlMaximizedEnd Sub |
Objeto de libros de trabajo
El objeto Workbooks se refiere a la colección de todos los libros de Excel abiertos actualmente.
El siguiente código usa el método Workbooks.Add para crear un nuevo libro y agregarlo a la colección:
12345 | Agregar un nuevo libro de trabajo a la colección de libros de trabajo ()Cuadernos de trabajo AgregarEnd Sub |
Puede acceder a un libro de trabajo individual en la colección Workbooks a través de su número de índice o nombre. Por lo tanto, puede consultar un Libro de trabajo llamado ExcelWb, utilizando Libros de trabajo ("ExcelWB").
Objeto del libro de trabajo
El objeto del libro de trabajo es parte de la colección Workbooks. El objeto de libro de trabajo contiene la colección de hojas de trabajo (hojas de trabajo) y la colección de hojas (hojas de trabajo, hojas de gráficos y macrosheets). El objeto ActiveWorkbook hace referencia al libro que está activo.
El siguiente código usa el método ActiveWorkbook.Save para guardar el libro activo actual:
12345 | Sub SavingTheWorkbook ()ActiveWorkbook.SaveEnd Sub |
Objeto de hojas
El objeto de hojas se refiere a la colección de todas las hojas de trabajo, hojas de gráficos y macrosheets en un libro de trabajo. El siguiente código usa el método Sheets.Add para agregar una nueva hoja de trabajo llamada ExtraSheet, después de la última hoja de trabajo del libro:
123456 | Sub AddingANewSheet ()ActiveWorkbook.Sheets.Add (Después: = ActiveWorkbook.Worksheets (Worksheets.Count), Count: = 1, _Tipo: = xlWorksheet) .Name = "ExtraSheet"End Sub |
Tenga en cuenta que la sintaxis del método Sheets.Add es:
Hojas.Añadir (Antes, Después, Contar, Escribe) dónde:
-Before es opcional y especifica que la nueva hoja debe agregarse antes que una hoja existente.
-After es opcional y especifica que la nueva hoja debe agregarse después de una hoja existente.
-Count es opcional y especifica la cantidad de hojas que se agregarán.
-Type es opcional y especifica el tipo de hoja. xlWorksheet agregaría una nueva hoja de trabajo, xlChart agregaría una nueva hoja de gráfico y xlExcel4MacroSheet o xlExcel4IntlMacroSheet agregaría una nueva macrosheet. Si está en blanco, se utiliza la hoja de trabajo xl predeterminada.
Puede acceder a una hoja individual en la colección Hojas a través de su número de índice o nombre. Por lo tanto, puede hacer referencia a una hoja de trabajo llamada SheetOne, utilizando Sheets ("SheetOne").
Objeto de hojas de trabajo
El objeto Worksheets se refiere a la colección de todas las hojas de trabajo de un libro. El siguiente código usa el método Worksheets.Add para agregar una nueva hoja de trabajo:
12345 | Sub AddingANewSheet ()Hojas de trabajo.AñadirEnd Sub |
Puede acceder a una hoja individual en la colección de Hojas de trabajo a través de su número de índice o nombre. Por lo tanto, puede hacer referencia a una hoja de trabajo llamada SheetTwo, mediante el uso de hojas de trabajo ("SheetTwo").
Objeto de hoja de trabajo
El objeto de la hoja de trabajo es parte de la colección Worksheets. El objeto de la hoja de trabajo contiene el objeto de rango y otros objetos. El objeto ActiveSheet hace referencia a la hoja que está activa.
El siguiente código cambia la orientación de la página de la hoja activa a horizontal:
12345 | Sub ChangingOrientationToLandscape ()ActiveSheet.PageSetup.Orientation = xlLandscapeEnd Sub |
Tenga en cuenta que el objeto Hoja contiene el objeto PageSetup y su propiedad de orientación se establece en xlLandscape.
Objeto de rango
El objeto Range puede hacer referencia a una sola celda o un conjunto de celdas en una hoja de trabajo. El siguiente código le muestra cómo usar el método Range.Select para seleccionar las celdas A1: B1:
12345 | Sub SelectingARange ()Rango ("A1: B1"). SeleccionarEnd Sub |
Objeto de formas
El objeto Shapes se refiere a la colección de todas las formas en una hoja de trabajo. El siguiente código seleccionaría todas las formas en ActiveSheet:
12345 | Sub Seleccionar todas las formas ()ActiveSheet.Shapes.SelectAllEnd Sub |
Objeto de forma
El objeto Shape es parte de la colección Shapes. El siguiente código crearía una forma de rectángulo redondeado y luego establecería la propiedad de nombre del objeto de forma:
123456789 | Sub UsingTheShapeObject ()Con hojas de trabajo (1) .Shapes.AddShape (msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Un rectángulo redondeado"Terminar conEnd Sub |
Modelo de objetos de Excel VBA
El modelo de objetos VBA de Excel describe la jerarquía de todos los objetos que puede usar en Excel. Por ejemplo, puede utilizar el objeto Workbooks para hacer referencia a todos los demás objetos de forma directa o indirecta. El siguiente código le muestra cómo seleccionar la celda A1, usando la estructura jerárquica:
12345 | Sub UsingTheHierachicalStructure ()Libros de trabajo ("Libro1"). Hojas de trabajo ("Hoja1"). Rango ("A1"). SeleccioneEnd Sub |
Declarar y asignar una variable de objeto
Puede declarar y asignar un objeto a una variable utilizando las palabras clave Dim y Set.
Por ejemplo:
12 | Dim ws como hoja de trabajoEstablecer ws = ActiveWorkbook.ActiveSheet |
El siguiente código muestra cómo declarar y asignar un objeto Range a una variable:
12345678910111213141516 | Sub AssigningARangeToAVariable ()Dim rngOne como objetoEstablecer rngOne = Rango ("A1: C1")rngOne.Font.Bold = VerdaderoCon rngOne.Font.Bold = Verdadero.Font.Name = "Calibri".Font.Size = 9.Fuente.Color = RGB (35, 78, 125).Interior.Color = RGB (205, 224, 180).Bordes (xlEdgeBottom) .LineStyle = xlContinuousTerminar conEnd Sub |
El resultado es:
Es esencial comprender cómo funcionan los objetos para dominar VBA. Puede obtener más información con nuestro tutorial interactivo de VBA.