Ошибка 5387 при подсчёте кол-ва слов.

Программирование на Visual Basic for Applications
kuksha
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 17.07.2006 (Пн) 11:27

Ошибка 5387 при подсчёте кол-ва слов.

Сообщение kuksha » 22.04.2009 (Ср) 10:29

MS office 2003 в стандартной установке по умолчанию, БЕЗ сервиспаков.
Количество слов в открытом документе я получаю через VBA так:
Код: Выделить всё
    Set myRange = ActiveDocument.Content
    KolvoSlovS = myRange.ReadabilityStatistics(1).Value

У меня всё работает, но у некоторых пользователей выскакивает ошибка:
Код: Выделить всё
Run-time error 5387
Не удаётся запустить программу проверки грамматики.

Отладчик при этом останавливается на второй строке приведённого отрывка.

Вылечилось установкой справки для VBA(в установке по умолчанию она не ставится). Но это скверный выход. Такая простая задача не должна зависеть от наличия справки(?!) и от сервиспаков, к тому же я заведомо не могу требовать их наличия (это отдельная песня :( - просьба не обсуждать).

Соответственно 2 вопроса:
1) как ещё можно подсчитать количество слов в документе (кроме цикла с тупым перебором всего текста)? Для версий Word2000 и выше.Ведь есть и другие способы. Например меню Сервис->Cтатистика выдаёт другое число, то есть пользуется другой функцией.
2) может я неправильно использовал этот способ? Или это известная ошибка и лечится именно сервиспаками и прочими обвесками?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Ошибка 5387 при подсчёте кол-ва слов.

Сообщение dr.MIG » 22.04.2009 (Ср) 11:19

kuksha писал(а): как ещё можно подсчитать количество слов в документе

Это смотря что ты вкладываешь в понятие «слово». Посмотри в сторону:
1.
Код: Выделить всё
Set myRange = ActiveDocument.Range
KolvoSlovS = myRange.ComputeStatistics(wdStatisticWords)

2. Words.Count
Salus populi suprema lex

kuksha
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 17.07.2006 (Пн) 11:27

Re: Ошибка 5387 при подсчёте кол-ва слов.

Сообщение kuksha » 22.04.2009 (Ср) 12:19

Спасибо! Как раз зашёл сообщить, что помогла строка
Код: Выделить всё
KolvoSlovS = ActiveDocument.ComputeStatistics(Statistic:=wdStatisticWords)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

    TopList