I was using Word 2010 in Windows 7. I had been using Word’s Autocorrect feature for some years. Word came with a predefined set of corrections, and I had added my own. It eventually occurred to me that I might be happier, in a new installation and/or at a later time, if I deleted the default entries supplied by Word, and used my own list. But I didn’t know how to delete hundreds or thousands of defined corrections. This post describes the steps I took on that question.
It seemed that I had *.acl files that could safely be deleted. This wasn’t essential; it was just a matter of housekeeping.
It seemed that the ACL files contained copies of my word abbreviations, but that manipulating them did not lead toward my desired solution. For my desired solution, I had to use macros.
Two macros were essential. One, Autocorrect.dot, would back up and restore my list of desired Autocorrect entries. I manipulated that list using Excel. The other, PurgeAutocorrect, would delete everything from my existing list of autocorrect definitions. This seemed essential if I wanted to make sure that unwanted old definitions would not linger on the system. After purging, then I could restore the backup that I had made with Autocorrect.dot and had manipulated in Excel.
Note that a later post updates some portions of this one.
I had two reasons to delete the predefined set. One was that a lot of those definitions were irritating. This was a personal thing. I took pride in my spelling; I thought that it was a good idea to continue to expect myself to spell correctly; and so I didn’t want Word to be insulting my intelligence with the implication that I would actually be typing “adiquit” instead of “adequate.”
The other (and real) reason for deleting them all was that I, myself, had added some entries that I had subsequently stopped using. I had used Autocorrect.dot (and apparently could have used any number of alternatives) to export the full sets of autocorrect entries from several computers that I used; I had compared and combined those lists in Excel; I had deleted numerous regrettable or no-longer-used entries from that list; and now I wanted to import my new and improved list back into Word. But if I just imported that list into Word without further ado, Word would still contain the old set of entries that I had just deleted in Excel. So I needed to flush out the old set from Word, before using AutoCorrect.dot (or some other technique) to import the new list into Word.
By the way, in the process of playing around in Excel, it finally occurred to me what the RTF column was for, in the list of Autocorrect entries exported by Autocorrect.dot. It seemed, in my limited understanding, that an item marked FALSE in the RTF column would function as just plain text. It would not save the formatting shown in the AutoCorrect.dot output. So I would apparently want to mark an item as TRUE in the RTF column if it used a special symbol or something that I wanted to appear exactly the same way in all kinds of documents, regardless of the font being used.
A search suggested that there might be two ways to remove the existing Autocorrect items from Word. One way was to write a script or macro that would do the deleting, either within Word itself or with an external process (in e.g., PowerShell). A thread from 2001 suggested a macro that might still work. It said, incidentally, that the macro would not delete RTF = TRUE items because apparently those were stored in the Normal.dot template, not in *.acl files, and apparently the ACL files were where the RTF = FALSE items (which, for me, constituted the large majority) were stored. The alternative to a macro or script was just to delete the relevant ACL files.
I decided to start by trying the latter method. Unfortunately, a search for ACL files on my computer (using Everything) indicated that there were 16 of them. Was I supposed to delete them all? The thread telling me about this approach dated from 2002, and it was also oriented toward using Word on a Mac. But since I had done my search and found my list of ACL files, I decided to take a peek. Sorting my search results by date showed me that only one file had been modified in recent weeks. A right-click > Open with Notepad showed me that this one, MSO1033.acl, did indeed contain something that looked like my list of definitions. A search seemed to confirm that MSO1033.acl was the right place to be looking, at least for users of U.S. English.
MSO1033.acl was not a simple text file. Along with a s p a c e d o u t v e r s i o n of my Autocorrect definitions, it used a funky delimiter, a tiny hollow rectangle, to separate one Autocorrect item from the next. So it didn’t seem that I could just replace MSO1033.acl with another text file, or use Excel or Word to cook up new contents that I could just plug into the existing MSO1033.acl. If I did try something like that, I would probably have to preserve the 15 to 20 odd characters at the start of the file, which presumably represented instructions to Word; and I would also have to figure out what to do with the end of the file, where there seemed to be a number of abbreviations that lacked corresponding definitions. For example, one of those ending items was “ord,” which was my abbreviation for “order”; but the word “order” didn’t appear along with the “ord.” I wasn’t sure if those items at the end were necessary, or if they were just accumulated junk.
A modification to that last search persuaded me that not many people were attempting to edit MSO1033.acl. Allen Wyatt suggested the possibility of having two distinct copies of MSO1033.acl, and replacing one with the other in situations where a user might be working with different kinds of materials. (For example, I might want ABA to expand into “American Bar Association” in one setting, but to become “American Bankers Association” in another.) This approach suggested that, if I had been setting up a new installation of Word somewhere, maybe I could have deleted its newly installed MSO1033.acl, and then could have used Autocorrect.dot to add my preferred contents to the empty file.
I wondered if I could do something along those lines by deleting everything from MSO1033.acl except those odd characters at the start, and then use Autocorrect.dot to fill in my preferred contents. I closed all Microsoft Office programs, made a backup of MSO1033.acl, opened the original in Notepad, went to the end of the first defined term (so that the file would still contain something), and deleted everything from there to the end. Windows let me save the change. (I had shut off all of the Windows 7 protection schemes and had taken ownership of everything in sight, and was running as an administrator; I was not sure if others who had not taken these steps would be likewise able to save their changes to MSO1033.acl.)
Then I started Word. I tried using one of my standard abbreviations. It worked. It wasn’t supposed to: I had just deleted that abbreviation. Evidently emptying out MSO1033.acl was not going to be a one-stop solution. I reopened MSO1033.acl and saw that it had been restored with an older set of abbreviations. I looked at my list of ACL files and saw that MSO2057.acl (which was apparently the home of UK English corrections) was about the same size as the recreated MSO1033.acl. I opened MSO2057.acl in Notepad. Its set of corrections seemed to match those of my newly refurbished MSO1033.acl.
So now I sorted my list of ACL files by size. There were five that were about the same size as MSO1033.acl: about 37K. The contents of several others, somewhat larger (i.e., around 44K), looked like they were for French and Spanish. These five looked to be similar if not identical. After making backup copies, I emptied them all out, leaving only the first entry as described above. I saved and closed them all and restarted Word. My old autocorrect items still worked. But inspection confirmed that, this time, those ACL files had not gotten refreshed; all five were still nearly empty. So it did seem that they were refreshed from one another; but it also seemed that my old Autocorrect items were being saved somewhere else.
Well, while I was here, I wondered if I could just delete those five 37K ACL files. I did that and then restarted Word. Everything now said that the only 37K ACL files on my system were in the Recycle Bin. I restarted Word. Its installer ran for a moment, and then I had two new ACL files: C:\Program Files (x86)\Microsoft Office\OFFICE11\1033\MSO.ACL and C:\Users\Ray\AppData\Roaming\Microsoft\Office\MSO1033.acl. My old abbreviations still worked. So (a) apparently some of those ACL files had been superfluous and (b) something else was creating 37K ACL files.
In Notepad, I edited those two newly created ACL files, once again leaving only the first entry. I saw that MSO1033.acl did not actually need editing; it still had just the one entry. So whatever was remembering the default contents of MSO.acl was apparently also remembering MSO1033.acl as my own definitions. I started Word. The installer did not run. Word still remembered my definitions. But now it looked like it might be remembering only an older set. These may have been saved in one of the other ACL files displayed by Everything. Possibly I could delete all of the ACL files and that would solve the problem.
I decided to try that. I forgot to close Word before deleting. I deleted, then closed Word, then restarted it. Its installer ran. It created a total of three MSO.ACL files: the one listed above, and also two others in subfolders 1036 and 3082 (instead of 1033). As soon as I typed the letters used in one of my old abbreviations, it also created MSO1033.acl. So, OK, I had decluttered my system a bit, but I still did not know how to purge my old Autocorrect definitions.
It was time to try that macro. To create it, I followed the steps I had used before to create other macros: in Word, hit Alt-T M M. In the resulting dialog, I created a macro called PurgeAutocorrect. I replaced its default contents with the lines shown above. I hit File > Close. Back in Word, I hit Alt-T M M again, selected the PurgeAutocorrect macro, and hit Run. It didn’t work. It had errors, and I wasn’t enough of a Visual Basic programmer to figure out their solution. Microsoft suggested an alternative:
Sub Remove_Item() 'The following macro code removes the replacement 'item for "Microsoft". Application.AutoCorrect.DeleteReplacement "Microsoft" End Sub
So the scenario there would be that I would use Excel to cook up one line per word, for each word I wanted to delete, and that line would be the Application.AutoCorrect.DeleteReplacement line shown above; the only difference is that I would replace “Microsoft” in that line with the word I wanted to remove from my Autocorrect list. To get that list of words, perhaps I could just export all of the words that Word now had in its Autocorrect list, using Autocorrect.dot, and could use Excel on those.
Sub PurgeAutocorrect() Dim acEntry As AutoCorrectEntry For Each acEntry In AutoCorrect.Entries acEntry.Delete Next acEntry End Sub
I edited my PurgeAutocorrect macro to contain those lines, and then ran it. Word was unresponsive for maybe 20 seconds. Then I tried one of my old autocorrect items. It didn’t work. Success! Now the old definitions were gone. I took a look at the contents of MSO.ACL and MSO1033.acl. Oddly, they had not changed: there was nothing except a few gibberish characters at the start of the latter, and MSO.ACL seemed to contain the Word default autocorrect items. I closed Word, deleted those ACL files, and restarted Word. Its installer ran again. It recreated those three MSO.ACL files; and as soon as I typed something, it also recreated MSO1033.acl and also MSO0127.acl. In Word, I went into the Autocorrect dialog (Alt-T A). There were no entries. This was apparently about as purged as it was going to get, and it was good enough.
While I was working through these steps, at one point I got a dialog: “The list of common math AutoCorrections is not available. An error occurred and this feature is no longer functioning properly. Would you like to repair this feature now?” I chose Yes. That brought up the Microsoft Office configuration process. That ran for a while and then gave me “An internal error has occurred” and “Setup failed. Rolling back changes.” Then it said it needed to reboot. I said no. I went back into the Autocorrect option, to see whether the configurator had restored the default Microsoft autocorrect entries. It hadn’t. Using Autocorrect.dot, I restored my desired list of autocorrect entries. I took a look; I tested it. All was good. The things I wanted were there; the things I didn’t want weren’t. I killed Word and rebooted as recommended.