Выделение каждого тысячного символа (Microsoft Word)
Хакану нужен макрос, который считает символы (без пробелов) в текстовом документе и выделяет каждую 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 [Выделение каждого тысячного символа]
.