по ссылке
http://www.codeproject.com/KB/recipes/csapi.aspx?msg=381286в строке int Language = 1051 - язык = 1951, русский язык в Microsoft обычно числится под номером &H0419, так??
Ну там мне не подъёмно в плане что язык Дельфи или вроде того
по ссылке
http://support.microsoft.com/kb/147818там хоть статья Как использовать Word 6,0 Spell Checker через OLE Automation в Visual Basic, уже ближе
Я программирую только на ВБА, других языков увы не знаю, попробовал прогнать этот код:
Dim oWDBasic As Object
Dim sTmpString As String
Set oWDBasic = CreateObject("Word.Basic")
oWDBasic.FileNew
oWDBasic.Insert Text1.Text ' ошибка 424 требуется объект
'если так, тогда ...
oWDBasic.Insert ActiveDocument.Text1.Text 'ошибка 438 объект не поддерживает этот метод
On Error Resume Next
oWDBasic.ToolsSpelling 'инструменты орфографии
oWDBasic.EditSelectAll 'правка выделить всё
oWDBasic.SetDocumentVar "MyVar", oWDBasic.Selection
sTmpString = oWDBasic.GetDocumentVar("MyVar")
Text1.Text = Left(sTmpString, Len(sTmpString) - 1)
MsgBox "Spell Check is complete" 'сообщение "Проверка орфографии завершена"
подскажите что нужно изменить в скрипте, чтобы его попробовать в ВБА, спасибо
Добавлено через 50 минут и 56 секунд:А если воспользоваться этим скриптом в ВБА, тогда на строке objDoc.CheckSpelling
виснет конкретно, и что то верится с трудом глядя на этот скрипт и скрипт моего предыдущего сообщения, что там реализовано
то что указано у меня в вопросе:
если бы слово "орфаграфия" было бы напечатано в документе Ворда, оно бы было подчёркнуто волнистой линией, если да то какой, красной или зелёной, ну и уж для полного счаться:
если оно было бы подчёркнуто зелёной линией, то какое сообщение "приготовил" Ворд
если оно было бы подчёркнуто красной линией,, какие варианты замены этого слова "приготовил" Ворд
Dim objWord As Object
Dim objDoc As Object
Dim strResult As String
'Create a new instance of word Application
Set objWord = CreateObject("word.Application")
Select Case objWord.Version
'Office 2000
Case "9.0"
Set objDoc = objWord.Documents.Add(, , 1, True)
'Office XP
Case "10.0"
Set objDoc = objWord.Documents.Add(, , 1, True)
'Office 97
Case Else ' Office 97
Set objDoc = objWord.Documents.Add
End Select
objDoc.Content = ActiveDocument.Text1.Text
objDoc.CheckSpelling
strResult = Left(objDoc.Content, Len(objDoc.Content) - 1)
If ActiveDocument.Text1.Text = strResult Then
' There were no spelling errors, so give the user a
' visual signal that something happened
MsgBox "The spelling check is complete.", vbInformation + vbOKOnly
End If
'Clean up
objDoc.Close False
Set objDoc = Nothing
objWord.Application.Quit True
Set objWord = Nothing
' Replace the selected text with the corrected text. It's important that
' this be done after the "Clean Up" because otherwise there are problems
' with the screen not repainting
ActiveDocument.Text1.Text = strResult
Добавлено через 46 минут и 56 секунд:И мой Ворд 2003 определяет как
Case Else ' Office 97
Set objDoc = objWord.Documents.Add
заходит в эту ветку
Добавлено через 45 минут и 28 секунд:ранее я писал:на строке objDoc.CheckSpelling виснет конкретно
понял почему, да потому что всё же это окно формы Ворда "Правописание"
то есть где есть строка типа этой: objDoc.CheckSpelling это мимо
То есть надо подправлять скрипт из моего Ответ #2 : Сегодня в 16:27
Подскажите пожалуйста