こちらが「エラー種別ごとに件数を集計してグラフ化する」VBAサンプルです。
チェック結果シートに「行番号・列名・エラー内容」を一覧化した後、その「エラー内容」ごとに件数を集計し、棒グラフで可視化します。
サンプルコード
Sub SummarizeErrorsAndChart()
Dim wsSrc As Worksheet, wsDst As Worksheet
Dim lastRow As Long, i As Long
Dim dict As Object
Dim key As Variant
Dim chartObj As ChartObject
' チェック結果シートを参照
Set wsSrc = Sheets("チェック結果")
lastRow = wsSrc.Cells(wsSrc.Rows.Count, 1).End(xlUp).Row
' 集計用シートを準備
On Error Resume Next
Set wsDst = Sheets("エラー集計")
If wsDst Is Nothing Then
Set wsDst = Sheets.Add
wsDst.Name = "エラー集計"
Else
wsDst.Cells.Clear
End If
On Error GoTo 0
' Dictionaryで件数集計
Set dict = CreateObject("Scripting.Dictionary")
For i = 2 To lastRow
If wsSrc.Cells(i, 3).Value <> "" Then
If dict.exists(wsSrc.Cells(i, 3).Value) Then
dict(wsSrc.Cells(i, 3).Value) = dict(wsSrc.Cells(i, 3).Value) + 1
Else
dict.Add wsSrc.Cells(i, 3).Value, 1
End If
End If
Next i
' 集計結果を出力
wsDst.Range("A1").Value = "エラー種別"
wsDst.Range("B1").Value = "件数"
i = 2
For Each key In dict.keys
wsDst.Cells(i, 1).Value = key
wsDst.Cells(i, 2).Value = dict(key)
i = i + 1
Next key
' グラフ作成
Set chartObj = wsDst.ChartObjects.Add(Left:=250, Top:=50, Width:=400, Height:=300)
With chartObj.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=wsDst.Range("A1:B" & i - 1)
.HasTitle = True
.ChartTitle.Text = "エラー種別ごとの件数"
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "エラー種別"
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "件数"
End With
MsgBox "エラー件数を集計し、グラフを作成しました。"
End Sub
VB✅ 処理の流れ
- 「チェック結果」シートから「エラー内容」を読み込む
- Dictionaryで件数を集計
- 「エラー集計」シートに一覧出力
- 棒グラフを自動生成(エラー種別ごとの件数を可視化)
💡 応用ポイント
- グラフ種類を
xlPieにすれば円グラフ化も可能 - 集計結果をさらに「重大度別」「列別」に分けることもできる
- 定期的に実行すれば、入力品質の傾向分析に役立つ
👉 このマクロを使えば、エラーの種類ごとの発生件数を一目で把握できるレポートが自動生成できます。

