Excel VBA | データ可視化(Offset × 条件分岐 × Chart)の黄金パターン集

VBA
スポンサーリンク

ここでは Offset × 条件分岐 × Chart を組み合わせて「抽出・判定したデータをグラフ化する」黄金パターンをまとめます。
VBA の ChartObjects.AddSeriesCollection を活用することで、売上表・勤怠表・在庫表などを 自動で可視化 できます。


基本パターン 10選

1. 売上推移を折れ線グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(Left:=300, Top:=50, Width:=400, Height:=300)
cht.Chart.ChartType = xlLine
cht.Chart.SetSourceData Source:=Range("A1:B20")
VB

👉 日付列と売上列を折れ線グラフで可視化。


2. 部署別勤務時間を棒グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(100, 100, 400, 300)
cht.Chart.ChartType = xlColumnClustered
cht.Chart.SetSourceData Source:=Range("C1:D20")
VB

👉 部署ごとの勤務時間を棒グラフで可視化。


3. 商品カテゴリ別売上を円グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(200, 200, 400, 300)
cht.Chart.ChartType = xlPie
cht.Chart.SetSourceData Source:=Range("E1:F10")
VB

👉 商品カテゴリ別売上を円グラフで可視化。


4. 在庫数の増減を折れ線グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(250, 100, 400, 300)
cht.Chart.ChartType = xlLineMarkers
cht.Chart.SetSourceData Source:=Range("G1:H20")
VB

👉 在庫数の推移を折れ線グラフで可視化。


5. 月別売上を積み上げ棒グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(300, 150, 400, 300)
cht.Chart.ChartType = xlColumnStacked
cht.Chart.SetSourceData Source:=Range("I1:K20")
VB

👉 月別売上を積み上げ棒グラフで可視化。


6. 条件付き抽出後にグラフ化

Range("A1:D20").AutoFilter Field:=2, Criteria1:=">=100"
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(350, 200, 400, 300)
cht.Chart.ChartType = xlColumnClustered
cht.Chart.SetSourceData Source:=Range("A1:D20").SpecialCells(xlCellTypeVisible)
VB

👉 売上100以上のデータのみ抽出して棒グラフ化。


7. VIP顧客売上のみグラフ化

Dim rng As Range
Set rng = Range("A1:C20")
rng.AutoFilter Field:=3, Criteria1:="VIP"

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(400, 250, 400, 300)
cht.Chart.ChartType = xlBarClustered
cht.Chart.SetSourceData Source:=rng.SpecialCells(xlCellTypeVisible)
VB

👉 VIP顧客のみ抽出して棒グラフ化。


8. 売上と目標の比較を複合グラフに

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(450, 300, 400, 300)
cht.Chart.ChartType = xlColumnClustered
cht.Chart.SetSourceData Source:=Range("A1:C20")

cht.Chart.SeriesCollection(2).ChartType = xlLine
VB

👉 売上を棒グラフ、目標を折れ線で重ねて比較。


9. 部署別勤務時間の平均をグラフ化

Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(500, 350, 400, 300)
cht.Chart.ChartType = xlColumnClustered
cht.Chart.SetSourceData Source:=Range("D1:E10")
VB

👉 部署別勤務時間の平均を棒グラフで可視化。


10. 在庫ゼロ商品を抽出してグラフ化

Range("F1:G20").AutoFilter Field:=2, Criteria1:="=0"
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects.Add(550, 400, 400, 300)
cht.Chart.ChartType = xlPie
cht.Chart.SetSourceData Source:=Range("F1:G20").SpecialCells(xlCellTypeVisible)
VB

👉 在庫ゼロの商品を円グラフで可視化。


✅ まとめ

  • Offset → グラフの配置位置を自在に制御
  • 条件分岐 → フィルタや判定で対象データを絞り込み
  • Chart → 折れ線・棒・円・積み上げ・複合など多様な可視化を自動生成
  • 黄金パターン → 売上推移・部署別勤務時間・カテゴリ別売上・在庫推移・条件付き抽出など

💡 この「データ可視化 × Offset × 条件分岐 × Chart」パターン集を使えば、売上表・勤怠表・在庫表などの 分析結果を即座にグラフ化 できます。

タイトルとURLをコピーしました