Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 16:31   #1
domo22
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 18
По умолчанию Поиск текста между ограничителями, смена стиля и копирование

Нужен макрос (word 2003), который делает следующее:
- находит в тексте текст "строка1"
- находит в тексте текст "строка2"
- выделяет текст от "строка1" до "строка2", не включая сами "строка1" и "строка2"
- меняет стиль выделенного текста на заданный стиль
- копирует выделенный текст куда-то в буфер с нового абзаца
- повторяет предыдущие шаги до конца файла
- вставляет скопированные куски текста в новый документ.

Желательно, конечно, чтобы макрос мог работать по выбору - либо обработать весь файл сразу, либо спрашивать на каждом вхождении, менять ли его стиль и копировать или искать далее. Но если это сложно, то хотя бы весь файл сразу. Пример прилагается.

Помогите, пожалуйста.
Вложения
Тип файла: doc Смена стиля и копирование.doc (27.0 Кб, 13 просмотров)
domo22 вне форума Ответить с цитированием
Старый 29.11.2012, 00:51   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Пробуйте
Код:
Sub Макрос1()
Dim r As Range, doc1 As Document, doc0 As Document, en&
Set doc0 = ActiveDocument
Set r = doc0.Range
en = r.End
Set doc1 = Documents.Add
While r.Find.Execute("\[*\]", False, False, True, False, False, True, wdFindStop, False, , False)
    Set r = doc0.Range(r.Start + 1, r.End - 1)
    If r.Text Like "*####*" Then
        doc1.Range.InsertAfter r.Text & vbCr
        r.HighlightColorIndex = wdYellow
        r.Font.Italic = True
    End If
    Set r = doc0.Range(r.End + 1, en)
Wend
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 29.11.2012, 15:58   #3
domo22
Пользователь
 
Регистрация: 28.03.2009
Сообщений: 18
По умолчанию

Во-первых, сразу же спасибо, т.к. данный макрос работает и делает то, что показано в примере. Однако, только в данном конкретном случае с примером и не использует стиль и строки поиска. Хотелось бы по возможности чуть его подправить в плане большей гибкости, добавив использование строк поиска и стиля:
Dim Строка1 As String, Строка2 As String, МойСтиль As Word.Style

и дальше использовать эти переменные.

Можете так сделать?
domo22 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск и копирование данных между листами в 2 книгах staniiislav Microsoft Office Excel 6 21.03.2012 14:30
не работает смена стиля через Javascript makar3000 JavaScript, Ajax 3 12.05.2011 14:06
Смена стиля шрифта Pein95 Общие вопросы Delphi 3 01.03.2011 15:05
Макрос - копирование текста между повторяющимися объектами polepropilen Microsoft Office Word 2 27.05.2010 12:21
копирование текста между двумя словами pavel.lug Microsoft Office Word 14 28.08.2009 14:27