Clase ChartObject (Excel VBA)

La clase ChartObject representa un gráfico incrustado en una hoja de cálculo.

Los principales procedimientos de la clase ChartObject son Activate, Copy, Delete, Select, ChartObjects.Add, ChartObjects.Copy, ChartObjects.Delete y ChartObjects.Select

Set

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

Dim chro as ChartObject
Set chro = ActiveSheet.ChartObjects(Index:=1)

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

For Each

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

Dim chro As ChartObject
For Each chro In ActiveSheet.ChartObjects()
	
Next chro

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 y TopLeftCell
Copy with its procedures Copy, CopyPicture, ChartObjects.Copy y ChartObjects.CopyPicture
Print with its procedures PrintObject y ChartObjects.PrintObject

Métodos

Los principales métodos de la clase ChartObject son

Activate - Convierte el gráfico actual en el gráfico activo.

ActiveSheet.ChartObjects(1).Activate

Delete - Elimina el objeto.

ActiveSheet.ChartObjects(1).Delete

Select - Selecciona el objeto.

ActiveSheet.ChartObjects(1).Select

ChartObjects.Add - Crea un nuevo gráfico incrustado.

Dim dblLeft As Double: dblLeft = 
Dim dblTop As Double: dblTop = 
Dim dblWidth As Double: dblWidth = 
Dim dblHeight As Double: dblHeight = 
Dim chro As ChartObject
Set chro = ActiveSheet.ChartObjects.Add(Left:=dblLeft, Top:=dblTop, Width:=dblWidth, Height:=dblHeight)

ChartObjects.Delete - Elimina el objeto.

ActiveSheet.ChartObjects.Delete

ChartObjects.Select - Selecciona el objeto.

ActiveSheet.ChartObjects.Select

Otros Métodos

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

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

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

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

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

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

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

Propiedades

Chart Devuelve un objeto Chart que representa el gráfico contenido en el objeto.

Dim chrChart As Chart
Set chrChart = ActiveSheet.ChartObjects(1).Chart

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

ActiveSheet.ChartObjects(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 = ActiveSheet.ChartObjects(1).Index

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).

ActiveSheet.ChartObjects(1).Left = 50

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

ActiveSheet.ChartObjects(1).Locked = True

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

ActiveSheet.ChartObjects(1).Name =

Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveSheet.ChartObjects(1).Parent

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

ActiveSheet.ChartObjects(1).Placement = xlFreeFloating

ProtectChartObject True si no es posible mover, cambiar de tamaño o eliminar el marco del gráfico insertado mediante la interfaz de usuario.

ActiveSheet.ChartObjects(1).ProtectChartObject = True

RoundedCorners Es True si el gráfico incrustado tiene esquinas redondeadas.

ActiveSheet.ChartObjects(1).RoundedCorners = True

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

ActiveSheet.ChartObjects(1).Shadow = True

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

Dim sreShapeRange As ShapeRange
Set sreShapeRange = ActiveSheet.ChartObjects(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).

ActiveSheet.ChartObjects(1).Top =

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

ActiveSheet.ChartObjects(1).Visible = True

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

ActiveSheet.ChartObjects(1).Width =

ZOrder Devuelve la posición del objeto en el orden z.

Dim lngZOrder As Long
lngZOrder = ActiveSheet.ChartObjects(1).ZOrder

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

Dim lngCount As Long
lngCount = ActiveSheet.ChartObjects.Count

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

ActiveSheet.ChartObjects.Height =

ChartObjects.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).

ActiveSheet.ChartObjects.Left =

ChartObjects.Locked Devuelve o establece un valor de tipo Boolean que indica si los objetos están bloqueados.

ActiveSheet.ChartObjects.Locked = True

ChartObjects.Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveSheet.ChartObjects.Parent

ChartObjects.Placement Devuelve o establece un valor de tipo Variant , que contiene una constante XlPlacement , que representa el modo en que los objetos se adjuntan a las celdas que están debajo.

ActiveSheet.ChartObjects.Placement = xlFreeFloating

ChartObjects.ProtectChartObject True si no es posible mover, cambiar de tamaño o eliminar el marco del gráfico insertado mediante la interfaz de usuario.

ActiveSheet.ChartObjects.ProtectChartObject = True

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

Dim sreShapeRange As ShapeRange
Set sreShapeRange = ActiveSheet.ChartObjects.ShapeRange

ChartObjects.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).

ActiveSheet.ChartObjects.Top =

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

ActiveSheet.ChartObjects.Visible = True

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

ActiveSheet.ChartObjects.Width =