Исправление языка для проверки орфографии


Сегодняшний пост поможет вам справиться с некорректным определением языка при проверке орфографии. 
Помочь убрать разноцветные подчеркивания решил Владимир Проворов, который и поделился с нами этим постом и финальной версией скрипта. Для исторической справедливости необходимо принести благодарность неизвестному автору скрипта, и Алексею Мурзову, который адаптировал скрипт для новых версий Word.  🙂

Одной из наболевших проблем офиса является несовпадение языка текста с фактическим. Появляются такие ошибки при копировании фрагментов текста из разных источников. При некорректно выставленном языке модуль проверки орфографии выделяет подобные слова.

 
В случае отдельного слова, достаточно просто поменять язык на нужный.


 
Если весь документ написан на одном языке, то тоже не составляет труда выделить весь текст и назначить нужный язык. Но что делать, если в большом русскоязычном документе встречается много англоязычных терминов? Выход один – писать скрипт.
Прежде всего, добавим панель разработчика в Word. Выбираем кнопку Настройка ленту.

 

Отмечаем вкладку Разработчик.


 
Создадим новый макрос в шаблоне Normal.dotm.


 
Вставляем процедуру и задаём модулю осмысленное имя. Сам скрипт имеет длинную историю и кочует из рук в руки, понемногу дорабатываясь. Изначально он был опубликован в одном из выпусков журнала Мир ПК, ещё в прошлом тысячелетии. Позже был переработан Алексеем Мурзовым для корректной работы в новых версиях Word. Идея скрипта максимально проста. Если слово состоит из латинских букв, то мы считаем его английским. Если из русских – русским. Сам код скрипта будет ниже.


 
Теперь создадим кнопку для быстрого запуска макроса.


 
Добавляем созданный нами макрос и нажимаем кнопку «Изменить», чтобы выбрать иконку и подпись для новой кнопки.
 
 

В результате в панели быстрого запуска появилась кнопка, запускающая макрос для исправления языка.

 

Проверяем работу новой кнопки.


 
Наш а тестовая фраза теперь полностью на русском языке и проходит проверку орфографии.


 
 
В приложенном файле вы найдете текст скрипта

текст скрипта.txt

Comments (15)

  1. Дмитрий Степанов, скрипт работает на Word 2003/2007/2010.

  2. Виталий,

    с украинским языком ситуация сложнее, и автоматически рассортировать слова в тексте, содержащим русские и украинские термины, скорее всего не получится. Если задача стоит в том, что надо на одном компьютере редактировать русско-английские и украино-английские документы, то можно доделать к скрипту запрос у пользователя языка для кириллических букв в начале работы скрипта. Если же задача разбирать русско-украинские тексты, то, боюсь, автоматически эту задачу не решить.

  3. Занятный "костыль"…А почему бы разработчикам не реализовать это внути самого Word?

  4. По поводу украинского – вопрос поняли, действительно сложно. Если что-нибудь придумаем – отпишусь

  5. dukedizel, к сожалению, задача различения английского и венгерского встречается с той же проблемой, что и различение русского и украинского. Если есть предложения как можно надёжно отличить слово на одном языке от другого при общих алфавитах, это очень поможет.

  6. Алексей,

    Строго говоря, потому что это именно костыль, и русскоязычным пользователям повезло, что наш язык сравнительно легко можно отличить от английского. Для других пар языков (английский-немецкий или русский-украинский) общего решения не получится.

  7. Виталий says:

    Спасибо за скрипт и детальные инструкции по установке. К сожалению у меня (боюсь, что не только) основная проблема с определением русского/украинского языков, а они оба состоят из "русских" (точнее кириллических) букв. Есть ли какая-то возможность корректного определения языка в таком случае?

  8. Андрей says:

    Согласен, т.к. очень часто стыкаюсь с этой проблемой.

    Было бы очень кстати

  9. dukedizel says:

    а как обстоят дела с 3 языками? русский, английский, венгерский? Как то можно добавить?

  10. Дмитрий Степанов says:

    Подскажите, а сие полезное решение может портироваться на Microsoft Office 2003

  11. abch says:

    В случае с определением русского/украинского языков, видимо, целесообразно писать два скрипта для текстов с преобладанием того или иного языка.

    Например, если в тексте большинство слов русских, то по умолчании считаем все слова русскими и ищем в тексте слова с уникальными украинскими буквами. Их будем считать украинскими.

    Такой алгоритм не отделит 100% украинских слов от русских, но позволит свести проблемы с определением языка к минимуму.

  12. Виталий says:

    Спасибо за ответ. Действительно сложно различить русско-украинские тексты (особенно учитывая, что есть достаточно слов, которые пишутся одинаково и только из контекста понятен язык).

  13. Myron says:

    Можете подсказать эквивалент "вкладка Разработчик" в англ версии ворда?

  14. Hud says:

    Спасибо большое! Я столько мучилась!

Skip to main content