Softnet Systems, Inc. Speech Recognition Specialists


Dragon Pooper Scooper Details

Recommended is installation and maintenance of this as a Word macro. But if you wish, it can be imported as a Dragon NaturallySpeaking macro, named "fix dragon mistakes". This can be downloaded in .dat file format, then Imported into DNS 7 Pro/Medical/Legal.

Download Word-2000 Version

Download Word-2002 Version (TBD -- the Reference to the Word object library is different)

No need to install as a Word macro if you go this route -- but highlighting of optional changes is not as good with the Dragon macro as with the Word macro.

Details for installation as a Word macro:

  1. Copy the code below, starting with the Sub fixDNSwords() line and ending with the End Function line.
  2. Open WordPad or NotePad. Paste the code into a blank document. It should look essentially like the code appears in the browser. If not, then it probably has extraneous HTML statements (e.g. <br>) and the rest of these instructions will not work properly.
  3. Open Word.
  4. In Word, go to Tools, then Macro, then Macros. You should see a menu something like:
    Screen Shot
  5. Depending on how your system is set up and if you already have macros installed, you may see slightly different views. In the "Macro name" box, type "fixDNSWords", then click the "Create" button. You should see a screen similar to:
    Screen Shot
  6. Highlight the text starting with "Sub FixDNSWords" through "End Sub"
  7. Paste. This should be the same as what was earlier pasted into WordPad or NotePad. The screen should look something like:
    Screen Shot
  8. Close the "Microsoft Visual Basic - Normal - [NewMacros(Code)]" window. This saves the macro, making it available for use. It is in your template, which is hidden to some extent.

There are other ways of installing macros. Use them if you choose to do so.

Next, you can set up to use the macro. But first you should understand it and learn to edit the macro so that it includes words/phrases that consistently create problems for you.


The Function FixDragonWords does the heavy work, the FixDNSWords is just a place to make calls. Add lines to "FixDragonWords" as you see fit. If you think you have replacements that have general applicability (even if only within medicine, or only within law), e-mail them to and they may be added.

The three arguments to the FixDragonWords function are:

  • messup -- the string which DNS tends to produce. Clearly these will vary by person, options selected, type of language, zodiac sign, and other variables.
  • fixup -- the replacement string
  • verify -- set to True if you want to verify each change, set to False if you want the macro to blindly make the changes.

This macro isn't anything more (or less) than automating Find/Replace operations.

Add the macro to a drop down window (e.g. right click):
  1. Goto Tools/Customize
  2. Click Toolbars:
  3. checkoff Shortcut Menus
  4. A shortcut menu toolbar will popup
  5. Click Text
  6. Choose the drop down menu that you want to add the macro button to (Text is a good choice as it usually is the right click button in most windows)
  7. Go back to the Customize window (it should still be open)
  8. In the Categories Window, select Macros
  9. Scroll to fixDNSwords and then drag to the dropdown menu
  10. Click on the macro button (which should now be on the toolbar) to edit. You can change the name and button Image. Click on Default style to display only the button on the toolbar.

This is saved in your template. You may be asked whether or not you wish to save upon exiting Word, answer "yes" to save it.

With this installed, one click and you are on your way to eliminating common mistakes. Try it out on a test document first. Then add some of what you need -- phrases like:

FixDragonWords messup:="Mease Countryside hospital", fixup:="Mease Countryside Hospital", verify:=False

Some items may need verification more than others. For instance, if you might end a sentence with the word "one" then verification of the "one." example below is in order. That is, some of you might want the line:


