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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2012, 15:22   #1
wyfinger
 
Регистрация: 27.12.2011
Сообщений: 7
По умолчанию MultiReplace - Word макрос поиска и замены текста

Представляю Вашему вниманию макрос, сделал за два дня, нужно было по работе.

http://multireplace.narod.ru/

Жду отзывов, конструктивных комментариев и советов.

Описание:

Макрос расширенного поиска/замены для Microsoft Office Word

Возможности:
1. Поиск/замена по списку, т.к. пакетный поиск
Когда нужно поменять сразу множество значений в документе очень
удобно пользоваться мультипоиском, достаточно ввести в поле для ввода
набор строк поиска (выражений и ли масок, если используются регулярные
выражения или подстановочные символы), разнеся их на разные строки.
Во второе поле ввода необходимо ввести строки замены;

2. Поиск/замена по регулярному выражению
Используется объект VBScript.RegExp с присущими ему недостатками,
так для замены на подвыражения используется знак "$" вместо общепринятого
символа "\";
Необходимо учитывать, что при использовании регулярных выражений замена
осуществляется с конца документа в начало. Это сделано, чтобы сократить
вычислительную работу.
Общая информация: http://ru.wikipedia.org/wiki/Регулярные_выражения
Калькулятор регулярных выражений: http://regexpres.narod.ru/calculator.html

3. Поиск/замена по подстановочным символам
Регулярные выражения - это очень удобно и максимально гибко, но сложно,
поэтому ребята из Microsoft реализовали свое убогое подобие регулярных
выражений в семействе продуктов Office под названием Подстановочные символы.
Это похоже на маски поиска файлов, где символ "?" обозначает один любой символ,
а символ "*" - любое количество любых символов, в том числе и ноль. И так далее.
Использование подстановочных символов может быть полезно и удобно, но нужно
иметь ввиду, что даже на простых выражениях Word нередко выдает фразу типа
"Слишком сложное выражение для поиска", нужно всегда проверять.
Кроме того, поиск с подстановочными символами всегда регистрозависимый;
Общая информация: http://office.microsoft.com/ru-ru/wo...001230392.aspx

4. Обработка файлов по списку
Если требуется произвести (замену в тексте) сразу нескольких документов открывать
каждый из них, заполнять поля ввода и осуществлять замену весьма неудобно.
Макрос позволяет осуществлять потоковую обработку группы файлов. Чтобы использовать
этот режим щелкните по кнопке "Несколько файлов", введите в поле ввода список файлов
с полными путями (по файлу на строке, уже реализовал Drag&Drop, но из-за тормознутости
самого языка VBA эта функция работает нестабильно, пока отключил).
После заполнения списка файлов окно можно закрыть, а в главном окне макроса нажать
кнопку "Замена" (рядом с кнопкой "Несколько файлов").
При этом файлы будут открываться Word по очереди, в каждом будет осуществляться замена.

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

Установка.
Макрос состоит из 3 объектов: модуль SRUnit и две формы SRForm и SRFiles. Все эти три объекта
Необходимо перенести в шаблон Normal. Для этого открываем редактор Visual Basic for
Application и перетаскиваем названные выше модули на шаблон Normal.
Видеоинструкция по установке доступна на http://multireplace.narod.ru/
Также потребуется включить выполнение макросов, иначе с пакетной обработкой файлов будут
Проблемы. Включить выполнение макросов нужно в меню "Параметры->Центр управления безопасностью",
далее выбираем кнопку "Параметры центра управления безопасностью->Параметры макросов", нас
интересует режим "Включить все макросы".
Видеоинструкция также доступна на http://multireplace.narod.ru/
wyfinger вне форума Ответить с цитированием
Старый 02.06.2012, 03:41   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Нам кабанам...

Цитата:
Сообщение от wyfinger Посмотреть сообщение
сделал за два дня
Где ж это вы так поднатаскались?
Sasha_Smirnov вне форума Ответить с цитированием
Старый 02.06.2012, 14:35   #3
wyfinger
 
Регистрация: 27.12.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Где ж это вы так поднатаскались?
Там, вроде, нет ничего сложного.
Мне просто нужно было сделать замену наименований объектов (более 20 замен) в группе более чем из 300 документов. Само собой задумаешься об автоматизации.
Потом прикрутил регулярные выражения, на будущее. Там довольно оригинальный прием используется.

