Вопрос: SOS | Добавлено: 08.07.10 15:30 |
Автор вопроса: ![]() |
Уважаемые программисты!!!
Я пишу программу и мне надо анализировать кол-во ошибок в Word из программы на VB.net. Сначала решил сделать макрос с кодом: Sub Ошибки()
Dim c As Integer c = ActiveDocument.SpellingErrors.Count MsgBox c End Sub Но не знаю как вызвать макрос из приложения VB.net. Потом узнал про автоматизацию: Private _wdApplication As New Microsoft.Office.Interop.Word.Application 'Приложение Word
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 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 08.07.10 17:07 |
а документ не проще анализировать? а не макрос запускать. далее рекомендую гугль |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #2 | Добавлено: 08.07.10 17:09 |
Надо активный документ. Когда ворд открыт. |
Номер ответа: 3 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 08.07.10 17:15 |
ну програмно открой ворд |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #4 | Добавлено: 08.07.10 18:39 |
зачем мне его отрывать? Он уже открыт пользователем. И надо считывать данные об ошибках. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 457 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 09.07.10 21:19 |
а теперь в загрузке формы твоей проги:
таким образом ты получаешь доступ к запущенному экземпляру ворда. А в твоем коде начальном ты создавал НОВЫЙ экземпляр Ворда. Вот тогда в нем сначала нужно было открыть документ и затем его анализировать. Ну и потом либо закрывать программно, либо сделать
|
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #6 | Добавлено: 11.07.10 11:35 |
Спасибо. Буду разбираться. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 11.07.10 13:43 |
... |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #9 | Добавлено: 11.07.10 15:17 |
...
? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 457 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 11.07.10 21:41 |
так попробуй привязаться к ворду
|
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #11 | Добавлено: 12.07.10 15:17 |
Выводит ту же ошибку. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 4 Ответов: 457 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 12.07.10 16:50 |
не знаю. Если открыт ворд на момент загрузки формы, и открыт хоть один документ в нем, то должно работать.
Причем оба варианта. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #13 | Добавлено: 13.07.10 10:45 |
Спасибо. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #14 | Добавлено: 13.07.10 10:53 |
Всё работает!!! |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ICQ: 609276007 Вопросов: 24 Ответов: 195 |
Профиль | Цитата | #15 | Добавлено: 13.07.10 11:07 |
А можно узнать запущен ли ворд? Есть мнение, что можно с помощью ServiceController. Но не знаю как им пользоваться. |
|