VBA : How To Create a Bar Chart in Excel

Yash Gaur Add Comment

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 Simple Bar Chart
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 Simple Bar Chart

.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
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 = " Clustered  Column 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 = "Stacked Column 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
Related Posts
Spread the Word!
Share
About Author:
Yash Gaur

Yash is pursuing an MBA in Finance with a keen interest in analytics. He enjoys working with data and leveraging his research and analytical skills to generate valuable insights.

Post Comment 0 Response to "VBA : How To Create a Bar Chart in Excel"
Next → ← Prev