Открыв документ, перейдите в VB Editor и создайте следующий Sub. Возможно, вам придется выбрать шаблон Normal и использовать Insert-> Module, чтобы создать где-нибудь, куда вы можете вставить код. Замените идентификатор языка / версии, который вы действительно хотите. Если это не wdEnglishUS, вы можете удалить "= wdEnglishUS" и начать перепечатывать. Когда вы вводите =
, VB Editor должен представить список.
Sub changeLanguage()
ActiveDocument.Content.LanguageID = wdEnglishUS
End Sub
Запустите код, нажав F5. Это должно переключить любые новые подписи на те, которые вы хотите на английском языке. Проблема в том, что никакое такое изменение не изменит существующие подписи. Для этого вам нужно будет найти / заменить. Названия подписей используются в нескольких местах:
- сами подписи
- поля {SEQ}, используемые для вставки порядкового номера заголовка. Убедитесь, что вы используете Alt-F9 для отображения этих кодов полей перед выполнением поиска / замены.
- любое поле {TOC} в документе, используемом для вставки списка рисунков
К тому же...
Word не отображается для обновления текста результата поля при указании «выше / ниже», даже если вы изменили основной язык редактирования на тот, который вы хотите. Следующий фрагмент VBA пытается заменить все поля REF, пытаясь заставить Word изменить эти результаты. Это не было проверено много.
Sub replaceRefFields()
Dim f As Word.Field
Dim l As Long
Dim r As Word.Range
Dim s As String
With ActiveDocument
For l = .Fields.Count To 1 Step -1
With .Fields(l)
If .Type = wdFieldRef Then
Set r = .Result
s = .Code
.Delete
r.Fields.Add r, wdFieldEmpty, s, False
Set r = Nothing
End If
End With
Next
End With
End Sub