Sub FixDNSwords()
FixDragonWords messup:="a cult", fixup:="occult", verify:=True
FixDragonWords messup:="she is", fixup:="she has", verify:=True
FixDragonWords messup:="numeral one", fixup:="1", verify:=False
FixDragonWords messup:="numeral two", fixup:="2", verify:=False
FixDragonWords messup:=" ;", fixup:=";", verify:=False
FixDragonWords messup:=" :", fixup:=":", verify:=False
FixDragonWords messup:=" .", fixup:=".", verify:=False
FixDragonWords messup:=" 's", fixup:="'s", verify:=False
FixDragonWords messup:=" ,", fixup:=",", verify:=False
FixDragonWords messup:="to thousand two", fixup:="2002", verify:=False
FixDragonWords messup:="numeral one", fixup:="1", verify:=False
FixDragonWords messup:="numeral two", fixup:="2", verify:=False
FixDragonWords messup:="numeral three", fixup:="3", verify:=False
FixDragonWords messup:="numeral four", fixup:="4", verify:=False
FixDragonWords messup:="numeral five", fixup:="5", verify:=False
FixDragonWords messup:="numeral six", fixup:="6", verify:=False
FixDragonWords messup:="numeral seven", fixup:="7", verify:=False
FixDragonWords messup:="numeral eight", fixup:="8", verify:=False
FixDragonWords messup:="numeral ate", fixup:="8", verify:=False
FixDragonWords messup:="numeral nine", fixup:="9", verify:=False
FixDragonWords messup:="one.", fixup:="1.", verify:=True ' July 2 2003 change
FixDragonWords messup:="two.", fixup:="2.", verify:=False
FixDragonWords messup:="three.", fixup:="3.", verify:=False
FixDragonWords messup:="four.", fixup:="4.", verify:=False
FixDragonWords messup:="five.", fixup:="5.", verify:=False
FixDragonWords messup:="six.", fixup:="6.", verify:=False
FixDragonWords messup:="seven.", fixup:="7.", verify:=False
FixDragonWords messup:="eight.", fixup:="8.", verify:=False
FixDragonWords messup:="nine.", fixup:="9.", verify:=True ' July 2 2003 change
FixDragonWords messup:="to.", fixup:="2.", verify:=True ' July 2 2003 change
FixDragonWords messup:="one mg", fixup:="1 mg", verify:=False
FixDragonWords messup:="two mg", fixup:="2 mg", verify:=False
FixDragonWords messup:="three mg", fixup:="3 mg", verify:=False
FixDragonWords messup:="four mg", fixup:="4 mg", verify:=False
FixDragonWords messup:="five mg", fixup:="5 mg", verify:=False
FixDragonWords messup:="six mg", fixup:="6 mg", verify:=False
FixDragonWords messup:="seven mg", fixup:="7 mg", verify:=False
FixDragonWords messup:="eight mg", fixup:="8 mg", verify:=False
FixDragonWords messup:="nine mg", fixup:="9 mg", verify:=False
FixDragonWords messup:="to mg", fixup:="2 mg", verify:=False
FixDragonWords messup:="40 2nd St.", fixup:="42nd Street", verify:=True
FixDragonWords messup:="Minutes Each Way", fixup:="minutes each way ", verify:=False
FixDragonWords messup:="Minutes Each Way", fixup:="minutes each way ", verify:=False
FixDragonWords messup:="Motion for Summary Judgement", fixup:="motion for summary judgement", verify:=True
FixDragonWords messup:="1999 Or. 2000", fixup:="1999 or 2000", verify:=False
FixDragonWords messup:="2000 Or. 2001", fixup:="2000 or 2001", verify:=False
FixDragonWords messup:="2001 Or. 2002", fixup:="2001 or 2002", verify:=False
End Sub

Function FixDragonWords(messup As String, fixup As String, verify As Boolean)
' Courtesy of Softnet Systems, Inc.
Dim selFlag As Boolean
Dim changeFlag As Boolean

selFlag = True

Selection.HomeKey Unit:=wdStory
Do While selFlag
With Selection.Find
.Text = messup
.Replacement.Text = fixup
.Forward = True
.Wrap = wdFindContinue
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = True ' June 5 2003 change
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With

selFlag = Selection.Find.Execute
If selFlag Then
changeFlag = Not verify
If verify Then changeFlag = (MsgBox("Fix " & Chr(34) & messup & Chr(34) & " with " & Chr(34) & fixup & Chr(34) & "? ", vbYesNo) = vbYes)
If changeFlag Then
Selection.MoveLeft Unit:=wdCharacter
Selection.Find.Execute Replace:=wdReplaceOne
Selection.MoveRight Unit:=wdCharacter
End If

End If ' selFlag
End Function


Home » Hints » Dragon Pooper Scooper Details