
Tips.Net > WordTips Home > Editing > AutoCorrect > Importing AutoCorrect Entries
Summary: The AutoCorrect feature in Word is quite handy, but getting a lot of entries into the feature can be tedious. This tip provides a macro that will allow you to enter entries quite a bit faster. (This tip works with Microsoft Word 97, Word 2000, Word 2002, and Word 2003.)
Word's AutoCorrect feature can be helpful when you are writing, as it can replace your "mistypes" with what you really intended in the first place. AutoCorrect comes already configured with many of the common typing mistakes, but to make the tool truly helpful you need to add your own AutoCorrect entries that reflect your personal typing habits.
The normal way to add AutoCorrect entries is to enter them in, one at a time, using AutoCorrect tab of the AutoCorrect dialog box (Tools | AutoCorrect). What if you want to import quite a few AutoCorrect entries, rather than typing them in? Useful information regarding exporting and importing AutoCorrect entries is located here, at the Word MVP site:
http://word.mvps.org/FAQs/Customization/ExportAutocorrect.htm
As you can tell from the site, the bottom line is that there is no intrinsic function within Word that allows you to import AutoCorrect entries. Thus, you are left to using a macro to do the work. The following is one such macro, which will import entries and place them directly in the AutoCorrect list.
Sub AddToTheAutoCorrectList()
Dim r As Range, r1 As Range
Dim par As Paragraph, bo As Boolean
Dim pars As Paragraphs
Dim ACE As AutoCorrectEntry
Dim ACEs As AutoCorrectEntries
Dim ActD As Document
Set ActD = ActiveDocument
Set pars = ActD.Paragraphs
Set r1 = Selection.Range
Set r = Selection.Range
Set ACEs = Application.AutoCorrect.Entries
On Error Resume Next
For Each par In pars
If par.Range.End = ActD.Content.End Then Exit Sub
r1.Start = par.Range.Start
r1.End = r1.Start
r1.MoveEndUntil vbTab
r.Start = r1.End + 1
r.End = par.Range.End - 1
If Len(r1.Text) > 0 Or Len(r.Text) > 0 Then
If Len(ACEs(r1.Text).Value) > 0 Then
bo = Repl(ACEs, r, r1)
Else
bo = True
End If
If bo Then ACEs.Add r1.Text, r.Text
End If
Next
End Sub
Private Function Repl(a As AutoCorrectEntries, _
r As Range, r1 As Range) As Boolean
If a(r1.Text).Value <> r.Text Then
Repl = MsgBox("To replace " & UCase(a(r1.Text).Value) & _
" with " & UCase(r.Text) & " click OK", vbYesNo + _
vbQuestion, "REPLACE ENTRY?") = vbYes
End If
End Function
To use the macro, just make sure that you place one entry per paragraph in a document. (There should be nothing else in the document.) The "Replace" portion of the entry should be separated from the "With" portion by a tab character. If the macro encounters a proposed AutoCorrect entry that will overwrite an existing entry, you are asked if you want to make the change.
Tip #1732 applies to Microsoft Word versions: 97 2000 2002 2003
Find and Replace Almost Anything! Learn the ins and outs of the powerful search engines available in Word. Learn to search for and replace text, formatting, graphics, and special characters the easy way with WordTips: Find and Replace.
Learn to use styles and you discover the real power behind Word. Fast, easy, consistent document formatting and updating is within your grasp. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Pet Tips
Word2007 Tips
WordTips