Проверка орфографии с помощью Word
Гайдар И. Магдануров
Зачем делать то, что уже сделано другими? Поэтому для проверки орфографии в ваших приложениях можно использовать один из самых популярных текстовых редакторов - Word от Microsoft. На примере создания простого приложения я покажу, как это сделать. Создаете стандартный проект, натягиваете не форму text1, multiline=true и command1. Теперь самое важное - подключаете библиотеку Microsoft Word 9.0 Object Library (это для Office 2000, для `97 - Microsoft Word 7.0 Object Library), весит она порядка 536 KB, но таскать ее за собой не надо, т.к. уж Office установлен если не у всех, то Word уж точно почти у всех. Кстати в этой библиотеке еще много полезных свойств, которые есть в Word, но это уже к теме не относится, да и теперь уже вы сами можете с помощью Object Browser в VB, посмотреть их. Использование аналогично тому, которое я приведу здесь далее. Так, я отвлекся, после того, как подключили библиотеку добавьте такой код:
Dim WordApplication As Object
Private Sub Command1_Click()
Set WordApplication = New Word.Application
WordApplication.Documents.Add
WordApplication.Visible = False
WordApplication.Selection.Text = Text1.Text
WordApplication.ActiveDocument.CheckSpelling
Text1.Text = WordApplication.Selection.Text
WordApplication.ActiveDocument.Close wdDoNotSaveChanges
WordApplication.Quit
Set WordApplication = Nothing
End Sub
Теперь поясню. Вначале мы объявляем переменную типа объект. Все она объявлена и может работать. При нажатии на кнопку происходит следующее: создается новый объект Word.Application, добавляется новый документ, который делается невидимым пользователя, в этот документ копируется содержимое текстового окна нашего приложения, проверяется орфография. Если во время проверки обнаружится ошибка, то появится стандартное вордовское окошко с предложением вариантов. После проверки обновленный или оставленный без изменений текст возвращается в текстовое окно нашего приложения, а
Word закрывается без запроса на сохранения, т.к. указана константа
wdDoNotSaveChanges, потом закрывается сам
Word, а память очищается от нашего объекта. Примечания:
Set WordApplication = New Word.Application
Set WordApplication = Nothing
Нужно располагать именно в процедуре проверки, т.к. это позволит избежать сообщения об ошибке при повторной попытки проверки за сеансом, т.к. если поместить в событие загрузки и выгрузки формы, то объект будет создавать ошибку. Для использования этого метода нужно, чтобы на машине клиента стоял Office или как минимум Word