VBA Establecer variables de objeto: libros de trabajo, hojas de trabajo y más

Este tutorial le enseñará cómo definir variables de objeto usando la declaración Set en VBA.

Definición de variables de objeto

Los objetos son la piedra angular de Microsoft Office: sin objetos, no podemos lograr nada. En Excel, los objetos incluyen el libro de trabajo, la hoja de trabajo o los objetos de rango. En Microsoft Word, los ejemplos son el objeto Documento o Tabla. Cada objeto tiene una variedad de Propiedades y Métodos que se puede programar para controlar el comportamiento de ese objeto.

Declaración de la variable de objeto

Antes de que podamos hacer referencia al objeto en el código y, por lo tanto, controlar el objeto, debemos declarar el objeto. Podemos hacer esto usando la declaración Dim.

123456 Dim wkb como libro de trabajoDim wks como hoja de trabajoDim Rng como rangoDim wdDoc como documentoDim wdTbl como tablaDim shp como forma

Esta Oscuro La declaración puede ocurrir dentro de un procedimiento:

o fuera de un procedimiento a nivel de módulo:

Si la variable se declara a nivel de módulo (fuera del procedimiento), la variable se puede utilizar en todo el módulo.

Si la variable de objeto se declara con la declaración pública, entonces la variable se puede utilizar en todo el proyecto VBA:

Valor ajustado

Una vez que haya declarado el objeto, debe asignarle un valor. Esto debe hacerse usando el Establecer declaración y solo se puede hacer dentro de un Procedimiento.

12345 Sub SetObjects ()Establecer wkb = ActiveWorkbookEstablecer wks = Sheet1Establecer rng = Rango ("A1: G4")End Sub

Nota: Esto es diferente a asignar valores a variables que no son de objeto. DEBE usar la instrucción Set para asignar el objeto a la variable. Si no lo hace, recibirá un error:

Una vez que haya asignado un valor al objeto, puede escribir código para controlar el comportamiento o manipular el objeto.

Programación VBA | ¡Code Generator funciona para usted!

Ejemplos de objetos en Excel

Objeto del libro de trabajo

Una vez que haya declarado una variable de libro de trabajo, puede asignar un libro de trabajo a ese objeto y usar las Propiedades y Métodos disponibles para manipular ese objeto. En el siguiente ejemplo, vamos a guardar un libro de trabajo.

123456789101112 Sub WorkbookObject ()'declarar el objeto del libro de trabajoDim wkb como libro de trabajo'asignar un libro de trabajo no guardado al objetoEstablecer wkb = Workbooks ("Libro1")'guardar el libro de trabajowkb.SaveAs "C: \ data \ testbook.xlsx"'cerrar el libro de trabajowkb.closerecuerda soltar el objetoEstablecer wkb = NadaEnd Sub

Objeto de hoja de trabajo

De manera similar, puede manipular una hoja de trabajo u hojas de trabajo una vez que haya declarado la hoja de trabajo como una variable. En el siguiente ejemplo, cambiamos el nombre de Sheet1 y Sheet2.

12345678910111213 Sub WorksheetObject ()Dim wks1 como hoja de trabajoDim wks2 como hoja de trabajo'inicializar los objetosEstablecer wks1 = Sheet1Establecer wks2 = Sheet2'cambiar el nombre de las sábanaswks1.Name = "Clientes"wks2.Name = "Productos"'poner los objetos en nadawks1 = Nadawks2 = NadaEnd Sub

¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!

Objeto de rango

El objeto Range es uno de los objetos más útiles para manipular en Excel. En el siguiente ejemplo, ponemos en negrita el rango A1 a E1 y lo formateamos con un borde inferior.

12345678910111213 Sub RangeObject ()Dim rng1 como rango'inicializar el rangoEstablecer rng = Rango ("A1: E1")'en negrita el rango y establece el borde inferiorrng.Font.Bold = VerdaderoCon rng1.Borders (xlEdgeBottom).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Peso = xldelgadoTerminar conEnd Sub

Objeto de forma

También puede utilizar variables de objeto para trabajar con formas.

123456789101112 Sub AddShape ()Dim shp como forma'crea la formaEstablezca shp = ActiveDocument.Shapes.AddShape (msoShapeSmileyFace, 68.25, 225.75, 136.5, 96 #)Con shp'cambiar el color y el estilo del interior.Fill.ForeColor.RGB = RGB (255, 255, 0).Llenar.Sólido'ajusta la sonrisa!.Ajustes.Item (1) = 0.07181Terminar conEnd Sub
wave wave wave wave wave