我想使用 Microsoft Word 来更正一些纯文本。但我需要 Word 使用一组新的/自定义的拼写检查规则:例如将“fcarce”替换为“scarce”。我可以手动添加每条规则,但这需要几个小时甚至几天的时间。有没有办法将整个列表添加到 Word 中?
PS 我知道如何添加自定义词典。但自定义词典似乎只是拼写正确的单词列表,而我需要的是拼写错误的单词列表以及用于替换它们的正确拼写。
答案1
我尝试了宏录制器,可以录制添加的自动更正条目。例如,我添加了更正abc
到ABC
:
Sub Macro1()
AutoCorrect.Entries.Add Name:="abc", Value:="ABC"
With Options
.AutoFormatAsYouTypeApplyHeadings = False
.AutoFormatAsYouTypeApplyBorders = True
.AutoFormatAsYouTypeApplyBulletedLists = True
.AutoFormatAsYouTypeApplyNumberedLists = True
.AutoFormatAsYouTypeApplyTables = True
.AutoFormatAsYouTypeReplaceQuotes = True
.AutoFormatAsYouTypeReplaceSymbols = True
.AutoFormatAsYouTypeReplaceOrdinals = True
.AutoFormatAsYouTypeReplaceFractions = True
.AutoFormatAsYouTypeReplacePlainTextEmphasis = False
.AutoFormatAsYouTypeReplaceHyperlinks = True
.AutoFormatAsYouTypeFormatListItemBeginning = True
.AutoFormatAsYouTypeDefineStyles = False
.TabIndentKey = True
End With
With AutoCorrect
.CorrectInitialCaps = True
.CorrectSentenceCaps = True
.CorrectDays = True
.CorrectCapsLock = True
.ReplaceText = True
.ReplaceTextFromSpellingChecker = True
.CorrectKeyboardSetting = False
.DisplayAutoCorrectOptions = True
.CorrectTableCells = True
End With
With OMathAutoCorrect
.UseOutsideOMath = False
.ReplaceText = True
End With
With Options
.AutoFormatApplyHeadings = True
.AutoFormatApplyLists = True
.AutoFormatApplyBulletedLists = True
.AutoFormatApplyOtherParas = True
.AutoFormatReplaceQuotes = True
.AutoFormatReplaceSymbols = True
.AutoFormatReplaceOrdinals = True
.AutoFormatReplaceFractions = True
.AutoFormatReplacePlainTextEmphasis = True
.AutoFormatReplaceHyperlinks = True
.AutoFormatPreserveStyles = True
.AutoFormatPlainTextWordMail = True
End With
Options.LabelSmartTags = False
End Sub
显然,我刚刚通过录制才发现,所以我不确定这些选项中的哪些是必需的,但这些是默认的。但您要查找的 VBA 代码是AutoCorrect.Entries.Add
。
答案2
您可以这样做以实现自动更正。需要 VBA。此版本仅替换纯文本,而不是富文本。据我所知,它适用于 Win Word 2010(可能还有 2007/2013)和 Mac Word 2011。
(自动更正基本上只允许“规则”,其中一个特定的单词被另一个文本替换 - 据我所知,没有任何工具可以检查语法内容,例如单词的复数版本,或进行任何类型的通配符)
创建一个包含一个表格(两列)的 Word 文档。保存您的文档。
在第一列的顶部单元格中输入“发件人”。在第二列的顶部单元格中输入“收件人”。
假设您有 100 条规则。
对于每条规则,您需要在表中占一行。将要检测的文本放在该行的第一个单元格中,将要替换的文本放在该行的第二个单元格中。
此表中的自动更正将替换任何具有相同“发件人”的现有自动更正,因此请谨慎在此表中输入内容。
完成后,保存您的工作。
然后您需要插入以下 VBA 并运行它。有关这方面的一些过时的帮助,请参阅此链接
Sub importautocorrects()
Dim objACE As Word.AutoCorrectEntry
Dim objDocument As Word.Document
Dim r As Word.Range
Dim objTable As Word.Table
Dim i As Integer
Set objDocument = ActiveDocument
Set objTable = objDocument.Tables(1)
For i = 2 To objTable.Rows.Count
With objTable.Rows(i)
Word.AutoCorrect.Entries.Add _
Left(.Cells(1).Range.Text, _
Len(.Cells(1).Range.Text) - 2), _
Left(.Cells(2).Range.Text, _
Len(.Cells(2).Range.Text) - 2)
End With
Next
Set objTable = Nothing
Set objDocument = Nothing
End Sub
答案3
要添加更正,请打开 Word 并单击“文件”>“选项”
在选项窗口中,单击“校对”。在这里,您可以找到有关校对设置的所有信息。如果您单击“自动更正选项”,您还可以添加“键入时更正”;我想这就是您要找的!
以下是屏幕截图: