This tutorial explains how to create a bar chart in Excel using VBA code.
- Clustered Bar : xlBarClustered
- Stacked Bar : xlBarStacked
- 100% Stacked Bar : xlBarStacked100
- Column Clustered : xlColumnClustered
- Column Stacked : xlColumnStacked
- 100% Stacked Column : xlColumnStacked100
You can download the following dataset to practice.
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.
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
.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.
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.
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
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
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.
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.
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.







Share Share Tweet