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