TIP: Word Power!

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

Need to count the number of words in that jungle of text? Does your count conflict with the MS Word interpretation?

Stop scratching your head – let this copy-and-paste code snippet do all the hard work for you, using the same techniques as Microsoft itself.

Simply pass the GetWordCount function your text and it’ll return the number of letters used. It works by making the assumptions Microsoft Word does – such as that a hyphen at the end of a line signals one hyphenated word, not two separate words to be counted.


MsgBox GetWordCount(Text1.Text)


Public Function GetWordCount(ByVal Text As String) As Long

  ' Assume a hyphen at the end of a line
  ' is part of a full-word, so combine together
  Text = Trim(Replace(Text, "-" & vbNewLine, ""))
  ' Replace new lines with a single space
  Text = Trim(Replace(Text, vbNewLine, " "))
  ' Collapse multiple spaces into one single space
  Do While Text Like "*  *"
      Text = Replace(Text, "  ", " ")

  ' Split the string and return counted words
  GetWordCount = 1 + UBound(Split(Text, " "))
End Function

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories