Clase Chart (Excel VBA)

La clase Chart representa un gráfico en un libro.

Los principales procedimientos de la clase Chart son Activate, Copy, Delete, Select, Sheets.Add, Sheets.Copy, Sheets.Delete y Sheets.Select

Set

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

Dim chr as Chart
Set chr = ActiveChart

Los siguientes procedimientos se pueden usar para establecer variables de clase Chart : Application.ActiveChart, Location, ChartObject.Chart, Shape.Chart, ShapeRange.Chart, Sheets.Item, Sheets.Item, Sheets.Add, Sheets.Add, Sheets.Visible, Sheets.Visible, Window.ActiveChart, Workbook.ActiveChart, Worksheets.Add, Application.Charts, Application.Sheets, Application.Worksheets, Window.SelectedSheets, Workbook.Charts, Workbook.Sheets y Workbook.Worksheets

For Each

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

Dim chr As Chart
For Each chr In Charts
	
Next chr

Temas

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

Name with its procedures ChartTitle, CodeName, HasTitle y SeriesNameLevel
Copy with its procedures Copy, CopyPicture y Sheets.Copy
Display/Show with its procedures DisplayBlanksAs, ShowAllFieldButtons, ShowAxisFieldButtons, ShowDataLabelsOverMaximum, ShowExpandCollapseEntireFieldButtons, ShowLegendFieldButtons y ShowValueFieldButtons
Export with its procedures Export y ExportAsFixedFormat
Print with its procedures PageSetup, PrintedCommentPages, PrintOut, PrintPreview, Sheets.HPageBreaks, Sheets.PrintOut, Sheets.PrintPreview y Sheets.VPageBreaks
Protect with its procedures Protect y Unprotect
Select with its procedures Select y Sheets.Select

Métodos

Los principales métodos de la clase Chart son

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

ActiveChart.Activate

Delete - Elimina el objeto.

ActiveChart.Delete

Sheets.Add - Crea una hoja de cálculo, un gráfico o una hoja de macros nuevos. La nueva hoja de cálculo se convierte en la hoja activa.

Dim ws As Worksheet
Set ws = Charts.Add

Sheets.Delete - Elimina el objeto.

Charts.Delete

Otros Métodos

ApplyChartTemplate - Aplica un tipo de gráfico estándar o personalizado a un gráfico.

ApplyDataLabels - Aplica rótulos de datos a todas las series de un gráfico.

ApplyLayout - Aplica los diseños que se muestran en la cinta de opciones.

Axes - Devuelve un objeto que representa un solo eje o una colección de ejes en el gráfico.

ChartGroups - Devuelve un objeto que representa un solo grupo de gráficos (un objeto ChartGroup ) o una colección de todos los grupos de gráficos del gráfico (un objeto ChartGroups ).

ChartObjects - Devuelve un objeto que representa un único gráfico incrustado (un objeto ChartObject ) o una colección de todos los gráficos incrustados (un objeto ChartObjects ) en la hoja.

ChartWizard - Modifica las propiedades del gráfico especificado.

CheckSpelling - Comprueba la ortografía de un objeto.

ClearToMatchColorStyle - Borra todos los colores del gráfico especificado que no siguen el estilo de color aplicado al gráfico.

ClearToMatchStyle - Borra el formato de los elementos del gráfico y usa los formatos automáticos.

Evaluate - Convierte un nombre de Microsoft Excel en un objeto o un valor.

FullSeriesCollection - Permite recuperar la serie de salida filtrada especificada por el argumento index .

GetChartElement - Devuelve información sobre el elemento de gráfico en las coordenadas x e y especificadas.

Location - Desplaza el gráfico a otro lugar.

Move - Mueve el gráfico a otro lugar del libro.

OLEObjects - Devuelve un objeto que representa un único objeto OLE (un objeto OLEObject) o una colección de todos los objetos OLE (una colección OLEObjects ) del gráfico o de la hoja.

Paste - Pega los datos de gráfico que contiene el Portapapeles en el gráfico indicado.

Refresh - Hace el gráfico especificado vuelva a dibujarse inmediatamente.

