Thread: [Solved] Sentence word count
View Single Post
 
Old 09-04-2018, 06:09 AM
Nanaia Nanaia is offline Windows XP Office 2013
Novice
 
Join Date: Dec 2016
Location: Lexington, KY
Posts: 10
Nanaia is on a distinguished road
Default Sentence word count

I'm trying to create a macro that will highlight any words of a sentence that is over 21 words. The goal is to make sure I keep sentences under 22 words. I found a macro online but I get a "Compile error: Syntax error" when I try to run it. I've just began learning macros so I'm not sure how to resolve the error. This is the code I found and am getting an error on:
Code:
Sub AutoExec()
  ‘ The AutoExec is a special name meaning that the code will run automatically when Word starts
  CustomizationContext = NormalTemplate
  ‘ Create key binding to change the function of the spacebar so that it calls the macro Check_Sentence
  ‘ each time the spacebar is pressed
  KeyBindings.Add KeyCode:=BuildKeyCode(wdKeySpacebar), _
    KeyCategory:=wdKeyCategoryMacro, _
    Command:=”Check_Sentence”
  ‘ It will be useful to be able to turn the checking on and off manually
  ‘ so allocate ctrl-shift-spacebar to turn the checking off
  KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyShift, wdKeySpacebar), _
  KeyCategory:=wdKeyCategoryMacro, _
  Command:=”SetSpaceBarOff”
  ‘ and allocate ctrl-spacebar to turn the checking back on
  KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeySpacebar), _
    KeyCategory:=wdKeyCategoryMacro, _
    Command:=”SetSpaceBarOn”
End Sub

Sub SetSpaceBarOn()
  KeyBindings.Add KeyCode:=BuildKeyCode(wdKeySpacebar), _
    KeyCategory:=wdKeyCategoryMacro, _
    Command:=”Check_Sentence”
  MsgBox (“sentence length checking turned on”)
End Sub

Sub SetSpaceBarOff()
  With FindKey(BuildKeyCode(wdKeySpacebar))
    .Disable
  End With
  MsgBox (“sentence length checking turned off”)
End Sub

Sub Check_Sentence()
  Dim long_sentence As Integer
  ‘ pressing the spacebar calls this macro so have to assume the user wanted a space to appear
  ‘ in the text. Therefore put a space character into the document
  Selection.TypeText (” “)
  ‘Set number of words to be a long sentence
  long_sentence = 21
  For Each Test_Sentence In ActiveDocument.Sentences ‘ check each sentence in the document
    If Test_Sentence.Words.Count > long_sentence Then ‘ if it longer than our limit
      Test_Sentence.Font.Color = wdColorRed ‘ turn the font for the sentence red
      ‘ Test_Sentence.Font.Underline = wdUnderlineDotted ‘ show long sentences with a dotted underline
    Else
      Test_Sentence.Font.Color = wdColorBlack ‘ if less than our limit make the font black
      ‘ Test_Sentence.Font.Underline = wdUnderlineNone ‘ turn of the underline
    End If
  Next ‘ next sentence
End Sub

Last edited by macropod; 09-04-2018 at 02:10 PM. Reason: Added code tags & formatting
Reply With Quote