Share via

How can I use an old Microsoft Macro that provides an AutoCorrect Utility?

Anonymous
2018-02-15T18:07:25+00:00

Thanks to help from the community I was able to find my AutoCorrect files and transfer them to a colleagues computer.  Then I wanted to take the next step and create an app that will do this.  Before trying to code this, I was informed by a colleague that in around 2000, Microsoft Support created several sets of Macros for different functions.  One set was called "Macro9" and it contains an AutoCorrect Utility.  I was able to search the bowels of the Internet and actually find a copy of Macro9.  However, when I tried to run it, I could not as it was written for 32 bit machines and I have a 64 bit machine.  I would like to try that AutoCorrect Utility as I think it will save me a lot of work.

Therefore,

Is there a 64 bit version of Macro9?  or

Is there a contemporary version of the AutoCorrect Utility in the Microsoft archives? or

Is there a newly programmed Microsoft AutoCorrect Utility?

If not, what do I have to do with the VBA coding to make it function on a 64 bit machine?

Thanks to one of the community members who responded to an earlier post, there is an existing Macro that allows saving and restoring the ,acl Autocorrect file.  However this is very slow and converts the .acl to a Word Document, allows editing, and would restore the Word Document contents back to the .acl.  I am looking for a utility that will allow be to append additional autocorrect files to the user's existing .acl file. and hopefully one that works with the existing .acl files and dot convert them back and forth between word and the .acl format.

Microsoft 365 and Office | Word | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments

Answer accepted by question author

  1. Jay Freedman 207.6K Reputation points Volunteer Moderator
    2018-03-06T04:29:25+00:00

    However, what happens when there are two rows with the same labels in the first column but DIFFERENT correction terms?  Does the first one get made, and the second ignored since the changed word no longer matches the label.  I think I have to not only deduplicate but in the case where there  is a first column match

    but with different second columns, I think we should ask the user which he wants to keep.

    No, it works the other way around: If there are two entries with the same first column but different correction terms in the second column, the macro stores the first one and then overwrites it with the second one. (Your comment about the changed word no longer matching confuses the .acl file's contents with a document's contents: The .acl file can contain only one entry with a given "bad word", so adding another entry with the same "bad word" replaces the first one.) There is no programming in the macro to ignore the second one. It's up to you to remove whichever table row is incorrect.

    Was this answer helpful?

    2 people found this answer helpful.
    0 comments No comments

