Loading
Word.Tips.Net WordTips (Menu Interface)

Importing AutoCorrect Entries

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.

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.

Related Tips:

Learning Made Easy! Quickly teach yourself how to format, publish, and share your content using Word 2013. With Step by Step, you set the pace, building and practicing the skills you need, just when you need them! Check out Microsoft Word 2013 Step by Step today!

 

Leave your own comment:

*Name:
Email:
  Notify me about new comments ONLY FOR THIS TIP
Notify me about new comments ANYWHERE ON THIS SITE
Hide my email address
*Text:
*What is 5+3 (To prevent automated submissions and spam.)
 
 
           Commenting Terms

Comments for this tip:

Alberto    30 Jul 2016, 04:02
'This macro work with Office 2016
'--------------------------------


'Export all autocorrect entries
Sub ListTheAutoCorrectList()
  Dim ACE As AutoCorrectEntry
  Documents.Add
  For Each ACE In Application.AutoCorrect.Entries
    Selection.TypeText ACE.Name & vbTab & ACE.Value & vbCr
  Next
  With ActiveDocument.PageSetup.TextColumns
      .SetCount NumColumns:=1
      .EvenlySpaced = True
      .LineBetween = True
  End With
  ActiveDocument.Paragraphs.TabStops(InchesToPoints(1.88)).Position = _
  InchesToPoints(1.88)
End Sub

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
            reemplazo = ACEs(r1.Text).Value
            Len_reemplazo = Len(reemplazo)
            If Len_reemplazo <> 0 Then
                bo = Repl(ACEs, r, r1)
            Else
                bo = True
            End If
            If bo Then
                ACEs.Add r1.Text, r.Text
            End If
        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

'For file with many duplicate entries
Sub AddToTheAutoCorrectListWithoutQuestion()
    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
            reemplazo = ACEs(r1.Text).Value
            Len_reemplazo = Len(reemplazo)
            If Len_reemplazo <> 0 Then
                bo = True
            End If
            If bo Then
                ACEs.Add r1.Text, r.Text
            End If
        End If
    Next
End Sub
joe roe    06 Jul 2016, 15:42
love this idea, how can I prepare my data for this. I can make a comma separated file, but how do I add the paragraph after each entry
Alec    10 Apr 2015, 12:49
I also loaded in this macro and it didn't work. I'm using Word within Office365 - maybe that makes a difference?
Aboo    01 Apr 2015, 19:46
Hi. Can you write a macro that I can use in xcel. I can then assign the macro to a button. The text and replacement can be in separate columns. Then all one has to do is click on the button to activate the autocorrect update.
I am planning to use this for a language - non Latin based to Latin script transliteration method and the user who is not computer literate will find it easier to use. All they to do then is download the xcel file and click to update the autocorrect.
Thanks Aboo
Chris    13 Jun 2014, 15:20
This works very well (thank you!) for regular text, but is it possible to make it work for formatted text?
Paul Wray    07 Mar 2012, 16:11
Hi Allen,
I must be missing something. I copied your macro and inserted into VB for Office 2010. When I run it nothing happens. When I step through it, each line seems to execute, but nothing happens in the document (set up as specified) and no entries are inserted in AutoCorrect.

Can you help?

Thank you.
 
 

Our Company

Sharon Parq Associates, Inc.

About Tips.Net

Contact Us

 

Advertise with Us

Our Privacy Policy

Our Sites

Tips.Net

Beauty and Style

Cars

Cleaning

Cooking

DriveTips (Google Drive)

ExcelTips (Excel 97–2003)

ExcelTips (Excel 2007–2016)

Gardening

Health

Home Improvement

Money and Finances

Organizing

Pests and Bugs

Pets and Animals

WindowsTips (Microsoft Windows)

WordTips (Word 97–2003)

WordTips (Word 2007–2016)

Our Products

Helpful E-books

Newsletter Archives

 

Excel Products

Word Products

Our Authors

Author Index

Write for Tips.Net

Copyright © 2016 Sharon Parq Associates, Inc.