TeFormas

Creación y manipulación de gráficos de Excel utilizando VBA

Para crear gráficos incrustados en nuestras hojas de cálculo de Excel mediante VBA tenemos que utilizar el objeto Chart que pertenece a la colección Shapes.

Shapes.AddChart(Type, Left, Top, Width, Height)

  • Con los argumentos Left y top definimos la posición del gráfico dentro de la hoja de cálculo.
  • Por otro lado, con los argumentos Width y Height indicamos el tamaño del gráfico: su anchura y altura.
  • El argumento type nos permite especificar el tipo de gráfico que se desea agregar. Puedes consultar los distintos tipos de gráficos a utilizar en Excel.

A continuación, veamos un ejemplo en el que creamos un gráfico de columnas 3D:

Set grafico = Shapes.AddChart(xl3DColumn, 300, 10, 300, 150)
grafico.Chart.SetSourceData (ActiveSheet.Range(Selection.Address))

Con la instrucción Shapes.AddChart creamos un gráfico en blanco. Sin embargo, con el Método Chart.SetSourceData configuramos el rango de datos de origen para el gráfico. En este caso, el gráfico se creará a partir de las celdas seleccionadas.

Gráficos Excel VBA

Gráficos Excel VBA con el método ChartObjects.Add

Para crear gráficos incrustados en nuestras hojas de cálculo de Excel también podemos usar el método ChartObjects.Add. Esta es su sintaxis:

ChartObjects.Add (Left, Top, Width, Height)

Como en el caso anterior, con esta instrucción crearíamos un gráfico en blanco. Para especificar el rango de celdas a partir de las que crear el gráfico usamos el método ChartObject.Chart.SetSourceData.

Por tanto, si queremos crear el mismo gráfico que hemos creado anteriormente usando este método:


Set grafico = ChartObjects.Add(300, 10, 300, 150)

grafico.Chart.SetSourceData (ActiveSheet.Range(Selection.Address))
grafico.Chart.ChartType = xl3DColumn

Además, estas serían algunas propiedades del objeto Chart creado:

  • Chart.HasLegend: True o False. True si queremos que el gráfico tenga una leyenda.
  • Chart.Name. Nombre del gráfico.
  • Chart.HasTitle: True o False. True si queremos que el gráfico tenga un título.
  • Chart.ChartTitle.Text. Título del gráfico.
  • Chart.ChartType. Tipo de gráfico.

Por último, veamos un ejemplo en el que se usan estas propiedades del objeto gráfico creado:

Set grafico = ChartObjects.Add(300, 10, 300, 150)

With grafico.Chart
    .SetSourceData (ActiveSheet.Range(Selection.Address))
    .HasLegend = False
    .HasTitle = True
    .ChartTitle.Text = "Comparativa productos"
    .ChartType = xlColumnClustered
End With

Este sería el resultado:

Gráficos Excel VBA

También puedes acceder a la explicación del equipo de soporte de Microsoft

Diseño de macros en Excel. Con ejemplos prácticos

Esta entrada es parte de nuestro curso Diseño de macros en Excel. Con ejemplos prácticos

Diseño de macros en Excel. Con ejemplos prácticos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *