Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
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:
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.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1732) applies to Microsoft Word 97, 2000, 2002, and 2003.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!