Как сделать проверку правописания в excel?
Проверка орфографии в текстовом редакторе MS Word — замечательная штука. Однако в «побратиме ворда», табличном редакторе MS Excel, этого добра явно не хватает. Причина конечно простая — таблицы предполагают сокращения, аббревиатуры и т.п. вещи, которые любая автоматическая проверка орфографии неизбежно «завернет». Тем не менее, это не повод расстраиваться. Потому что на практике, возможность включить в MS Excel проверку орфографии все-таки есть. Вернее, не проверку, а автозамену заведомо неправильно введенных слов и популярных опечаток.
Включаем русский язык в MS Excel
Самое смешное и одновременное грустное в этой истории, это то, что по умолчанию функция автозамены опечаток в MS Excel включена. Но по какой-то странной причине, на 9 из 10 проверенных мной офисных пакетов, языком для автозамены по умолчанию в MS Excel был английский.
Поэтому, первым делом проверим как дела обстоят у нас. Открываем «Файл», «Параметры», и на вкладках слева, выбираем «Язык».
Ну конечно, как я и думал. Не смотря на то, что про английский здесь не сказано ни слова, по умолчанию используется явно не русский. Укажем программе, что она не права. Выберите в списке русский язык и нажмите кнопку «Назначить» под текстовым полем в обоих окошках. Теперь проблема решена. Осталось нажать «Ок» и перезапустить MS Excel, чтоб изменения вступили в силу.
Включаем проверку орфографии (вернее исправление ошибок) в MS Excel
Теперь с чистым сердцем снова запускаем MS Excel и вновь открываем окно настроек «Параметры». Нас интересует вкладка «Правописание».
Нас больше всего интересует кнопка «Параметры автозамены». Наибольший интерес здесь представляет вкладка «Автозамена». Здесь можно внести одно косметическое изменение: в русском языке названия дней недели не пишутся с большой буквы, эту галочку можно без угрызений совести снять.
Если же вам часто приходится иметь дело с сокращениями (сокращ.), то лучше снять и галочку с пункта «Делать первые буквы предложений прописными», иначе MS Excel будет «исправлять» вас после каждой точки.
Если с этим покончено, смотрим на самое интересное — на длинный список внизу, состоящий из двух столбиков. В левом помещены сокращения и опечатки, а в правом — на что они будут заменяться автоматически при вводе. Список довольно большой, однако, разумеется не полный и содержит только часто встречающиеся слова.
В моем примере выше «сабаку» на «собаку» он не заменит если ему не помочь. Мне это, к счастью, сделать не сложно — я ввожу в таблицу пару значений: правильное-неправильное слово и нажимаю «Добавить». Теперь все готово, можете проверять — достаточно набрать в ячейке «неправильное» слово и нажать Enter, как оно тотчас бдет заменено на правильное.
Не только исправление опечаток, но и автозамена!
Если вы успели заметить, список автозамены MS 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: По просьбам хаброжителей, выложил готовый Плагин тут