私たちは、選択した範囲内の単語の数をカウントエクセルVBAでプログラムを見て下記。一個の以上のスペースを別の言葉に想定しています。

状況:

Count Words in Excel VBA

1.まず、我々は2つのレンジオブジェクトと三つの変数を宣言します。私たちは、レンジRNGとセルオブジェクトを呼び出します。 1つの整数変数は、我々は我々がコンテンツを呼び出すtotalWordsを呼び出して、1つの文字列変数1つの整数の変数、cellWordsを呼び出します。

Dim rng As Range, cell As Range

Dim cellWords, totalWords As Integer, content As String

2.我々は、選択された範囲との範囲オブジェクトRNGと値0を有するタイプ整数の2つの変数を初期化する

Set rng = Selection

cellWords = 0

totalWords = 0

3.私たちは、ランダムに選択された範囲内の各セルをチェックする(この範囲は、任意のサイズとすることができます)。エクセルVBAで、あなたは、このために次の各ループのために使用することができます。次のコード行を追加します。

For Each cell In rng

Next cell

注:RNGとセルがランダムにここで選択されている、あなたは任意の名前を使用することができます。

あなたのコードの残りの部分でこれらの名前を参照することを忘れないでください。

4.次に、我々はそれが含まれているどのように多くの単語、この範囲内の各セルのために決定します。数式を含むセルを無視するには、それぞれ次へ(cell.HasFormulaがfalseの場合にのみ、我々は継続)の場合の間に次のコード行を追加します。

If Not cell.HasFormula Then

End If

まず、我々は変数の内容へのセルの内容を記述します。

(もしあれば)次に、我々は最初と最後にスペースを削除します。エクセルVBAで、あなたは、このためのトリム機能を使用することができます。たとえば、「エクセルVBAは、」「エクセルVBA」に変換されます。あなたのIfステートメントで、次のコード行を追加します。

content = cell.Value

content = Trim(content)

注:ExcelのVBAでのトリム機能は、単語間の余分なスペースを削除しませんが、それは、この例ではOKです。

6.この時点で、セルはまだ空にすることができます。セルが空の場合、我々は変数cellWordsに値0を割り当てます。そうでない場合、それは少なくとも一つの単語が含まれていると、私たちは、変数cellWordsに値1を割り当てます。あなたのIfステートメントで、次のコード行を追加します。

If content = "" Then

cellWords = 0

Else

cellWords = 1

End If

セルはもちろんの複数の単語を含めることができます。それはまさに私たちが今、知りたいものです。一例として、我々は取る:「エクセルVBA」。セルはこの段階で少なくとも一つのスペースが含まれている場合は、少なくとも1つの以上の単語が含まれています。あなたは、スペースを探すためにエクセルVBAでInStr関数を使用することができます。

INSTR(コンテンツは、 “「)、コンテンツの最初のスペースの位置を見つけます。

7.私たちは、doループしながら構造を利用します。コードは、(ステップ8、図9及び図10で)これらの単語の間に配置され、真であるが実行した後一部限り繰り返されます。我々は(限り、コンテンツはスペースので、複数の単語が含まれているとして)0が真である>(「」、コンテンツ)INSTR限り、これらの手順を繰り返します。あなたのIfステートメントでdo-while文を追加します。

Do While InStr(content, " ") > 0

Loop

8.次に、我々は最初のスペースの位置から開始するコンテンツの一部を取ります。私たちは、このためにMid関数を使用します。

content = Mid(content, InStr(content, " "))

たとえば:ミッド( “エクセルVBA”、InStr関数( “エクセルVBA”、 “” VBA “))得られます”。

9.私たちは、再び文字列をトリミング。

content = Trim(content)

結果: “VBA”

  1. 10.我々インクリメントcellWords

cellWords = cellWords + 1

これdoループは限りコンテンツはスペースので、複数の単語を含んでいるように繰り返されるであろうが。この例では、「VBA」はもうスペースが含まれていないので、do-while文を終了します!結果:このセルは2つのワードが含まれています。

  1. 1つのセルを確認した後、我々は変数totalWordsにcellWordsを追加します。このコード行は、do-while文外であるが、if文の中に配置する必要があります。

totalWords = totalWords + cellWords

すべてのセルが確認されるまで、全体のプロセスは次のセルのために再び開始します。

12.最後に、メッセージボックスを使用してtotalWordsの値を表示します。このコード行は、次の各ループの外側に配置されるべきです。

MsgBox totalWords & " words found in the selected range."

13.テストプログラム。

結果:

Count Words result