Как сделать проверку правописания в excel?

Проверка орфографии в текстовом редакторе MS Word — замечательная штука. Однако в «побратиме ворда», табличном редакторе MS Excel, этого добра явно не хватает. Причина конечно простая — таблицы предполагают сокращения, аббревиатуры и т.п. вещи, которые любая автоматическая проверка орфографии неизбежно «завернет». Тем не менее, это не повод расстраиваться. Потому что на практике, возможность включить в MS Excel проверку орфографии все-таки есть. Вернее, не проверку, а автозамену заведомо неправильно введенных слов и популярных опечаток.

как сделать проверку правописания в excel

Какая глупая ошибка… но почему Excel её не подчеркивает?!

Включаем русский язык в MS Excel

Самое смешное и одновременное грустное в этой истории, это то, что по умолчанию функция автозамены опечаток в MS Excel включена. Но по какой-то странной причине, на 9 из 10 проверенных мной офисных пакетов, языком для автозамены по умолчанию в MS Excel был английский.

как сделать проверку правописания в excel

исправляем язык по умолчанию в Excel

Поэтому, первым делом проверим как дела обстоят у нас. Открываем «Файл», «Параметры», и на вкладках слева, выбираем «Язык».

как сделать проверку правописания в excel

Вот теперь по умолчанию Exel разговаривает по-русски

Ну конечно, как я и думал. Не смотря на то, что про английский здесь не сказано ни слова, по умолчанию используется явно не русский. Укажем программе, что она не права. Выберите в списке русский язык и нажмите кнопку «Назначить» под текстовым полем в обоих окошках. Теперь проблема решена. Осталось нажать «Ок» и перезапустить MS Excel, чтоб изменения вступили в силу.

Включаем проверку орфографии (вернее исправление ошибок) в MS Excel

Теперь с чистым сердцем снова запускаем MS Excel и вновь открываем окно настроек «Параметры». Нас интересует вкладка «Правописание».

Нас больше всего интересует кнопка «Параметры автозамены». Наибольший интерес здесь представляет вкладка «Автозамена». Здесь можно внести одно косметическое изменение: в русском языке названия дней недели не пишутся с большой буквы, эту галочку можно без угрызений совести снять.

как сделать проверку правописания в excel

Если же вам часто приходится иметь дело с сокращениями (сокращ.), то лучше снять и галочку с пункта «Делать первые буквы предложений прописными», иначе MS Excel будет «исправлять» вас после каждой точки.

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

как сделать проверку правописания в excel

Ввод значений для автозамены в Excel

В моем примере выше «сабаку» на «собаку» он не заменит если ему не помочь. Мне это, к счастью, сделать не сложно — я ввожу в таблицу пару значений: правильное-неправильное слово и нажимаю «Добавить». Теперь все готово, можете проверять — достаточно набрать в ячейке «неправильное» слово и нажать Enter, как оно тотчас бдет заменено на правильное.

Не только исправление опечаток, но и автозамена!

Если вы успели заметить, список автозамены MS Excel можно использовать не только для исправления опечаток, но и для упрощения ввода длинных, часто используемых и устоявшихся выражений.

как сделать проверку правописания в excel

Заменяем сокращения и аббревиатуры в Excel на их полновесные аналоги

Например, я пишу в столбце слева аббревиатуру РФ, а справа — её расшифровку: Российская Федерация. Теперь мне достаточно ввести в ячейку всего две буквы, чтобы Excel автоматически «додумал» за меня всю «загаданную» фразу. Таким образом можно заранее определить фамилии/имена/должности сотрудников, адреса, наименования ведомств, и вообще, любую информацию, которая уместится в текстовую строчку.

При подготовке документов мы можем случайно совершить орфографические ошибки, которые могут испортить впечатление от проделанной работы. Инструмент проверки орфографии в Excel помогает избежать данную проблему.

Чтобы проверить орфографию текста в Excel, выбираем на панели вкладок Рецензирование -> Правописание -> Орфография:

как сделать проверку правописания в excel
По умолчанию Excel начинает проверку орфографии от местоположения курсора вправо и вниз.
Поэтому при достижении конца документа, Excel предложит проверить правописание с начала листа:

как сделать проверку правописания в excel
Если необходимо провести проверку правописания не всего текст листа, то можно выделить только нужный диапазон.
В случае нахождения ошибки, Excel предложит варианты написания исправленного слова:

