Edited at

【Excel VBA】集合棒状グラフを3パターンで描画する


記事の概要

今回は初回なので基本的な集合棒状グラフを描きますが、シリーズ化していきたいなと思います。

仕事でExcelVBAでグラフを作成することがあるのですが、調べてもなかなかピンとくるものがなくて最初は苦戦しました



この記事が誰かの役に立ったら嬉しいです。


環境

・Excel2016

・Windows10


グラフを描画する


グラフの材料

お約束の果物シリーズで集合棒状グラフを3つの方法で作成します


①全体のグラフを作成する場合


グラフの範囲


コード

Public Sub Graph_Bar1()

Dim ws As Worksheet
Set ws = Sheets(1)

ws.Cells(2, 2).CurrentRegion.Select '---B2に関連するセルを選択

With ws.Shapes.AddChart.Chart '---グラフを作成
.ChartType = xlColumnClustered '---グラフの種類を「集合縦棒」にする
.SetSourceData Source:=Selection '---選択したセルをグラフの範囲にする
End With

End Sub


作成されたグラフ


②隣り合う列を選択してグラフを作成する場合


グラフの範囲


コード


Public Sub Graph_Bar2()

Dim ws As Worksheet
Set ws = Sheets(1)

Dim LastRow As Long
LastRow = ws.Cells(Rows.Count, 2).End(xlUp).Row '---B列の最終行を求める

Range(ws.Cells(2, 2), ws.Cells(LastRow, 3)).Select '---B2~C列の最終行を選択

With ws.Shapes.AddChart.Chart '---グラフを作成
.ChartType = xlColumnClustered '---グラフの種類を「集合縦棒」にする
.SetSourceData Source:=Selection '---選択したセルをグラフの範囲にする
End With

End Sub


作成されたグラフ


③離れた列を選択してグラフを作成する場合


グラフの範囲


コード

Public Sub Graph_Bar3()

Dim ws As Worksheet
Set ws = Sheets(1)

Dim LastRow As Long
LastRow = ws.Cells(Rows.Count, 2).End(xlUp).Row '---B列の最終行を求める

Range("B2:B" & LastRow & ", E2:E" & LastRow).Select '---B2~B列の最終行とE2~E列の最終行を選択

With ws.Shapes.AddChart.Chart '---グラフを作成
.ChartType = xlColumnClustered '---グラフの種類を「集合縦棒」にする
.SetSourceData Source:=Selection '---選択したセルをグラフの範囲にする
End With

End Sub


作成されたグラフ