orfografia

Редактор від Microsoft, перевіряючи орфографію, підкреслює невідомі слова або слова із можливими помилками для того, щоб на них звернути увагу. Але якщо ваш текст має російські та англійські слова або українські та англійські, то мова може визначатися неправильно і Word підкреслить всі слова. Часто така ситуація виникає при копіюванні та наступному вставлянні тексту з інтернету.

Можна вручну виділити текст, тоді в рядку стану вибрати потрібну мову (дивіться скриншот знизу).

orfografia

orfografia

Але в такому випадку всі українські (російські) слова не будуть підкреслені, а англійські будуть. Тепер, щоб все було як потрібно, ми маємо виділити кожне англійське слово (речення) та вказати для нього мову. А якщо тексту на 200 сторінок? Краще даний процес автоматизувати. Так і зробимо. Використаємо готовий макрос для російської мови та виправимо його для використання з українською.

orfografia

Код макросу для української та англійської мови:

'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. Ідемо у «Вид → Макросы → Макросы».

orfografia

orfografia

3. Даємо ім’я для макроса (будь-яке, без пробілів) та натискаємо «Создать».

orfografia

4. Відкриється вікно візуального редактора Microsoft Visual Basic. Там вже буде текст із ім’ям вашого макроса (у мене на скриншоті видно, що ім’я макроса PrepForSpell):

orfografia

Sub PrepForSpel()
'
' PrepForSpel Макрос
'
'

End Sub

5. Видаляємо даний код та замінюємо на скопійований раніше.

orfografia

6. Ідемо у «Вид → Макросы → Макросы», знаходимо наш доданий (PrepForSpell) та натискаємо «Выполнить». Після закінчення роботи макроса всі пусті стрічки будуть замінені. У разі успішного виконання макроса буде виведене повідомлення як на скриншоті нижче.

orfografia

orfografia

orfografia

Для російської мови використовуйте аналогічний код:

'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

orfografia

Зверніть увагу на те, що маючи бажання використовувати 2 макроси (для української та російської), потрібно задати для них різні імена.