Clase OLEObject (Excel VBA)

La clase OLEObject representa un control ActiveX o un objeto OLE (incrustado o vinculado) en una hoja de cálculo.

Los principales procedimientos de la clase OLEObject son Activate, Copy, Delete, Select, OLEObjects.Add, OLEObjects.Copy, OLEObjects.Delete y OLEObjects.Select

Set

Para usar una variable de clase OLEObject, primero debe ser instanciado, por ejemplo

Dim oleob as OLEObject
Set oleob = ActiveChart.OLEObjects(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase OLEObject : Duplicate, OLEObjects.Item, OLEObjects.Add, Chart.OLEObjects, OLEObjects.Duplicate y Worksheet.OLEObjects

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos OLEObject en una colección.

Worksheets("Sheet1").Activate 
Range("A1").Value = "Name" 
Range("B1").Value = "Link Status" 
Range("C1").Value = "AutoUpdate Status" 
i = 2 
For Each obj In ActiveSheet.OLEObjects 
 Cells(i, 1) = obj.Name 
 If obj.OLEType = xlOLELink Then 
 Cells(i, 2) = "Linked" 
 Cells(i, 3) = obj.AutoUpdate 
 Else 
 Cells(i, 2) = "Embedded" 
 End If 
 i = i + 1 
Next

Temas

Algunos procedimientos de esta clase se han agrupado en temas y se describen en páginas temáticas separadas

Cell with its procedures BottomRightCell, LinkedCell y TopLeftCell
Copy with its procedures Copy, CopyPicture, OLEObjects.Copy y OLEObjects.CopyPicture
Enable with its procedures Enabled y OLEObjects.Enabled
Print with its procedures PrintObject y OLEObjects.PrintObject
Name with its procedures SourceName y OLEObjects.SourceName
Sort/Order with its procedures ZOrder y OLEObjects.ZOrder

Métodos

Los principales métodos de la clase OLEObject son

Activate - Activa el objeto.

ActiveChart.OLEObjects(1).Activate

Delete - Elimina el objeto.

ActiveChart.OLEObjects(1).Delete

Select - Selecciona el objeto.

ActiveChart.OLEObjects(1).Select

OLEObjects.Add - Agrega un objeto OLE nuevo a una hoja.

Dim oleob As OLEObject
Set oleob = ActiveChart.OLEObjects.Add

OLEObjects.Delete - Elimina el objeto.

ActiveChart.OLEObjects.Delete

OLEObjects.Select - Selecciona el objeto.

ActiveChart.OLEObjects.Select

Otros Métodos

BringToFront - Sitúa el objeto en el primer plano del orden z.

Cut - Corta el objeto y lo pega en el Portapapeles o en un destino especificado.

Duplicate - Duplica el objeto y devuelve una referencia a la nueva copia.

SendToBack - Envía el objeto al final del orden z.

Update - Actualiza el vínculo.

Verb - Envía un verbo al servidor del objeto OLE especificado.

OLEObjects.BringToFront - Sitúa el objeto en el primer plano del orden z.

OLEObjects.Cut - Corta el objeto y lo copia en el Portapapeles.

OLEObjects.Duplicate - Duplica el objeto y devuelve una referencia a la nueva copia.

OLEObjects.Item - Devuelve un solo objeto de una colección.

OLEObjects.SendToBack - Envía el objeto al final del orden z.

Propiedades

AutoLoad Es True si el objeto OLE se carga automáticamente cuando se abre el libro que lo contiene.

ActiveChart.OLEObjects(1).AutoLoad = True

AutoUpdate Es True si el objeto OLE se actualiza automáticamente al cambiar el origen.

ActiveChart.OLEObjects(1).AutoUpdate = True

Border Devuelve un objeto Border que representa el borde del objeto.

Dim brdBorder As Border
Set brdBorder = ActiveChart.OLEObjects(1).Border

Height Devuelve o establece un valor de tipo Double que representa el alto, en puntos, del objeto.

ActiveChart.OLEObjects(1).Height =

Index Devuelve un valor de tipo Long que representa el número de índice del objeto dentro de una colección de objetos similares.

Dim lngIndex As Long
lngIndex = ActiveChart.OLEObjects(1).Index

Interior Devuelve un objeto Interior que representa el interior del objeto especificado.

Dim intInterior As Interior
Set intInterior = ActiveChart.OLEObjects(1).Interior

Left Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde izquierdo del objeto al borde izquierdo de la columna a (en una hoja de cálculo) o al borde izquierdo del área del gráfico (en un gráfico).

ActiveChart.OLEObjects(1).Left =

ListFillRange Devuelve o establece el rango de la hoja de cálculo empleado para rellenar el cuadro de lista especificado.

ActiveChart.OLEObjects(1).ListFillRange =

Locked Devuelve o establece un valor de tipo Boolean que indica si el objeto está bloqueado.

ActiveChart.OLEObjects(1).Locked = True

Name Devuelve o establece un valor de tipo String que representa el nombre del objeto.

ActiveChart.OLEObjects(1).Name =

Object Devuelve el objeto de automatización OLE asociado a este objeto OLE.

Dim objObject As Object
Set objObject = ActiveChart.OLEObjects(1).Object

OLEType Devuelve el tipo de objeto OLE.

Dim xolOLEType As XlOLEType
xolOLEType = ActiveChart.OLEObjects(1).OLEType

Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveChart.OLEObjects(1).Parent

Placement Devuelve o establece un valor de tipo Variant que contiene una constante XlPlacement que representa la manera en que el objeto está unido a las celdas que están debajo de él.

ActiveChart.OLEObjects(1).Placement = xlFreeFloating

progID Devuelve los identificadores programáticos del objeto.

Dim strprogID As String
strprogID = ActiveChart.OLEObjects(1).progID

Shadow Devuelve o establece un valor de tipo Boolean que determina si el objeto tiene una sombra.

ActiveChart.OLEObjects(1).Shadow = True

ShapeRange Devuelve un objeto ShapeRange que representa el objeto u objetos especificados.

Dim sreShapeRange As ShapeRange
Set sreShapeRange = ActiveChart.OLEObjects(1).ShapeRange

Top Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde superior del objeto hasta la parte superior de la fila 1 (en una hoja de cálculo) o hasta la parte superior del área del gráfico (en un gráfico).

ActiveChart.OLEObjects(1).Top =

Visible Devuelve o establece un valor Boolean que determina si el objeto es visible.

ActiveChart.OLEObjects(1).Visible = True

Width Devuelve o establece un valor de tipo Double que representa el ancho, en puntos, del objeto.

ActiveChart.OLEObjects(1).Width =

OLEObjects.AutoLoad Es True si el objeto OLE se carga automáticamente cuando se abre el libro que lo contiene.

ActiveChart.OLEObjects.AutoLoad = True

OLEObjects.Border Devuelve un objeto Border que representa el borde del objeto.

Dim brdBorder As Border
Set brdBorder = ActiveChart.OLEObjects.Border

OLEObjects.Count Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveChart.OLEObjects.Count

OLEObjects.Height Devuelve o establece un valor de tipo Double que representa el alto, en puntos, del objeto.

ActiveChart.OLEObjects.Height =

OLEObjects.Interior Devuelve un objeto Interior que representa el interior del objeto especificado.

Dim intInterior As Interior
Set intInterior = ActiveChart.OLEObjects.Interior

OLEObjects.Left Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde izquierdo del objeto al borde izquierdo de la columna a (en una hoja de cálculo) o al borde izquierdo del área del gráfico (en un gráfico).

ActiveChart.OLEObjects.Left =

OLEObjects.Locked Devuelve o establece un valor de tipo Boolean que indica si el objeto está bloqueado.

ActiveChart.OLEObjects.Locked = True

OLEObjects.Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveChart.OLEObjects.Parent

OLEObjects.Placement Devuelve o establece un valor de tipo Variant que contiene una constante XlPlacement que representa la manera en que el objeto está unido a las celdas que están debajo de él.

ActiveChart.OLEObjects.Placement = xlFreeFloating

OLEObjects.Shadow Devuelve o establece un valor de tipo Boolean que determina si el objeto tiene una sombra.

ActiveChart.OLEObjects.Shadow = True

OLEObjects.ShapeRange Devuelve un objeto ShapeRange que representa el objeto u objetos especificados.

Dim sreShapeRange As ShapeRange
Set sreShapeRange = ActiveChart.OLEObjects.ShapeRange

OLEObjects.Top Devuelve o establece un valor de tipo Double que representa la distancia, en puntos, desde el borde superior del objeto hasta la parte superior de la fila 1 (en una hoja de cálculo) o hasta la parte superior del área del gráfico (en un gráfico).

ActiveChart.OLEObjects.Top =

OLEObjects.Visible Devuelve o establece un valor Boolean que determina si el objeto es visible.

ActiveChart.OLEObjects.Visible = True

OLEObjects.Width Devuelve o establece un valor de tipo Double que representa el ancho, en puntos, del objeto.

ActiveChart.OLEObjects.Width =