Adding multiple words that are incorrectly shown as misspelled to dictionary

Posted on 2004-09-21
Medium Priority
Last Modified: 2006-11-17
When dealing with a body of text with many unrecognised words - which show as incorrectly spelled - is it possible to highlight the whole block, and tell Word to add **any** "misspelled" word to the CUSTOM.DIC?

I typically get this when writing geek documentation (someone's gotta do it!), and am too lazy to go through and add 100 or so more terms individually.  Don't want to add *all* the words, just the ones that Word thinks are misspelled.  Pasting the entire paragraph into CUSTOM.DIC seems a bit brutal!

Selecting a paragraph, right-clicking, and seeing the option "Add ALL to Dictionary" would be the perfect thing...

Some sample text:

Installed services on \\<servername>:
      ACPI - Microsoft ACPI Driver
      AFD - AFD Networking Support Environment
      Alerter - Alerter
      AppMgmt - Application Management
      AsyncMac - RAS Asynchronous Media Driver
      atapi - Standard IDE/ESDI Hard Disk Controller
      Atmarpc - ATM ARP Client Protocol
      audstub - Audio Stub Driver
      awhost32 - pcAnywhere Host Service
      BITS - Background Intelligent Transfer Service
      Browser - Computer Browser
      Cdrom - CD-ROM Driver
      CIMnotify - HP Insight Event Notifier
      cisvc - Indexing Service
Question by:Danny Child
  • 2
  • 2
LVL 77

Accepted Solution

GrahamSkan earned 750 total points
ID: 12119328
This should do it.

Sub AddToDic()
    Dim prError As Range
    Dim Dict As Document
    Dim para As Paragraph
    Dim strErrWords() As String
    Dim iErrWordsCount As Integer
    Dim i As Integer
    Dim bFlag As Boolean
    For Each prError In ActiveDocument.SpellingErrors
        ReDim Preserve strErrWords(iErrWordsCount)
        strErrWords(iErrWordsCount) = prError.Text & Chr$(13)
        iErrWordsCount = iErrWordsCount + 1
    Next prError
    Application.Options.CheckSpellingAsYouType = False
    Set Dict = Documents.Open(CustomDictionaries("CUSTOM.dic").Path & "\" & CustomDictionaries("CUSTOM.dic").Name)
    For i = 0 To iErrWordsCount - 1
    bFlag = False
        For Each para In Dict.Paragraphs
            If strErrWords(i) = para.Range.Text Then
                bFlag = True
                Exit For
            End If
            If UCase$(strErrWords(i)) <= UCase$(para.Range.Text) Then
                para.Range.InsertBefore strErrWords(i)
                bFlag = True
                Exit For
            End If
        Next para
        If Not bFlag Then
            Dict.Paragraphs(Dict.Paragraphs.Count).Range.InsertAfter strErrWords(i)
        End If
    Next i
    Application.Options.CheckSpellingAsYouType = True

End Sub

LVL 22

Expert Comment

by:Anne Troy
ID: 12127715
It might be easier to open custom.dic and paste that text into it.
Just be sure when you save that you retain the proper name of the file, and that you save it as a text file.
LVL 23

Author Comment

by:Danny Child
ID: 12133956
The macro seems to work really well, I can see it putting the items into the CUSTOM.DIC folder, but on some larger documents, they are still flagged with the red squiggle.  The only way I've found to get it to go away is to turn off the Tools.. Options.. Spelling & Grammar.. Check Spelling as you Type, and then turn it on again.  

GrahamSkan - any chance of you adding this last piece of functionality?  heck, I'll even double the points!

Regarding Dreamboat's idea, AFAIK, custom.dic only works on having it's entries sorted alphabetically, with a single word per line.  If I was going to do that, it would be quicker to use the right-click.. Add to Dictionary!
LVL 23

Author Comment

by:Danny Child
ID: 12159848
neat macro, cheers.
LVL 77

Expert Comment

ID: 12159916
Sorry I haven't yet found a way of forcing the respell check. I think that Word must maintain a cache of the Dictionary, which it refreshes when you click on the Checkbox, but not when it is changed programatically.
I did think of saving, closing and re-opening the document, but that could bring other problems. I also tried removing the Custom.dic from the list of dictionaries and re-adding it, but Word seemed unaware of my actions.

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Ever visit a website where you spotted a really cool looking Font, yet couldn't figure out which font family it belonged to, or how to get a copy of it for your own use? This article explains the process of doing exactly that, as well as showing how…
This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
In this video, we show how to convert an image-only PDF file into a PDF Searchable Image file, that is, a file with both the image (typically from scanning) and text, which is created in an automated fashion with Optical Character Recognition (OCR) …
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…

607 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question