Thursday, January 23, 2025
No menu items!
HomeData Analytics and VisualizationVBA : How To Create a Bar Chart in Excel

VBA : How To Create a Bar Chart in Excel

This tutorial explains how to create a bar chart in Excel using VBA code.

The following code can be used to apply a particular chart type.
  1. Clustered Bar : xlBarClustered
  2. Stacked Bar : xlBarStacked
  3. 100% Stacked Bar : xlBarStacked100
  4. Column Clustered : xlColumnClustered
  5. Column Stacked : xlColumnStacked
  6. 100% Stacked Column : xlColumnStacked100

You can download the following dataset to practice.



1. Create a Simple Bar Chart

Let’s create a simple bar chart by using the sample dataset. The following code is used to create a clustered bar chart with a single series in Excel.

VBA : Create a Bar Chart in Excel.

To create a simple bar chart we take two coulumns only i.e. President column and Approve column.

Sub CreateBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:B14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.Chart.ChartType = xlBarClustered

    chartObj.Chart.SetSourceData Source:=dataRange


    chartObj.Chart.HasTitle = True
    chartObj.Chart.ChartTitle.Text = " Bar Chart "
  
End Sub 

Press Run or F5 to run the above code.

The result looks like

VBA : Create a bar chart in an Excel

.Chart.HasTitle confirms whether title has to be assigned or not..ChartTitle.Text assigns the title to the chart. Left defines the position from the left edge of the worksheet. Top defines the position from the top edge of the worksheet.

2. Create a Clustered Bar Chart (with Multiple Series)

Let’s take the given sample dataset to understand how it works. The following code is used to create a clustered bar chart with multiple series in Excel.

Sub CreateClusteredBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlBarClustered

    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = " Clustered Bar Chart "
  
End Sub 

Press Run or F5 to run the above code.

VBA : Clustered Bar Chart in Excel
3 Create a Stacked Bar Chart

The following code is used to create a stacked bar chart in Excel.

Sub CreateStackedBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlBarStacked

    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = " Stacked Bar Chart "
  
End Sub 

Press Run or F5 to run the above quote

VBA : Stacked Bar Chart in Excel
4. 100% Stacked Bar Chart

The following code is used to create a 100% stacked bar chart in Excel.

Sub Create100StackedBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlBarStacked100

    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = "100 Stacked Bar Chart"
  
End Sub

Press Run or F5 to run the above code

VBA : Create a 100% Stacked Bar Chart in Excel
5. Create a Clustered Column Chart

The following code is used to create a clustered column chart in Excel.

Sub CreateColumnClusteredBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlColumnClustered

    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = "Column Clustered Bar Chart"
  
End Sub

Press Run or F5 to run the above code.

VBA : Column Clustered Bar Chart in Excel
6. Create a Stacked Column Chart

The following code is used to create a stacked column chart in Excel.

Sub CreateColumnStackedBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlColumnStacked
    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = "Column Stacked Bar Chart"
End Sub

Press Run or F5 to run the above code.

VBA : Stacked Column Bar Chart in Excel
7. Create a 100% Stacked Column Bar Chart

The following code is used to create a 100% stacked column chart in Excel.

Sub Create100StackedColumnBarChart()
    
    Dim chartObj As ChartObject
    Dim dataRange As Range
    
  Set dataRange = Range("A1:C14")


Set chartObj = ActiveSheet.ChartObjects.Add(Left:=100, Top:=100, Width:=400, Height:=300)

    
    chartObj.chart.ChartType = xlColumnStacked100
    chartObj.chart.SetSourceData Source:=dataRange


    chartObj.chart.HasTitle = True
    chartObj.chart.ChartTitle.Text = "100% Stacked Column Bar Chart"
End Sub

Press Run or F5 to run the above code.

VBA : 100% Stacked Column Bar Chart in Excel

Read MoreListenData

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments