Word VBA: Как сделать зацикливание в макросе?

Автор Антик, 11 февраля 2018, 23:39

Антик

Добрый вечер. Есть Есть макрос, который форматирует текст. Пару букв один шрифт, следующие три буквы - другой шрифт и т.д. Но, когда макрос запускаю, то он редактирует только одну строчку. Как это сделать для всего громадного документа? СПАСИБО ЗАРАНЕЕ!!!

Пробовал и через if... then...else, но как-то видимо не то писал..

Мои попытки:
Макрос 1
Sub Макрос3()
'
' Макрос3 Макрос
'
'
 
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=11, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=10, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=6, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=6
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveLeft Unit:=wdCharacter, Count:=69
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Size = 11
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=11
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=12
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
End Sub
[свернуть]
Макрос 2
Sub Макрос()
 
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=11, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=10, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=6, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=6
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveLeft Unit:=wdCharacter, Count:=69
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Size = 11
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=11
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=12
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
   
    Do
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=11, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=10, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=6, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=7, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=6
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik2"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Name = "Antik3"
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
    Selection.Font.Name = "Antik4"
    Selection.MoveLeft Unit:=wdCharacter, Count:=69
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=8
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.Font.Size = 11
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=4, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=3, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=5
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.Font.Size = 14
    Selection.MoveRight Unit:=wdCharacter, Count:=2
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=11
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=12
    Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend

    Loop Until Selection.Find.Execute = False
     
   
End Sub
[свернуть]

Макрос 2 останавливает выполнение, либо в конце 5-6 строчки, либо в конце абзаца...

Администратор


Антик

Задача: отформатировать весь текст большого документа.
Создал макрос на первые пару строк текстового документа. Необходима заставить выполняться макрос не на последующие две строчки, а на весь документ!!! Вместо «Antik2» 3,4 можете подставить свои шрифты

Администратор

Что именно должен делать макрос? Если макрос должен делать много действий, то давайте сначала обсудим одно или небольшое кол-во действий.

Антик

Я уже писал. Есть много текста. Я взял и отредактировал первую строчку. Запись макроса! В редактировании было следующее: первые 2 буквы - шрифт номер 1, следующие три буквы - шрифт номер 2, следующие две буквы шрифт номер 3. И так до конца строки в хаотичном порядке.

После того, как форматирование шрифтом окончено, приступил к форматированию размеров шрифта. Так же в хаотичном порядке. Первые три буквы 14 шрифт, затем 10 букв 12 шрифт, затем одна буква 11 шрифт и так до конца строчки.

Затем мне нужен будет буквенный интервал в хаотичном порядке. Стоп запись макроса!

При применении этого макроса, редактирование идет максимум до конца следующей строчки. Необходимо, чтобы макрос сам прошел и отредактировал весь текст до конца документа!

Администратор

В программе "Word" есть такое понятие "абзац". Если включить режим непечатаемых символов, то справа абзаца есть символ абзаца в виде буквы "Р", которая направлена влево.
В вашем файле нужно работать со строками или с абзацами?

В каком виде у вас файл? Или файл секретный и вы не можете его показать?

Антик

Да содержание текста абсолютно не важно. Возьмите любую сказку или рассказ. Строка - то над чем я работал. Если проще сделать через абзац, то давайте попробуем.

Администратор

Сначала вы изменяете имя шрифта у некоторых символов.
Затем вы ставите курсор в начало строки и изменяете размер шрифта у некоторых символов?
Так вы записывали макрос?

Антик

Не совсем так. Несколько букв например таймс нью роман, потом несколько - ариал, затем несколько букв - тахома. И так до конца абзаца. Потом у некоторых букв меняем размер шрифта. И так до конца.

Администратор

По такому принципу можно делать. То есть вам надо дописать для каждого движения вправо проверку, не достигнут ли конец файла:
If Selection.MoveRight(Unit:=wdCharacter, Count:=4, Extend:=wdExtend) = 0 Then Exit Function
Если достигнут конец файла, то движение вправо "MoveRight" вернёт ноль.

Кроме Selection можно использовать другое. В ворде не обязательно выделять, чтобы что-то сделать с фрагментом. Но есть исключения, когда необходимо выделить.

Ускорить макрос может режим "Черновик".

Макрос
Sub макрос()
   
    ' Откл. монитора (может это ускорит макрос и чтобы не мерцало).
    Application.ScreenUpdating = False
   
    '1. Изменение имени шрифта.
    ' Переход в начало файла.
    ActiveDocument.Range(0, 0).Select
    Do
        If ChangeFontName = False Then
            Exit Do
        End If
    Loop

    '2. Изменение размера шрифта.
    ' Переход в начало файла.
    ActiveDocument.Range(0, 0).Select
    Do
        If ChangeFontSize = False Then
            Exit Do
        End If
    Loop
   
    ' Сообщение.
    Application.ScreenUpdating = True
    MsgBox "Готово.", vbInformation
   
End Sub

Private Function ChangeFontName() As Boolean
 
    If Selection.MoveRight(Unit:=wdCharacter, Count:=4, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Name = "Antik4"
    If Selection.MoveRight(Unit:=wdCharacter, Count:=2) = 0 Then Exit Function
    If Selection.MoveRight(Unit:=wdCharacter, Count:=11, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Name = "Antik3"
    If Selection.MoveRight(Unit:=wdCharacter, Count:=2) = 0 Then Exit Function
    If Selection.MoveRight(Unit:=wdCharacter, Count:=10, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Name = "Antik2"
    If Selection.MoveRight(Unit:=wdCharacter, Count:=1) = 0 Then Exit Function
    If Selection.MoveRight(Unit:=wdCharacter, Count:=6, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Name = "Antik4"
   
    ' Пометка, что не дошли до конца файла.
    ChangeFontName = True

End Function

Private Function ChangeFontSize() As Boolean

    If Selection.MoveRight(Unit:=wdCharacter, Count:=2, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Size = 14
    If Selection.MoveRight(Unit:=wdCharacter, Count:=3) = 0 Then Exit Function
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Size = 10
    Selection.Font.Size = 14
    If Selection.MoveRight(Unit:=wdCharacter, Count:=8) = 0 Then Exit Function
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    If Selection.MoveRight(Unit:=wdCharacter, Count:=2, Extend:=wdExtend) = 0 Then Exit Function
    Selection.Font.Size = 14

    ' Пометка, что не дошли до конца файла.
    ChangeFontSize = True
   
End Function
[свернуть]

[вложение удалено администратором]

Антик

АДМИНИСТРАТОРУ ГРОМАДНЫЙ РЕСПЕКТ!!! СПАСИБО БОЛЬШУЩЕЕ!!!
Немного чуть более расширенный Макрос для текста в 295 листов выполнялся порядка 12 минут!! Все отредактировал и ниразу ничего не пропустил и ниразу не самозациклился!

Администратор

В режим Черновик переходили перед запуском макроса? Я об этом писал в ответе 9.

Антик

Нет, в черновик не входил! Не было надобности.

Администратор

В этом режиме может быстрее работать. Не 12 минут, а например 5 минут.

Антик

Большое спасибо, совсем скоро учту это.