как сделать проверку правописания в excel

  • Нет в словаре — слово с ошибкой;
  • Варианты — варианты исправления слова;
  • Пропустить — пропуск слова (переход к следующей ошибке);
  • Заменить — замена слова с ошибкой на выбранный исправленный вариант;
  • Добавить в словарь — добавление слова в словарь (например, при написании фамилий);
  • Автозамена — автоматическая замена слова (при вводе) на исправленный вариант.

Для детальной настройки исправления текста нажимаем на кнопку Параметры:

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

Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!

Доброе время суток Хаброжители.

Буквально на днях, ко мне и моим коллегам обратились «опытные пользователи» Excel. По специфике работы «опытные пользователи» часто используют офисный пакет для оформления документации. Как ни странно, таблицы Excel так же часто встречаются. Как и на Хабре, не допустимо выпускать документы с орфографическими ошибками. Стандартной возможности excel, по подсветке орфографических ошибок нет. В связи с этим я разработал Add-ins для Excel который бы реализовывал такой функционал.

Проверить наличие ошибок не так и сложно, есть стандартный SpellCheck, которым я и воспользовался. Реализовывать предполагается 2 части:

1) проверка уже заполненных ячеек

2) проверка в реальном времени при вводе.

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

Приступим:

Запускаем VisualStudio, создаем расширение для Excel 2007.

При регистрации плагина, подпишемся на событие Cell-Changed и вызовем нашу функцию (функция будет описана чуть позже).

private void ThisAddIn_Startup(object sender, System.EventArgs e)         {             //Подпишемся на событие изменения ячейки             Globals.ThisAddIn.Application.Cells.Worksheet.Change += new Excel.DocEvents_ChangeEventHandler(Worksheet_Change);         } void Worksheet_Change(Excel.Range Target)         {             SpellCheck.SpellChecker(Target);         } 

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

Создаем свою вкладку в Ribbon. Добавляем новый Item Ribbon (Visual Designer)/

Создадим новую вкладку, первую не трогаем, т.к. она зарезервирована.

Так же, добавим 2 кнопки проверки: проверка всей книги, и проверку текущего листа.

Пропишем в событиях кнопок следующий код

Для всей книги

private void OrfoCheckAll_Click(object sender, RibbonControlEventArgs e)         {             var excel = Globals.ThisAddIn.Application;             var wss = excel.Worksheets;             var app = excel.Application;             foreach (var ws in wss)             {                 var sheet = ws as Excel.Worksheet;                 if (sheet != null)                 {                     var range = sheet.UsedRange;                     foreach (var cll in range)                     {                         var cell = cll as Excel.Range;                         SpellCheck.SpellChecker(cell);                     }                 }             }         } 

Для листа

 private void OrfoCheckCurrentSheet_Click(object sender, RibbonControlEventArgs e)         {             var excel = Globals.ThisAddIn.Application;             var app = excel.Application;             var sheet = app.ActiveSheet as Excel.Worksheet;             if (sheet != null)             {                 var range = sheet.UsedRange;                 foreach (var cll in range)                 {                     var cell = cll as Excel.Range;                     SpellCheck.SpellChecker(cell);                 }             }         } 

Ну и самое главное, создадим статичный класс SpellCheck в котором и опишем нашу функцию проверки

public static class SpellCheck     {         public static void SpellChecker(Excel.Range Target)         {             var app = Globals.ThisAddIn.Application.Application;             string str = Target.Text.ToString();             if (app.CheckSpelling(str, Type.Missing, true) == false)             {                 foreach (string tmp in ((string)str).Split(' '))                 {                     if (app.CheckSpelling(tmp, Type.Missing, Type.Missing) == false)                     {                         if (Target.Comment == null)                         {                             Target.AddComment("Ошибка в слове " + tmp);                             Target.Characters.Font.ColorIndex = 3;                         }                         else                         {                             Excel.Characters c = Target.Comment.Shape.TextFrame.Characters(Type.Missing, Type.Missing);                             if (!c.Caption.Contains(tmp))                             {                                  c.Caption = c.Caption + " " + tmp;                             }                             Target.Characters.Font.ColorIndex = 3;                         }                     }                     else                     {                         Target.Characters.Font.ColorIndex = 0;                     }                 }             }             else             {                 if (Target.Comment != null)                 {                     if (Target.Comment.Shape.AlternativeText.Contains("Ошибка в слове "))                     {                         Target.Characters.Font.ColorIndex = 0;                         Target.Comment.Delete();                     }                 }             }          } 

После компиляции и загрузки плагина проверяем работу

Это всё чего не хватало Excel для автоматической проверки.

Как всегда, если у вас есть более интересные методы реализации, делитесь опытом

UPD: По просьбам хаброжителей, выложил готовый Плагин тут