Vba: 文字列内の文字の出現を数える方法


VBA を使用して文字列内の文字の出現数をカウントするには、次の基本構文を使用できます。

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

この特定の例では、範囲B2:B12内の各セル内のスラッシュ ( / ) の出現数をカウントし、結果を範囲C2:C12に表示します。

次の例は、この構文を実際に使用する方法を示しています。

例: VBA を使用して文字列内の文字の出現回数をカウントする

Excel に、さまざまなバスケットボール選手の名前と、試合でプレーできるポジションを示す次のデータ セットがあるとします。

Position 列の各文字列のスラッシュ ( / ) の数を数えたいとします。

これを行うには、次のマクロを作成できます。

 Sub CountOccurrences()
    Dim i As Integer
    
    'Specify character to look for
    my_char = "/"
    
    'Count occurrences in each string in B2:B12 and display results in C2:C12
    For i = 2 To 12
        Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
        Range(" C " & i) = Count
    Next i
End Sub

このマクロを実行すると、次の出力が表示されます。

列 C の値は、列 B の一致する文字列内のスラッシュの出現数を表示します。

例えば:

  • Guard /Forward 文字列には1 つのスラッシュが含まれます。
  • ガード文字列にはスラッシュが0 個含まれています。
  • ガード文字列にはスラッシュが0 個含まれています。
  • Forward/Center 文字列には1 つのスラッシュが含まれます。

等々。

別の文字の出現をカウントするには、マクロ内のmy_char変数の文字を変更するだけです。

追加リソース

次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。

VBA: 文字列に別の文字列が含まれているかどうかを確認する方法
VBA: 範囲内の行数をカウントする方法
VBA: COUNTIF 関数と COUNTIFS 関数の書き方

コメントを追加する

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