Редактор от Microsoft, проверяя орфографию, подчеркивает неизвестные слова или слова с возможными ошибками для того, чтобы на них обратить внимание. Но если ваш текст имеет русские и английские слова или украинские и английские, то язык может определяться неправильно и Word подчеркнет все слова. Часто такая ситуация возникает при копировании и последующей вставке текста из интернета.
Можно вручную выделить текст, тогда в строке состояния выбрать нужный язык (смотрите скриншот снизу).
Но в таком случае все украинские (русские) слова не будут подчеркнуты, а английские будут. Теперь, чтобы все было как надо, мы должны выделить каждое английское слово (предложение) и указать для него язык. А если текст на 200 страниц? Лучше данный процесс автоматизировать. Так и сделаем. Используем готовый макрос для русского языка и исправим его для использования с украинским.
Код макроса для украинского и английского языка:
'Attribute VB_Name = "PrepForSpell"
Sub PrepForSpell()
'Attribute PrepForSpell.VB_Description = "Macro created 31.01.2002 by nnnnnn"
'Attribute PrepForSpell.VB_ProcData.VB_Invoke_Func = "Normal.NewMacros.PrepForSpell"
'
' PrepForSpell Macro
' Macro created 31.01.2002 by nnnnnn
' Adoption for Word 2003/2007 by Alexey Murzov
'
With Selection
.WholeStory
.LanguageID = wdRUkrainian
.NoProofing = False
.HomeKey Unit:=wdStory
n1 = 0
w1 = "a"
se1 = .End
se2 = -1
Do While se1 <> se2
w1 = Left(Trim(.Words(1)), 1)
If w1 <> "" Then
n1 = Asc(w1)
If (n1 >= 65 And n1 <= 90) Or (n1 >= 97 And n1 <= 122) Then
.Words(1).LanguageID = wdEnglishUS
.Words(1).NoProofing = False
End If
End If
.MoveRight Unit:=wdWord
se2 = se1
se1 = .End
Loop
End With
Application.CheckLanguage = True
If se1 = se2 Then MsgBox "Fixing Eng/Rus language finished.", vbInformation, ""
End Sub
1. Копируем код, который можно видеть выше.
2. Идем в «Вид → Макросы → Макросы».
3. Даем имя для макроса (любое, без пробелов) и нажимаем «Создать».
4. Откроется окно визуального редактора Microsoft Visual Basic. Там уже будет текст с именем вашего макроса (у меня на скриншоте видно, что имя макроса PrepForSpell):
Sub PrepForSpel()
'
' PrepForSpel Макрос
'
'
End Sub
5. Удаляем данный код и заменяем на скопированный ранее.
6. Идем в «Вид → Макросы → Макросы», находим наш добавленный (PrepForSpell) и нажимаем «Выполнить». После окончания работы макроса все пустые строки будут заменены. В случае успешного выполнения макроса будет выведено сообщение как на скриншоте ниже.
Для русского языка используйте аналогичный код:
'Attribute VB_Name = "PrepForSpell"
Sub PrepForSpell()
'Attribute PrepForSpell.VB_Description = "Macro created 31.01.2002 by nnnnnn"
'Attribute PrepForSpell.VB_ProcData.VB_Invoke_Func = "Normal.NewMacros.PrepForSpell"
'
' PrepForSpell Macro
' Macro created 31.01.2002 by nnnnnn
' Adoption for Word 2003/2007 by Alexey Murzov
'
With Selection
.WholeStory
.LanguageID = wdRussian
.NoProofing = False
.HomeKey Unit:=wdStory
n1 = 0
w1 = "a"
se1 = .End
se2 = -1
Do While se1 <> se2
w1 = Left(Trim(.Words(1)), 1)
If w1 <> "" Then
n1 = Asc(w1)
If (n1 >= 65 And n1 <= 90) Or (n1 >= 97 And n1 <= 122) Then
.Words(1).LanguageID = wdEnglishUS
.Words(1).NoProofing = False
End If
End If
.MoveRight Unit:=wdWord
se2 = se1
se1 = .End
Loop
End With
Application.CheckLanguage = True
If se1 = se2 Then MsgBox "Fixing Eng/Rus language finished.", vbInformation, ""
End Sub
Обратите внимание на то, что при желании использовать 2 макроса (для украинского и русского) нужно задать для них разные имена.
Похожие статьи:
Следующие статьи:
- Как выполнить поиск и замену текста в нескольких документах Word, которые содержаться в одной папке? - 05/10/2019 11:29
- Как выровнять все таблицы в документе Word по ширине страницы? - 30/09/2019 22:43
- Как в Microsoft Office Word превратить цифры в текст? - 30/09/2019 18:00
- Как быстро перемещаться между открытыми документами в редакторе Microsoft Office Word? - 27/09/2019 21:13
- Как добавить макрос в панель быстрого доступа? - 26/09/2019 17:29
Предыдущие статьи:
- Как удалить все пустые строки в редакторе Microsoft Office Word? - 23/09/2019 19:56
- Как проверить грамматику в текстовом редакторе Microsoft Office Word, онлайн редакторе Google Docs и в браузерах Google Chrome и Mozilla Firefox? - 20/08/2019 22:45
- Как поставить неразрывный пробел в редакторе Microsoft Office Word? - 12/08/2019 13:31
- Макрос для замены малой буквы первого слова на большую (изменение регистра) - 23/07/2019 21:00
- Как сохранить макросы в Word 2016? - 23/07/2019 10:37