Я создаю макрос VBA для создания новой записи автозамены из выделения текста. Текст - это математический текст, поэтому часто имеет нижние индексы или верхний индекс - курсив и т. Д. Например, предположим, что целью является «M1», где «1» подписано, тогда запись автозамены будет «m1».
Если вы делаете это вручную, вы выбираете целевой текст, отформатированный по желанию, и в диалоговом окне «Автозамена» установите флажок «Заменить текст по мере ввода, Заменено: на: Отформатированный текст.
Однако я не могу найти свойство опции автозамены, соответствующее этой функции, поэтому результатом всегда является простой текст.
Я попытался записать макрос (который на самом деле работал), а затем проверил все параметры, которые были зафиксированы в Word, но на самом деле ни один из них не помог сохранить форматирование.
Вот код:
Sub NewAutoCorrect()
Dim strEntry As String
strEntry = InputBox("Enter the AutoCorrect entry")
AutoCorrect.Entries.Add Name:=strEntry, Value:=Selection
With AutoCorrect
.CorrectInitialCaps = True
.CorrectSentenceCaps = True
.CorrectDays = True
.CorrectCapsLock = True
.ReplaceText = True
.ReplaceTextFromSpellingChecker = True
.CorrectKeyboardSetting = False
.DisplayAutoCorrectOptions = True
.CorrectTableCells = True
End With
End Sub