Отображение текущего количества слов (Microsoft Word)
Word отображает в строке состояния различную информацию, которая может помочь вам во время письма. Например, в строке состояния отображается количество страниц в документе и номер строки на текущей странице. Было бы полезно, если бы в строке состояния отображалось количество слов в документе, когда вы печатаете.
Однако такая функция не встроена в Word. Строку состояния нельзя изменить с помощью макроса, кроме как показать или скрыть всю панель или написать на нее сообщение. Кодирование макроса, который постоянно записывает сообщение в строку состояния, означало бы, что обычная информация не будет отображаться, поэтому решение, использующее строку состояния, вероятно, неприемлемо.
Можно написать макрос, который будет непрерывно проверять количество слов в документе, а затем отображать результат в другой области документа, например в строке заголовка или кнопке панели инструментов. В зависимости от типа вашей системы такое решение может быть неприемлемым; вам нужно будет провести несколько тестов, чтобы убедиться, что это так. Внутренний код для вычисления количества слов в документе довольно медленный, особенно когда ваши документы становятся больше. Это означает, что постоянная проверка количества слов может замедлить работу всей вашей системы, возможно, до неприемлемой степени.
Помня об этом, рассмотрите следующий набор макросов:
Sub AutoExec() NumberOfWords End Sub Sub NumberOfWords() Dim lngWords As Long Dim myRange As Range With Word.Application If .Windows.Count > 0 Then Set myRange = ActiveDocument.Content lngWords = myRange.ReadabilityStatistics(1).Value .Caption = Format(lngWords, "##,##0") & " words - Microsoft Word" Else .Caption = "Microsoft Word" End If .OnTime Now + TimeValue(OnTm(lngWords)), "NumberOfWords" End With End Sub Private Function OnTm(ByVal lngWd As Long) As String Select Case lngWd \ 1000 Case 0 To 10 OnTm = "00:00:01" Case 11 To 20 OnTm = "00:00:05" Case 21 To 30 OnTm = "00:00:10" Case 31 To 40 OnTm = "00:00:15" Case Else OnTm = "00:00:20" End Select End Function
В этот набор включены три макроса, каждый из которых выполняет свою задачу. Первый макрос с именем AutoExec будет запускаться автоматически при запуске Word. Его единственная цель — в первый раз вызвать следующий макрос NumberOfWords.
Макрос NumberOfWords — это рабочая лошадка этого набора. Он проверяет, открыты ли в Word какие-либо окна. Если да, то он вызывает внутреннюю кодировку Word, чтобы определить количество слов в документе. Затем он форматирует вывод и отображает его в строке заголовка окна.
Если нет открытых окон, макрос просто отображает «Microsoft Word» в строке заголовка.
Последнее, что делает NumberOfWords, — это сообщает себе, когда запускать снова. Он делает это с помощью функции OnTime в VBA, устанавливая время перезапуска в пределах следующих 20 секунд. Здесь в игру вступает третий макрос OnTm. Он проверяет количество слов в текущем документе и определяет интервал между запусками макроса NumberOfWords. Если в вашем документе 10 000 слов или меньше, макрос запускается каждую секунду. Если есть от 11 000 до 20 000 слов, то он выполняется каждые пять секунд и так далее.
Причина этой проверки была рассмотрена ранее в этом совете: вычисление количества слов и форматирование информации в строке заголовка может занять некоторое время (в терминологии VBA), а если ваш документ большой, это может вызвать нежелательные и заметные задержки. в обновлении вашего документа. При желании вы можете поиграть с кодировкой в функции OnTm, чтобы определить наилучшую разбивку задержки для типов документов, которые вы используете.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1608) применим к Microsoft Word 97, 2000, 2002 и 2003.