Как в экселе проверить ошибки в словах
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Проверка орфографии и грамматики на другом языке в Excel и Access
Excel для Microsoft 365 Access для Microsoft 365 Excel 2021 Access 2021 Excel 2019 Access 2019 Excel 2019 для Mac Excel 2016 Access 2016 Excel 2016 для Mac Excel 2013 Access 2013 Excel 2010 Access 2010 Еще. Меньше
Если вы хотите добавить текст на языке, отличном от того, который вы обычно используете, Office может проверить орфографию и грамматику этого текста.
Сведения о том, как использовать средства проверки правописания, включить или отключить проверку орфографии и грамматики, см. в статье Проверка орфографии и грамматики в Office 2010 и более поздних версиях.
Примечание: Если вам требуется ввести текст на языке, не основанном на латинице (например, на русском или китайском), вы можете переключить раскладку с помощью языковой панели. Когда вы изменяете раскладку клавиатуры, Office автоматически изменяет язык проверки правописания. Дополнительные сведения см. в статье Включение или переключение языка раскладки клавиатуры.
Чтобы изменить язык в процессе проверки орфографии в базе данных или книге, выберите другой язык словаря:
- На вкладке Рецензирование в Excel или Главная в Access нажмите кнопку Орфография.
- В области или диалоговом окне Орфография выберите нужный язык в списке Язык словаря.
Совет: Диалоговое окно «Орфография» не откроется, если ошибки правописания не обнаружены. Если это произойдет при попытке изменить язык словаря, допустите ошибку намеренно, чтобы оно открылось.
Если нужный язык недоступен, может потребоваться установить языковой пакет Office. Дополнительные сведения см. в статье Language Accessory Pack для Office 2016.
Если вы хотите изменить язык редактирования, используемый по умолчанию для проверки орфографии, см. статью Изменение языка в меню и средствах проверки правописания в Office.
Как проверить орфографию в Excel

К сожалению, проверять орфографию в файлах Excel так, как мы это делаем в Word — с подчеркиванием неправильно написанных слов красными линиями, — невозможно (если вам известен такой способ, расскажите нам о нем!). Excel изначально создавался с расчетом на работу прежде всего с числами, потому проверке орфографии в нем Microsoft уделила мало внимания.
Тем не менее, проверка орфографии в нем, конечно, возможна — с помощью диалогового окна Проверка орфографии. Это стандартный метод во всех программах Microsoft Office.
Чтобы запустить проверку орфографии в Excel, щелкните вкладку Рецензирование и нажмите на ней кнопку Орфография, или просто нажмите клавішу F7. Появится привычное диалоговое окно Орфография со стандартными вариантами действий: Пропустить, Пропустить все, Добавить в словарь, Изменить, Изменить все, Отмена.
- Если вам нужно проверить орфографию в конкретной ячейке , выберите эту ячейку и установите в нее текстовый курсор, выполнив двойной щелчок, затем запустите проверку орфографии клавишей F7.
- Если вам нужно проверить орфографию в нескольких ячейках , выделите их с помощью клавиши SHIFT, затем запустите проверку орфографии клавишей F7.
- Если вам нужно проверить орфографию на всем листе , выберите любую ячейку, НЕ выполняя двойной щелчок на ней и НЕ располагая текстовый курсор внутри нее, затем запустите проверку клавишей F7. Обратите внимание, что при этом будут проверяться также все комментарии, заголовки страниц, колонтитулы и текст на графических элементах.
Примечание: Excel не проверяет орфографию в ячейках, которые содержал формулы.
Автоматическая проверка орфографии в EXCEL
Буквально на днях, ко мне и моим коллегам обратились «опытные пользователи» 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)
Больше при регистрации ничего делать не будем. Проверку всей книги оставим пользователю по вызову.
Создаем свою вкладку в 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[str.IndexOf(tmp) + 1, tmp.Length].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[str.IndexOf(tmp) + 1, tmp.Length].Font.ColorIndex = 3; > > else < Target.Characters[str.IndexOf(tmp) + 1, tmp.Length].Font.ColorIndex = 0; >> > else < if (Target.Comment != null) < if (Target.Comment.Shape.AlternativeText.Contains("Ошибка в слове ")) < Target.Characters[str.IndexOf(str), str.Length].Font.ColorIndex = 0; Target.Comment.Delete(); >> > >
После компиляции и загрузки плагина проверяем работу
Это всё чего не хватало Excel для автоматической проверки.
Как всегда, если у вас есть более интересные методы реализации, делитесь опытом
UPD: По просьбам хаброжителей, выложил готовый Плагин тут
