Статьи из блога

Макрос вставки разрыва страницы перед некоторым словом

Сергей спрашивает:

Как реализовать макрос, который бы по тексту расставлял разрыв страницы в определенных местах, например, перед словом "Отчет"?

Можно использовать следующий макрос:

Sub insBreakPage()
'Вставка разрывов страниц перед словом "Отчет"
With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Forward = True
    .Wrap = wdFindContinue
    .MatchCase = True 'Учитываем регистр искомого слова
    .Text = "Отчет" 'ищем слово
    .Replacement.Text = "^m^&^p"  'производим замену
    .Execute Replace:=wdReplaceAll
End With
End Sub

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 11

  1. Михаил
    02.05.2008 в 10:08 | #1

    не работает у меня этот макрос, ошибру пишет. А так, он мне бы очень пригодился...

  2. 02.05.2008 в 14:33 | #2

    Михаил, что именно за ошибка вам выдается?

  3. Михаил
    12.05.2008 в 06:23 | #3

    Прошу прощения, Антон. Макрос скорее всего работает. Просто я искал макрос аналогичного действия для Excel в поисковике, а натолкнулся на ваш и пытался его вставить в excel.

  4. Алёна
    10.03.2009 в 12:28 | #4

    как сделать, чтоб перед первым попавшимся словом вставлять разрыв?

  5. Артем
    22.08.2009 в 20:59 | #5

    Подскажите пожалуйста, как изменить этот макрос так, чтобы разрыв страницы происходил ПОСЛЕ каждого пятого найденного слова Отчет?

  6. 23.08.2009 в 14:55 | #6

    Артем, попробуйте вот такой макрос:

    Sub insBreakPageAfter5word()
    'Вставка разрывов страниц после каждого 5-го слова "Отчет"
    Dim i As Long
    Selection.HomeKey Unit:=wdStory  'переходим в начало документа
    With Selection.Find
       .ClearFormatting
       .Replacement.ClearFormatting
       .Forward = True
       .Wrap = wdFindContinue
       .MatchCase = True 'Учитываем регистр искомого слова
       .Text = "Отчет" 'ищем слово
       'Запускаем цикл поиска
       Do While .Execute
          i = i + 1   'считаем найденные слова
          If i = 5 Then
             Selection.Collapse wdCollapseEnd
             Selection.InsertBreak wdPageBreak
             i = 0 'обнуляем счетчик для нового отсчета
          End If
       Loop
       MsgBox "Закончено"
    End With
    End Sub

  7. Артем
    23.08.2009 в 15:57 | #7

    Спасибо ОГРОМНОЕ. Все работает просто СУППЕР!

  8. Николай
    07.10.2012 в 18:09 | #8

    Спасибо за код!

    Но после вставки макроса и его запуска выдает ошибку 450.

    При запуске Debug выделяет желтым "With Selection.Find".

    Что я неправильно делаю?

  9. 12.10.2012 в 11:48 | #9

    Обратитесь на наш форум, там помогут.

  10. Дмитрий
    27.03.2017 в 02:23 | #10

    Как сделать чтоб разрыв страницы вставлялся на каждой странице автоматически?

  11. Сергей
    23.03.2018 в 13:12 | #11

    Добрый день.

    Вы могли бы подсказать как поменять код, чтобы разрыв проставлялся перед КАРТИНКОЙ?

    Спасибо.

Оставьте комментарий!

(обязательно)

^ Наверх