【Excelマクロ】アンケートの自由回答をキーワードで分類するマクロ

アンケートの自由記述欄には、利用者や顧客の「生の声」が多く含まれています。

しかし、Excelにまとまった大量の自由回答を手作業で分類するのはとても大変です。

そんなときに便利なのが、キーワードをもとに自動で分類するVBAマクロです。

あらかじめ用意したキーワードをもとに、該当する回答を自動的に分類することで、集計作業を効率化できます。

キーワード分類マクロの使い方

次のマクロは、B列に入力された自由回答の中から、指定したキーワードを含む行を検出し、C列に分類名を付ける処理です。

Sub ClassifyByKeyword()

    Dim i As Long
    Dim lastRow As Long
    Dim txt As String
  Dim kw As Object
    
  ' キーワードと分類名の組(追加可)
    Set kw = CreateObject("Scripting.Dictionary")
    kw.Add "価格", "料金"
    kw.Add "高い", "料金"
    kw.Add "安い", "料金"
    kw.Add "接客", "対応"
    kw.Add "丁寧", "対応"
    kw.Add "遅い", "スピード"
    kw.Add "早い", "スピード"

    lastRow = Cells(Rows.Count, 2).End(xlUp).Row

    For i = 2 To lastRow
        txt = Cells(i, 2).Value
        Cells(i, 3).Value = "" ' 初期化

        Dim key As Variant
        For Each key In kw.Keys
            If InStr(txt, key) > 0 Then
                Cells(i, 3).Value = kw(key)
                Exit For
            End If
        Next key
    Next i

    MsgBox "分類が完了しました", vbInformation

End Sub

このマクロは次のようなルールで分類を行っています。

  • 回答文(B列)にキーワードが含まれているかを調べる
  • 最初に一致したキーワードに対応する分類名をC列に出力する
  • たとえば「価格が高いと思います」という回答なら「料金」に分類

このように、1つの回答に対して1分類のみを付けるシンプルな構成ですが、実務では十分使えます。

出力イメージ(自由回答分類マクロ)

たとえば、B列にアンケートの自由記述が入力されているとします。

No自由回答分類
1価格が高いと思いました料金
2接客が丁寧で安心できた対応
3商品の到着が遅かったスピード
4安いのに品質が良い料金
5担当者の対応が丁寧だった対応
6注文してからすぐ届いたので助かりましたスピード
  • B列:元の自由記述回答
  • C列:自動で分類されたカテゴリ

このように「分類名」が自動で付与されることで、後の集計や分析がとても楽になります。

実装するメリット

このような分類マクロを導入することで、次のような利点があります。

  • 自由記述の分析時間が大幅に短縮される
  • キーワードを調整するだけで柔軟な分類が可能
  • 複数の分類ルールを一元管理できる
  • 人による判断のばらつきを減らせる

たとえば「料金に関する意見をまとめたい」といった集計ニーズにすばやく対応でき、会議資料や報告書作成も効率的になります。

また、分類の基準をDictionaryで定義しているため、あとからキーワードを増やしたり変更したりするのも簡単です。

まとめ

自由回答を自動分類するVBAマクロは、アンケート分析の作業負担を大きく軽減してくれます。

  • 複数のキーワードを柔軟に設定可能
  • 自由回答の中に該当キーワードがあるかを自動判定
  • 初めての方でも使いやすいシンプルな構造
  • 分類名の定義を変更することで、複数用途に対応できる

ExcelとVBAを活用すれば、面倒な作業をシンプルに自動化できます。

アンケート集計に時間がかかっている方は、ぜひこのマクロを取り入れてみてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール