Страница: 1 | 2 |
Вопрос: SOS
Добавлено: 08.07.10 15:30
Автор вопроса: Dan | ICQ: 609276007
Уважаемые программисты!!!
Я пишу программу и мне надо анализировать кол-во ошибок в Word из программы на VB.net.
Сначала решил сделать макрос с кодом:
Dim c As Integer
c = ActiveDocument.SpellingErrors.Count
MsgBox c
End Sub
Но не знаю как вызвать макрос из приложения VB.net.
Потом узнал про автоматизацию:
Private _wdDocument As Interop.Word.Document = _wdApplication.ActiveDocument 'Документ Word
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
lblWord.Text = (_wdDocument.SpellingErrors.Count)
End Sub
Примечание: для Word 2007
Но код не не работает.
Подскажите пожалуйста почему ошибка. И как можно заменить этот ужасный код.
Заранее спасибо.
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #1
Добавлено: 08.07.10 17:07
а документ не проще анализировать? а не макрос запускать. далее рекомендую гугль
Номер ответа: 2
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #2
Добавлено: 08.07.10 17:09
Надо активный документ. Когда ворд открыт.
Номер ответа: 3
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #3
Добавлено: 08.07.10 17:15
ну програмно открой ворд
Номер ответа: 4
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #4
Добавлено: 08.07.10 18:39
зачем мне его отрывать? Он уже открыт пользователем. И надо считывать данные об ошибках.
Номер ответа: 5
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #5
Добавлено: 09.07.10 21:19
а теперь в загрузке формы твоей проги:
таким образом ты получаешь доступ к запущенному экземпляру ворда.
А в твоем коде начальном ты создавал НОВЫЙ экземпляр Ворда. Вот тогда в нем сначала нужно было открыть документ и затем его анализировать. Ну и потом либо закрывать программно, либо сделать
Номер ответа: 6
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #6
Добавлено: 11.07.10 11:35
Спасибо. Буду разбираться.
Номер ответа: 7
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #7
Добавлено: 11.07.10 12:15
Пишет:
An error occurred creating the form. See Exception.InnerException for details. The error is: Данная команда недоступна, так как не открыт ни один документ.
Хотя ворд открыт.
Номер ответа: 8
Автор ответа:
VbStarter
ICQ: 357911808
Вопросов: 118
Ответов: 1340
Web-сайт:
Профиль | | #8
Добавлено: 11.07.10 13:43
...
Номер ответа: 9
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #9
Добавлено: 11.07.10 15:17
?
Номер ответа: 10
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #10
Добавлено: 11.07.10 21:41
так попробуй привязаться к ворду
Номер ответа: 11
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #11
Добавлено: 12.07.10 15:17
Выводит ту же ошибку.
Номер ответа: 12
Автор ответа:
Дмитрий Юпатов
Вопросов: 4
Ответов: 457
Web-сайт:
Профиль | | #12
Добавлено: 12.07.10 16:50
не знаю. Если открыт ворд на момент загрузки формы, и открыт хоть один документ в нем, то должно работать.
Причем оба варианта.
Номер ответа: 13
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #13
Добавлено: 13.07.10 10:45
Спасибо.
Номер ответа: 14
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #14
Добавлено: 13.07.10 10:53
Всё работает!!!
Номер ответа: 15
Автор ответа:
Dan
ICQ: 609276007
Вопросов: 24
Ответов: 195
Профиль | | #15
Добавлено: 13.07.10 11:07
А можно узнать запущен ли ворд? Есть мнение, что можно с помощью ServiceController. Но не знаю как им пользоваться.