ここでは Offset × 条件分岐 × Chart を組み合わせて「抽出・判定したデータをグラフ化する」黄金パターンをまとめます。
VBA の ChartObjects.Add や SeriesCollection を活用することで、売上表・勤怠表・在庫表などを 自動で可視化 できます。
基本パターン 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」パターン集を使えば、売上表・勤怠表・在庫表などの 分析結果を即座にグラフ化 できます。


