単語は通常、MicrosoftWordなどのワードプロセッサに関連付けられています。ただし、多くの人はスプレッドシートプログラムで単語を操作することもあります。 (かつて、Excelを使ってメモを書いていた同僚がいました。)誰かから受け取ったワークシートの単語数を数えたい場合があります。このようなタスクをWordで実行するネイティブ機能はありますが、Excelでは実行できません。

もちろん、1つの解決策は、ワークブックをWordにロードし、そこで単語カウントを実行してから、ファイルを閉じることです。ただし、これは、Excel自体の中で単語を数えるマクロを作成するほど柔軟ではありません。次のマクロCountWordsは、ワークシートで選択した任意の範囲の単語数をカウントします。

Sub CountWords()

Dim MyRange As Range     Dim CellCount As Long     Dim TotalWords As Long     Dim NumWords As Integer     Dim Raw As String

Set MyRange = ActiveSheet.Range(ActiveWindow.Selection.Address)

TotalWords = 0     For CellCount = 1 To MyRange.Cells.Count         If Not MyRange.Cells(CellCount).HasFormula Then             Raw = MyRange.Cells(CellCount).Value             Raw = Trim(Raw)

If Len(Raw) > 0 Then                 NumWords = 1             Else                 NumWords = 0             End If             While InStr(Raw, " ") > 0                 Raw = Mid(Raw, InStr(Raw, " "))

Raw = Trim(Raw)

NumWords = NumWords + 1             Wend             TotalWords = TotalWords + NumWords         End If     Next CellCount     MsgBox "There are " & TotalWords & " words in the selection."

End Sub

マクロは、選択した範囲の各セルをステップスルーすることに注意してください。

次に、数式を含むセルはすべて無視されます。他のすべてのセルでは、基本的にセル内のスペースの数をカウントします。 (1つ以上のスペースが単語を区切ると想定されます。)次に、単語数がメッセージボックスに表示されます。

マクロは、比較的狭い範囲ではかなり高速です。広い範囲(ワークシート全体など)を選択した場合、マクロは作業を完了するのにかなりの時間がかかる可能性があります。これのポイントは、マクロを呼び出す前に、分析する実際の範囲のみを選択するようにすることです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(11748)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、 linkCountingWordsにあります。