SaveAs - Guarda los cambios del gráfico o de la hoja de cálculo en un archivo diferente.

SaveChartTemplate - Guarda una plantilla de gráfico personalizada en la lista de plantillas de gráfico disponibles.

SeriesCollection - Devuelve un objeto que representa una única serie (un objeto series ) o una colección de todas las series (una colección SeriesCollection ) en el gráfico o grupo de gráficos.

SetBackgroundPicture - Establece el gráfico de fondo para una hoja de cálculo o un gráfico.

SetDefaultChart - Especifica el nombre de la plantilla de gráfico que usa Microsoft Excel para crear nuevos gráficos.

SetElement - Conjuntos de elementos de gráfico de un gráfico.

SetProperty -

SetSourceData - Configura el rango de datos de origen para el gráfico.

Sheets.FillAcrossSheets - Copia un rango en el mismo lugar en toda una serie de hojas de cálculo.

Sheets.Move - Desplaza la hoja a otro lugar del libro.

Propiedades

AutoScaling True si Microsoft Excel ajusta la escala de un gráfico 3D para que sea más cerca del tamaño del gráfico 2D equivalente.

ActiveChart.AutoScaling = True

BackWall Devuelve un objeto Walls que permite al usuario dar formato por separado al plano trasero de un gráfico 3D.

Dim wllsBackWall As Walls
Set wllsBackWall = ActiveChart.BackWall

BarShape Devuelve o establece la forma utilizada con el gráfico de columnas o de barras 3D.

ActiveChart.BarShape = xlBox

CategoryLabelLevel Devuelve una constante XlCategoryLabelLevel que hace referencia al nivel desde el que se van a originar las etiquetas de categoría.

ActiveChart.CategoryLabelLevel = xlCategoryLabelLevelAll

ChartArea Devuelve un objeto ChartArea que representa el área completa del gráfico.

Dim caaChartArea As ChartArea
Set caaChartArea = ActiveChart.ChartArea

ChartColor Devuelve o establece un valor de tipo Integer que representa la combinación de colores del gráfico.

ActiveChart.ChartColor =

ChartStyle Devuelve o establece el estilo de gráfico para el gráfico.

ActiveChart.ChartStyle =

ChartType Devuelve o establece el tipo de gráfico.

ActiveChart.ChartType = xl3DArea

DataTable Devuelve un objeto DataTable que representa la tabla de datos del gráfico.

Dim dteDataTable As DataTable
Set dteDataTable = ActiveChart.DataTable

DepthPercent Devuelve o establece la profundidad de un gráfico 3D como un porcentaje del ancho del gráfico (entre 20 y 2000 por ciento).

ActiveChart.DepthPercent =

DisplayValueNotAvailableAsBlank

ActiveChart.DisplayValueNotAvailableAsBlank = True

Elevation Devuelve o establece la elevación de la vista del gráfico 3D, en grados.

ActiveChart.Elevation =

Floor Devuelve un objeto Floor que representa el plano inferior del gráfico 3D.

Dim flrFloor As Floor
Set flrFloor = ActiveChart.Floor

GapDepth Devuelve o establece la distancia entre la serie de datos de un gráfico 3D como un porcentaje del ancho del marcador.

ActiveChart.GapDepth =

HasAxis Devuelve o establece información acerca de los ejes existentes en el gráfico.

ActiveChart.HasAxis = True

HasDataTable True si el gráfico tiene una tabla de datos.

ActiveChart.HasDataTable = True

HasLegend True si el gráfico tiene una leyenda.

ActiveChart.HasLegend = True

HeightPercent Devuelve o establece el alto de un gráfico 3D como un porcentaje del ancho del gráfico (entre 5 y 500 por ciento).

ActiveChart.HeightPercent =

Hyperlinks Devuelve una colección Hyperlinks que representa los hipervínculos del gráfico.

Dim hypsHyperlinks As Hyperlinks
Set hypsHyperlinks = ActiveChart.Hyperlinks

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

Legend Devuelve un objeto Legend que representa la leyenda del gráfico.

Dim lgnLegend As Legend
Set lgnLegend = ActiveChart.Legend

MailEnvelope Representa un encabezado de correo electrónico de un documento.

