【ワードマクロ】単語の出現回数をカウント:使用例2選

ワードマクロ:単語の出現回数をカウントアイキャッチ WordVBA

ワードマクロで、単語の出現回数をカウントするVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください😉

単語の出現回数をカウント

以下のVBAを実行すると、特定文字の登場回数をカウントしてメッセージボックスに表示します。


Sub 単語の出現回数を数える()

    Dim myRange As Range
    Dim wP As Long
    Dim wE As Long
    Dim LastwE As Long
    Dim LastwP As Long
    Dim WordCnt As Long
    Dim GetWord As String

    '文書の最後のページを取得
    LastwP = ActiveDocument.Range.Information(wdNumberOfPagesInDocument)

    ActiveDocument.Range(0, 0).Select
    Set myRange = ActiveDocument.Range(0, 0)
    
    GetWord = "ビデオ"
    
    '検索条件
    With myRange.Find
        .Text = GetWord
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = True
        .MatchWholeWord = True
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .MatchFuzzy = False
        .MatchWildcards = False
     
        Do While .Execute
                           
            With myRange
                wE = .End
                wP = .Information(wdActiveEndPageNumber)
            End With
           
            '1つ前の文字位置と、今回の文字位置を比較
            If wE < LastwE Or wE = LastwE Then
                Exit Do
            End If
            
            WordCnt = WordCnt + 1
            LastwE = wE
            
        Loop
        
    End With
    
    MsgBox "「" & GetWord & "」 の出現回数:" & WordCnt & "個"

End Sub

 

マクロ実行前

ワードファイル内に「ビデオ」という文字が、何回登場しているかをカウントします。

「ビデオ」という文字は、文章内と表内にある状態です。

検索したいキーワードは、[GetWord = "ビデオ"] に設定します。


 

マクロ実行後

メッセージボックスに単語の出現回数を表示します。


 

単語の出現回数をカウント(複数の単語)

以下のVBAを実行すると、複数の単語の登場回数をカウントしてメッセージボックスに表示します。


Sub 複数の単語の出現回数をカウント()

Dim myRange As Range
Dim wE As Long
Dim i As Long
Dim LastwE As Long
Dim LastwP As Long
Dim WordCnt As Long
Dim Target() As Variant
Dim msg As String

    '文書の最後のページを取得
    LastwP = ActiveDocument.Range.Information(wdNumberOfPagesInDocument)

    '文書の先頭を選択
    ActiveDocument.Range(0, 0).Select
    
    '単語を配列に格納
    Target = Array("Word", "クリック", "ビデオ", "Excel")
    
    '配列分ループ
    For i = 0 To UBound(Target)
    
        WordCnt = 0
        LastwE = 0
        wE = 0
        Set myRange = ActiveDocument.Range(0, 0)
    
        '検索条件
        With myRange.Find
            .Text = Target(i)
            .Forward = True
            .Wrap = wdFindContinue
            .Format = True
            .MatchCase = True
            .MatchWholeWord = True
            .MatchByte = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = False
            .MatchFuzzy = False
            .MatchWildcards = False
         
            Do While .Execute
                               
                wE = myRange.End
               
                '1つ前の文字位置と、今回の文字位置を比較
                If wE < LastwE Or wE = LastwE Then
                    Exit Do
                End If
                
                WordCnt = WordCnt + 1
                LastwE = wE
                
            Loop
            
        End With
        
        msg = msg & vbCrLf & "「" & Target(i) & "」 の出現回数:" & WordCnt & "個"
    
    Next i
    
    MsgBox msg

End Sub

 

マクロ実行後

メッセージボックスに単語の出現回数を表示します。
[Target] の中に登場回数を調べたい単語を入力します。

 
この記事がお役に立ちますと幸いです🍀
 

【ワードマクロ】文字色を一括で変更:使用例5選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説