Возможно мой код не оптимален. Целью моей публикации является отлов багов и оптимизация. Но я не вижу конструктивной критики.
Печально
wyfinger вне форума Ответить с цитированием
Старый 03.06.2012, 03:20   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Да понимаете, вы пришли в вигвам с электрочайником. Розетка нет!

То, что вам за два дня "само собой", профессиональным операторам ЭВМ только снится...

(Вот мои темы тоже страдают дефицитом отзывов, не говоря уже о критике!)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.06.2012, 16:53   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Пример диалога

Цитата:
Сообщение от wyfinger Посмотреть сообщение
Представляю Вашему вниманию макрос, сделал за два дня, нужно было по работе.

Жду отзывов, конструктивных комментариев и советов.
Покажите, как это может выглядеть, в моей теме: http://programmersforum.ru/showthread.php?p=715823
Sasha_Smirnov вне форума Ответить с цитированием
Старый 18.06.2012, 13:23   #6
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 975
По умолчанию Люди вы опоздали на 13 лет

Люди вы опоздали на 13 лет

Нечто подобное было создано
в далёком 1999году (ещё при старом режиме)
потом улучшено в 2002году и в 2004году
и с тех пор без изменений

В приложении: кино экранки
Неужели вы ЭТО видите ВПЕРВЫЕ???
Вложения
Тип файла: rar da78WORD.rar (85.7 Кб, 71 просмотров)
Тип файла: rar da78MACRO.rar (250.2 Кб, 73 просмотров)
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 18.06.2012, 15:17   #7
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

Список файлов моно создать и так
Код:
Public FileList As Variant

Public Sub GetFileList()
Dim FD As FileDialog
Dim lst() As String
    Set FD = Application.FileDialog(msoFileDialogFilePicker)
    On Error Resume Next
        With FD
            .Title = "Список файлов"
            .ButtonName = "Создать"
            With .Filters
                .Clear
                .Add "Все файлы", "*.*"
                .Add "Файлы Word", "*.doc, *.dot, *.docx, *.docm, *.dotx, *.dotm"
            End With
        End With
        FD.Show
        ReDim Preserve lst(1 To FD.SelectedItems.Count)
            For i = 1 To FD.SelectedItems.Count
                lst(i) = FD.SelectedItems(i)
            Next i
            FileList = lst
End Sub
Пименов Александр вне форума Ответить с цитированием
Старый 26.06.2012, 07:57   #8
wyfinger
 
Регистрация: 27.12.2011
Сообщений: 7
По умолчанию

Цитата:
Сообщение от сфинкс Посмотреть сообщение
Люди вы опоздали на 13 лет

Нечто подобное было создано
в далёком 1999году (ещё при старом режиме)
потом улучшено в 2002году и в 2004году
и с тех пор без изменений

В приложении: кино экранки
Неужели вы ЭТО видите ВПЕРВЫЕ???
Я совсем не понял о чем Вы? Вы имеете ввиду какой-то набор макросов, который имеет функциональность схожую с моим решением? как называются эти макросы? из того, что на видео я не понял.


Макрос слегка обновился – теперь кнопка «Поиск далее» работает логичнее.
http://multireplace.narod.ru/
Макрос: http://bit.ly/N0cNNY
Макрос + видео по установке: http://bit.ly/JORL58
wyfinger вне форума Ответить с цитированием
Старый 26.06.2012, 10:30   #9
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

А с другой стороны радует, что есть люди болеющие не только за нашу сборную по футболу
Пименов Александр вне форума Ответить с цитированием
Старый 26.06.2012, 11:27   #10
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 975
По умолчанию

несмотря на то что своими макросами пользуюсь еженедельно,
названия своим макросам я так и не придумал
но вспоминаю что аналог нашим аналогам назывался Перестройка

мои макросы Word переводили чертежи Autocad автоматически.
моя новейшая подобная разработка: переработка страниц ЖЖ
для синтезаторов речи, удаляющая ненужные слова типа "ответить".

да и если снимать экранки Hypercam2 то размеры меньше.
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос замены в word Foma-78 Microsoft Office Word 3 19.06.2012 05:33
Интерфейс поиска и замены текста в richTextBox delias Общие вопросы .NET 4 29.10.2010 18:36
Макрос для поиска и замены слов на слова с верхним подчеркиванием salvafion Microsoft Office Word 4 07.09.2009 19:14
программа поиска и замены+копирования текста 666dvg999 Общие вопросы C/C++ 4 05.10.2008 20:01
Макрос для поиска/замены Davidoff Microsoft Office Excel 1 20.01.2007 16:01