Answer accepted by question author

  1. Jay Freedman 207.6K Reputation points Volunteer Moderator
    2018-03-03T20:53:38+00:00

    My add-in deliberately does not make any changes directly to .acl files, because I don't know the structure of those files -- Microsoft has never published any documentation of it, and I don't trust anyone else to get it absolutely right. Instead, the macro in the add-in uses Word's built-in functions to add items to the .acl file(s).

    I can tell you a couple of possible reasons your attempt "didn't work", although it would be more helpful to know exactly in what way it failed, and how you determined that it failed.

    • When the macro requests Word to add an AutoCorrect entry, it first looks at the content of the rightmost column of the entry's row in the table in the backup file. If the content is the word "False", the entry is (supposedly) a plain-text entry to be stored in a .acl file; if the content is "True", the entry is a formatted entry to be stored in the Normal template. Did you fill in the third column correctly in your added rows?
    • For a plain-text entry, Word looks at the proofing language applied to the text in the middle column of the entry's row in the table and sends the entry to the appropriate language-specific .acl file. (Microsoft doesn't document what Word does if the text contains more than one proofing language; I suspect it looks only at the first character's language setting.) Perhaps the entry you're looking for went into a different .acl file than the one you expected? [In File Explorer, type %appdata%\Microsoft\Office in the address bar and press Enter, and look at the Modified dates of the various MSOxxxx.acl files -- which ones are from the day and time when you ran the Restore? The four-digit numbers in the file names are Language IDs, which you can find at http://msdn.microsoft.com/en-us/library/ms912047(WinEmbedded.10).aspx.] The AutoCorrect dialog in Word will show you only the entries in the .acl file for the proofing language set at the location of the insertion point in the active document.

    Was this answer helpful?

    2 people found this answer helpful.
    0 comments No comments

Answer accepted by question author

  1. Jay Freedman 207.6K Reputation points Volunteer Moderator
    2018-03-05T01:48:47+00:00

    Lewis, thank you for compiling this documentation. I'll add a link to this thread in my web page for reference.

    I would like to correct two misstatements:

    • The add-in does not delete any entries from .acl files or from the Normal template. If you remove an existing entry from the backup document, the entry simply remains as is in Word's AutoCorrect list. To remove entries from Word's list, use the Delete button in the AutoCorrect dialog.
    • If the backup document contains two identical rows, the Restore macro stores the first one and then stores the second one, but because they're identical it appears that the second one hasn't done anything.

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments

12 additional answers

Sort by: Most helpful
  1. Anonymous
    2018-03-04T21:27:00+00:00

    I have drafted the following as a guide to others who might want to use this macro for the AutoCorrects.  Please review and give me any criticisms or corrections.

    Documentation of The Capability ofJay's .acl Backup and Restore Macro

    The Form & Structure of the Backup File

    The backup file is a Word document that consists of a Title Paragraph ("AutoCorrect Backup File" followed by a blank paragraph

    A 3 Column Table follows.  The first row of the table is a Header Row: "Name -- Value -- RTF".  The Name is the string that is the Bad Word or the label for the sting that wil replace it.  The third column is either "True" or "False".  "True" denotes a formatted string replacement.  "False" is an unformatted Autocorrect entry.  The "True" entries are stored in the "Normal" template.  The "False" entries are stored in the .acl file.  Most entries will be "False".

    The File in Word That Holds the AutoCorrect Unformatted Entries

    • The file in Word that contains the AutoCorrect, non-formatted entries has the  extension .acl
    • The first three characters of that file are always "MSO".
    • The next 3 characters are 4 digits ####.
    • The .acl extension follows
    • The 4 digits represent the different language proofing tools that Word might use.  The can differ with each personal installation of Office.  American English is 1033.  Therefore, the file storing the American English non-formatted AutoCorrect entries is: "MSO1033.acl"
    • There can be several of these .acl files in any PC if the user uses more than one language.
    • The location of the .acl files is: 

    C:\Users*USER_NAME*\AppData\Roaming\Microsoft\Office

    The USER_NAME is the name of the user of the PC at the moment.  Many PCs are configured for more than a single user.  Each user has his/her own set of .acl files.

    • The Structure of the .acl files is very complex.  They are Binary files and seem to be a variant of Binary Search Trees.  This is the reason that inserting, deleting, and editing an entry is so fast and that the autocorrection operates so quickly and as a practical matter does so regardless of the number of Autocorrect entries.  The search, insert and delete all operate at O(log n) time.  You could have a million AutoCorrect entries and never notice the time delay.
    • It is the consensus of all the developers with experience with the .acl files that you should NOT try to discern the structure of the extremely sophisticated file set. It is just too hard to fire it out, and  Microsoft has never made the structure public, Therefore it is too easy to mess up if you try and alter the files directly.

    The Principle of the Macro

    • The macro converts the .acl file into a Docx backup file.  When you want to restore the .acl file, the Macro converts the Docx
    • backup file back into the acl. file.
    • The macro does not interact with the .acl file directly, so it does not have to deal with the very complex structure.  The Macro uses the VBA Word commands.

    Additional Uses of the Macro

    You can use this Macro for MORE than just backing up and restoring the .acl file

    • You can make corrections to the .docx backup AutoCorrect file in Word and those corrections will be reflected in MSO1033.acl file when restored.
    • You can Delete existing AutoCorrects by deleting their corresponding rows in the .docx table.
    • You can add new AutoCorrects by adding rows to the table, filling the first 2 columns of the row, with the bad word or label and the second column with the correct word or entry that the label describes.  However, it is critical that you also add a "True" or "False" to the third column to indicate whether the AutoCorrect is formatted or now.  Most will be "False" for most users.
    • If by any chance the AutoCorrects rows that you add to the table are duplicates of already existing rows, the Macro will only enter one and ignore the second.
    • If you have two different corrections (2nd column) for the same bad word for the label (1st column), the second one is the one that will remain after the conversion to the .acl file.

    Use Cases For the Macro

    In addition to the Backup and Restore functions here are some additional use cases for this macro.

    • You have an .acl AutoCorrect file that has been developed in a company or other organization, and you want to distribute the AutoCorrect standard paragraphs and/or corrections to other in the organization.
    • You have already distributed .acl files but want to make changes -- corrections, deletions and additions to all.
    • Several people are using the same AutoCorrect files, but each of them has subsequently added personal AutoCorrects,  You want to add new general changes but preserve the personal additions that each person has made.
    • You want to aggregate the new autocorrects that several people have added and then review them all and distribute some that meet your criteria to all.
    • You can transfer glossaries from the web, pdf, Word, or text documents to your autocorrects.
    • The most common use case is when you have added a new autocorrect but have made an error and the .acl file has a large number of AutoCorrect entries, it is much easier and faster to make a backup copy, then find the error in the .docx table, correct it and restore.  There is no user search capability in the AutoCorrect operation in Word.  At least that entries are listed in alphabetical order of the errors or labels.  So scrolling down can find it, if there are not too many entries.  But most often we remember the correct word and not the incorrect word.  With no search available and the correct words NOT in alphabetical order, it is much easier (if there are more than a few autocorrects) to use the macro.

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments
  2. Doug Robbins - MVP - Office Apps and Services 323K Reputation points MVP Volunteer Moderator
    2018-02-16T01:29:40+00:00

    When you refer to 64-bit, is that reference to the bitness of Office or of Windows?

    Jay Freedman has an AutoCorrect utility at https://jay-freedman.info/

    Was this answer helpful?

    0 comments No comments