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

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

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

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


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

 

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


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


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


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


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

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

 

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


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


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

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

Comments

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

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

  • Anonymous
    January 01, 2003
    Занятный "костыль"...А почему бы разработчикам не реализовать это внути самого Word?

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

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

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

  • Anonymous
    January 01, 2003
    Myron, Developer.

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

  • Anonymous
    March 10, 2011
    Согласен, т.к. очень часто стыкаюсь с этой проблемой. Было бы очень кстати

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

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

  • Anonymous
    March 16, 2011
    В случае с определением русского/украинского языков, видимо, целесообразно писать два скрипта для текстов с преобладанием того или иного языка. Например, если в тексте большинство слов русских, то по умолчании считаем все слова русскими и ищем в тексте слова с уникальными украинскими буквами. Их будем считать украинскими. Такой алгоритм не отделит 100% украинских слов от русских, но позволит свести проблемы с определением языка к минимуму.

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

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

  • Anonymous
    August 20, 2015
    Спасибо большое! Я столько мучилась!

  • Anonymous
    June 12, 2017
    Могли бы выложить скрипт ещё! При скачивании ошибка, что нет файла