Excel VBAでセル内に含まれる特定の単語の出現回数をカウントする方法|文字列分割を活用

Excelで文章や文字列を扱っていると、「特定の単語が何回含まれているか」を調べたい場面が出てきます。
たとえば「Excel」という単語が含まれる回数をカウントして、その頻度に応じてデータの重み付けや分類を行いたいというケースです。

本記事では、VBAを使ってセル内の文字列から特定の単語の出現回数をカウントし、隣のセルに出力する方法をご紹介いたします。


目次

想定する活用場面

  • キーワードの頻出度に応じたマーケティングデータの整形。
  • フィードバック文やコメント欄の分析。
  • レポートや自由記述欄からのキーワード抽出。

VBAコードの例

以下のコードでは、セル範囲 B2:B6 にある各セルの中から、文字列「森」が何回含まれているかを数え、その結果を右隣の列(C列)に出力します。

Sub CountKeywordInCells()

    Dim targetRange As Range
    Dim cell As Range
    Dim keyword As String
    Dim countResult As Long

    keyword = "森"
    Set targetRange = Range("B2:B6")

    For Each cell In targetRange
        countResult = UBound(Split(cell.Value, keyword))
        cell.Offset(0, 1).Value = countResult
    Next cell

End Sub

コードのポイント解説

要素説明
Split(cell.Value, keyword)セルの文字列をキーワードで分割します。
UBound(...)分割された配列の上限インデックスを取得することで、「出現回数」を得ます。
Offset(0, 1)隣の列(右側)に出力する指定です。

仕組みの補足

たとえば文字列 "森と森の森" がある場合、Split(..., "森")["", "と", "の", ""] という配列になります。
この配列の要素数は4なので、区切りとなった「森」は3回出現したと判断できます(配列数 – 1 = 出現回数)。


応用例

  • 複数のキーワードに対応させたい場合は、ループをネストさせることで可能です。
  • 結果の合計を別セルに出力することで、範囲全体の出現合計も簡単に取得できます。
  • LCase 関数で文字列を小文字化しておけば、大文字・小文字の区別なく検索可能になります。

まとめ

VBAのSplit関数とUBoundを活用すれば、セル内に含まれる特定の単語の出現回数を簡単にカウントできます。
この処理は手作業では難しい文字列分析を効率化できるため、Excelによるテキスト分析やデータ分類業務において非常に役立ちます。

特に「森」や「Excel」など、業務上よく使うキーワードの頻度を可視化したい場面では、ぜひ本記事の手法をご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次