Dim meeMailEnvelope As Office.MsoEnvelope
Set meeMailEnvelope = ActiveChart.MailEnvelope

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

ActiveChart.Name =

Next Devuelve un objeto Worksheet que representa la hoja siguiente.

Dim wsNext As Worksheet
Set wsNext = ActiveChart.Next

Parent Devuelve el objeto primario del objeto especificado.

Dim objParent As Object
Set objParent = ActiveChart.Parent

Perspective Devuelve o establece un valor de tipo Long que representa la perspectiva de la vista del gráfico 3D.

ActiveChart.Perspective = 70

PivotLayout Devuelve un objeto PivotLayout que representa la ubicación de los campos en un informe de tabla dinámica y la colocación de los ejes en un informe de gráfico dinámico.

Dim pltPivotLayout As PivotLayout
Set pltPivotLayout = ActiveChart.PivotLayout

PlotArea Devuelve un objeto PlotArea que representa el área de trazado de un gráfico.

Dim paaPlotArea As PlotArea
Set paaPlotArea = ActiveChart.PlotArea

PlotBy Devuelve o establece la forma en que se utilizan las columnas o filas como series de datos en el gráfico.

ActiveChart.PlotBy = xlColumns

PlotVisibleOnly True si sólo se trazan las celdas visibles.

ActiveChart.PlotVisibleOnly = True

Previous Devuelve un objeto Worksheet que representa la hoja anterior.

Dim wsPrevious As Worksheet
Set wsPrevious = ActiveChart.Previous

ProtectContents Es True si el contenido de la hoja está protegido.

Dim booProtectContents As Boolean
booProtectContents = ActiveChart.ProtectContents

ProtectData True si el usuario no puede modificar las fórmulas de las series.

ActiveChart.ProtectData = True

ProtectDrawingObjects Es True si las formas están protegidas.

Dim booProtectDrawingObjects As Boolean
booProtectDrawingObjects = ActiveChart.ProtectDrawingObjects

ProtectFormatting True si el usuario no puede modificar el formato del gráfico.

ActiveChart.ProtectFormatting = True

ProtectionMode Es True si está activada la protección de sólo interfaz de usuario.

Dim booProtectionMode As Boolean
booProtectionMode = ActiveChart.ProtectionMode

ProtectSelection True si no es posible seleccionar los elementos del gráfico.

ActiveChart.ProtectSelection = True

RightAngleAxes True si los ejes del gráfico están en ángulo recto, independientemente de la rotación de gráfico o la elevación.

ActiveChart.RightAngleAxes = True

Rotation Devuelve o establece el giro de la vista del gráfico 3D (el giro del área de trazado alrededor del eje z, en grados).

ActiveChart.Rotation =

Shapes Devuelve una colección Shapes que representa todas las formas de la hoja de gráfico.

Dim shpsShapes As Shapes
Set shpsShapes = ActiveChart.Shapes

ShowReportFilterFieldButtons Devuelve o establece si se muestran los botones del campo de filtro del informe en un gráfico dinámico.

ActiveChart.ShowReportFilterFieldButtons = True

SideWall Devuelve un objeto Walls que permite al usuario dar formato por separado al plano lateral de un gráfico 3D.

Dim wllsSideWall As Walls
Set wllsSideWall = ActiveChart.SideWall

Tab Devuelve un objeto Tab para un gráfico.

Dim tabTab As Tab
Set tabTab = ActiveChart.Tab

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

ActiveChart.Visible = xlSheetHidden

Walls Devuelve un objeto Walls que representa los planos laterales del gráfico 3D.

Dim wllsWalls As Walls
Set wllsWalls = ActiveChart.Walls

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

Dim lngCount As Long
lngCount = Charts.Count

Sheets.Item Devuelve un solo objeto de una colección.

Dim chrItem As Chart
Set chrItem = Charts(Index:=1)

Sheets.Parent Devuelve el objeto primario del objeto especificado. Solo lectura.

Dim wbParent As Workbook
Set wbParent = Charts.Parent

Sheets.Visible Devuelve o establece un valor de tipo Variant que determina si el objeto es visible.

Charts.Visible = True