Solved

Adding multiple words that are incorrectly shown as misspelled to dictionary

Posted on 2004-09-21
5
418 Views
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
0
Comment
Question by:Danny Child
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 250 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
   
    Dict.Save
    Dict.Close
    Application.Options.CheckSpellingAsYouType = True

End Sub

0
 
LVL 22

Expert Comment

by:Dreamboat
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.
0
 
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!
0
 
LVL 23

Author Comment

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

Expert Comment

by:GrahamSkan
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.
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface: When I started this series, I used the term CommandBars because that is the Office Object class that it discusses. Unfortunately, when Microsoft introduced Office 2007, they replaced the standard Commandbar menus with "The Ribbon" and rem…
This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
The viewer will learn how to make their project stand out over others by learning how to change colors and shapes, add spaces, change directions, and add bullets to their charts.
This video shows where to find templates, what they are used for, and how to create and save a custom template using Microsoft Word.

626 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