Хакану нужен макрос, который считает символы (без пробелов) в текстовом документе и выделяет каждую 1000-ю букву. Создать такой макрос довольно просто — вам просто нужно проверить все символы в документе по очереди и считать только те, которые не являются пробелами. Вот небольшой простой макрос, который сделает это:

Sub CountThousands1()

Dim J As Long     Dim X As Integer

X = 0     With ActiveDocument         For J = 1 To .Characters.Count             If .Characters(J) <> " " Then X = X + 1             If X = 1000 Then                 .Characters(J).Select                 Selection.Range.HighlightColorIndex = wdYellow                 X = 0                 Beep             End If         Next J     End With End Sub

Макрос достаточно прост; он проверяет коллекцию Characters, которая содержит все отдельные символы в документе. Проблема с макросом в том, что он медленный — очень медленный. Word не очень эффективен при изучении отдельных символов таким образом. (Похоже, что каждый раз, когда вы ссылаетесь на член коллекции Characters, Word должен заново проверять все символы с начала документа.)

Другой подход — просто пройтись по документу, расширяя выделение, пока не дойдете до 1000 непробельных символов.

Sub CountThousands2()

Dim X As Integer     Dim sRaw As String     Dim sProc As String

Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     While Len(Selection) = 1000         sRaw = Selection         sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

While X > 0             Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend             sRaw = Selection             sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

Wend         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend         Selection.Range.HighlightColorIndex = wdYellow         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     Wend End Sub

Начните этот макрос с точки вставки в начале документа. Затем макрос захватывает тысячу символов, назначает этот выбор переменной (sRaw), создает переменную, из которой удалены все пробелы (sProc), а затем вычисляет длину sProc. Если оно меньше 1000, то выбор увеличивается на количество символов, которое было коротким, и процесс повторяется. Если выделение содержит 1000 непробельных символов, то устанавливается выделение, и макрос переходит к следующему блоку символов.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (7870) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Highlighting_Every_Thousandth_Character [Выделение каждого тысячного символа].