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

Обновлено: 04.07.2024

Добрый день! Подскажите, пожалуйста, хочу сделать макрос: по тексту документа будет искать даты, если стоит год 2014, то дату пропускало, если стоит другая дата, то дату выделяло и делало примечание с текстом «Проверьте дату». Сделала макрос на поиск даты:

Dim k, m As String
k = "2014"

With ActiveDocument.Range(0, 0)

With Selection.Find
.Text = k
.MatchWildcards = True
Selection.Find.Execute

Do While Selection.Find.Found
Selection.Find.Execute

Максрос находит все даты по тексту «2014», но проблема возникает с условием, со-здать примечание (пока только поставить абзац написано в коде) на любой другой дате, делаю условие в макросе:

Dim k, m As String
k = "2014"

With ActiveDocument.Range(0, 0)

With Selection.Find
.Text = k
.MatchWildcards = True
Selection.Find.Execute

Do While Selection.Find.Found

2 Ответ от Alex_Gur 22.12.2014 12:37:25

Здесь, по крайней мене, кажется, не хватает одного оператора "End With"

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

3 Ответ от Alex_Gur 22.12.2014 12:51:28

Данный макрос добавляет примечание к строке "2015". Обратите внимание, что, если примечание уже есть, то новое примечание Word добавить не сможет. Нужно будет предварительно удалить предыдущее примечание.

Для того, чтобы узнать, есть ли примечание, используйте, например, материал этой страницы:
внешняя ссылка

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

4 Ответ от Alex_Gur 22.12.2014 13:01:25

Проверка на наличие примечания может производиться как-то так:

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

Похожие темы

Макрос для поиска даты

Если вы ищите мощный справочник и помощник для работы в Microsoft Word, то идеальным решением станет форум сайта Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: где в ворде 2007 изменить направление текста. Здесь можно обсудить со знатоками проблемы настроек различных функций Ворда под выполнение конкретной задачи, научиться создавать шаблоны, писать макросы, максимально эффективно организовывать свою работу с приложением. Наш сайт о Microsoft Office Word даст ответ про: пропала строка состояния ms excel 2010.

Настройкам и автоматизации посвящены два самые большие подраздела. Наиболее популярные вопросы вынесены отдельно. На портале о Microsoft Office Word вы узнаете про: где находятся ярлыки word. Также есть подфорум, где вы можете найти готовое решение многих проблем или поделиться своим. Заявку, с описанием требуемой задачи, на форуме тоже можно оставить. Наш сайт о Microsoft Office Word даст ответ про: в тексте ворда цифрі после скана как удалить.

Поиск и замена выставлены объектами Поиска и Замены. Объект Find доступен в объекте Selection и объекте Range. Действие поиска немного отличается в зависимости от того, имеется ли доступ к объекту Find из объекта Selection или объекта Range.

Поиск текста и его выбор

Если объект Find имеет доступ к объекту Selection, выбор меняется при обнаружении критериев поиска. В следующем примере выбирается следующее появление слова "Hello". Если конец документа достигнут до того, как будет найдено слово "Hello", поиск будет остановлен.

Объект Find содержит свойства, которые относятся к параметрам в диалоговом окне Найти и заменить. Можно установить отдельные свойства объекта Find или использовать аргументы с методом Execute, как показано в следующем примере.

Поиск текста без изменения выбора

Если объект Find имеет доступ к объекту Range, выбор не меняется, но диапазон переопределяется при обнаружении критериев поиска. В следующем примере обнаруживается первое появление слова "синий" в активном документе. Если операция поиска будет успешной, диапазон будет переопределяться и к слову "синий" применяется смелый форматирование.

В следующем примере выполняется тот же результат, что и в предыдущем примере, с использованием аргументов метода Execute.

Использование объекта Replacement

Объект Replacement представляет критерии замены для операции поиска и замены. Свойства и методы объекта Replacement соответствуют параметрам в диалоговом окне Найти и заменить (Изменить меню).

Объект Replacement доступен в объекте Find. В следующем примере все вхождения слова "привет" заменяется на "hello". Выбор изменяется при обнаружении критериев поиска, так как объект Find имеет доступ к объекту Selection.

В следующем примере удаляется жирный форматирование в активном документе. Свойство Bold — true для объекта Find и False для объекта Replacement. Чтобы найти и заменить форматирование, установите поиск и замените текст пустыми строками ("") и установите аргумент Format метода Execute к True. Выбор остается неизменным, так как объект Find имеет доступ к объекту Range (свойство Content возвращает объект Range).

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

В Word можно автоматизировать часто выполняемые задачи с помощью макросов. Макрос — это набор команд и инструкций, группируемых вместе в виде единой команды для автоматического выполнения задачи.

Чтобы сэкономить время при выполнении часто повторяющихся задач, объедините несколько действий в макрос. Сначала необходимо записать макрос. Затем вы сможете запускать его нажатием кнопки на панели быстрого доступа или с помощью сочетания клавиш. Способ запуска зависит от того, как вы настроите макрос.

Запись макроса, который запускается с помощью кнопки

В меню Вид последовательно выберите пункты Макросы и Записать макрос.

Запись макрокоманды

Введите имя макроса.

Поле имени макроса

Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).

Поле для выбора места сохранения макроса

Чтобы запускать макрос нажатием кнопки, выберите пункт Кнопка.

Выберите этот пункт, чтобы назначить макрос кнопке

Щелкните новый макрос (у него будет имя примерно следующего вида: Normal.NewMacros.<имя вашего макроса>), а затем нажмите кнопку Добавить.

Макрос и кнопка "Добавить"

Кнопка "Изменить" в окне "Настройка панели быстрого доступа"

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

Параметры кнопок в окне "Изменение кнопки"

Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.

Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.

Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.

Команда "Остановить запись"

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

Кнопка макроса на панели быстрого запуска

Чтобы запустить макрос, нажмите эту кнопку.

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

В меню Вид последовательно выберите пункты Макросы и Записать макрос.

Запись макрокоманды

Введите имя макроса.

Поле имени макроса

Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить изменения в указано значение Всех документов (Normal.dotm).

Поле для выбора места сохранения макроса

Чтобы запускать макрос с помощью сочетания клавиш, выберите пункт Клавиатура.

Выберите этот пункт, чтобы назначить макрос сочетанию клавиш на клавиатуре

Введите сочетание клавиш в поле Новое сочетание клавиш.

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

Чтобы использовать этот макрос во всех новых документах, проверьте, что в поле Сохранить в указано значение Normal.dotm.

Теперь необходимо записать все шаги макроса. Выбирайте команды или нажимайте клавиши для каждого шага задачи. Word будет записывать все, что вы щелкаете мышью, и все клавиши, которые вы нажимаете.

Примечание: Во время записи макроса для выделения текста используйте клавиатуру. Макрос не записывает выделения, сделанные с помощью мыши.

Чтобы остановить запись, в меню Вид последовательно выберите пункты Макросы и Остановить запись.

Команда "Остановить запись"

Чтобы запустить макрос, нажмите сочетание клавиш.

Чтобы запустить макрос, нажмите кнопку на панели быстрого доступа, нажмите сочетание клавиш или запустите макрос из списка Макросы.

В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.

В пункте Имя макроса выберите в списке макрос, который вы хотите запустить.

Чтобы сделать макрос в одном документе доступным во всех новых документах, добавьте его в шаблон Normal.dotm.

Откройте документ, в котором содержится макрос.

В меню Вид последовательно выберите пункты Макросы и Просмотр макросов.

Копка "Организатор" в поле "Просмотр макросов"

Щелкните макрос, который вы хотите добавить в шаблон Normal.dotm, а затем нажмите кнопку Копировать.

В меню Файл последовательно выберите пункты Параметры и Настроить ленту.

В пункте Выбрать команды из выберите пункт Макросы.

Выберите нужный макрос.

В пункте Настройка ленты выберите вкладку и настраиваемую группу, в которую вы хотите добавить макрос.

Если у вас нет настраиваемой группы, то нажмите кнопку Новая группа. Затем нажмите кнопку Переименовать и введите имя настраиваемой группы.

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

Дважды нажмите кнопку OK.

На вкладке Разработчик в группе Код нажмите кнопку Макросы.

В поле Имя макроса введите имя нового макроса.

Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Word, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.

В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.

Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.

Вы можете записать последовательность действий или создать макрос с нуля, введя код на языке Visual Basic для приложений в редактор Visual Basic.

Примечание: Чтобы работать с макросами в приложении Office Word 2007, необходимо отобразить вкладку Разработчик.

Выберите категорию Основные.

В группе Основные параметры работы с Word установите флажок Показывать вкладку "Разработчик" на ленте.

Примечание: Лента входит в Пользовательский интерфейс Microsoft Office Fluent.

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

В поле Имя макроса введите имя нового макроса.

Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, на вкладке Разработчик в группе Код нажмите кнопку Макросы. В списке Макросы из выберите вариант Команды Word.

В списке Макрос доступен для щелкните шаблон или документ, в котором нужно сохранить макрос.

Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

Введите описание макроса в поле Описание.

Выполните одно из указанных ниже действий.

Начните запись. Чтобы начать запись макроса, не связывая его с кнопкой на панели быстрого доступа или сочетанием клавиш, нажмите кнопку ОК.

Создайте кнопку. Чтобы связать макрос с кнопкой на панели быстрого доступа, сделайте следующее:

Щелкните кнопке.

В группе Настройка панели быстрого доступа выберите документ или все документы, для которых требуется добавить макрос на панель быстрого доступа.

Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

В диалоговом окне Выбрать команды из выберите макрос, который требуется записать, и нажмите кнопку Добавить.

Чтобы настроить кнопку, нажмите кнопку Изменить.

В поле Символ выберите нужный символ для кнопки.

В поле Отображаемое имя введите имя макроса, которое должно отображаться.

Чтобы начать запись макроса, нажмите кнопку ОК два раза.

На панели быстрого доступа будет показан выбранный символ. Заданное имя отображается при наведении указателя на символ.

Назначьте сочетание клавиш. Чтобы назначить макросу сочетание клавиш, сделайте следующее:

Выберите пункт Клавиатура.

В списке Команды выберите макрос, который требуется записать.

В поле Новое сочетание клавиш введите любую последовательность клавиш и нажмите кнопку Назначить.

Чтобы начать запись макроса, нажмите кнопку Закрыть.

Выполните действия, которые следует включить в макрос.

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

Чтобы остановить запись макрокоманд, выберите команду Остановить запись в группе Код.

Изменение сочетания клавиш для макроса

Выберите команду Настройка .

Рядом с полем Сочетания клавиш нажмите Настройка.

В списке Категории выберите пункт Макросы.

В списке Макросы выберите макрос, который нужно изменить.

Щелкните поле Новое сочетание клавиш и нажмите клавиши, которые следует назначить.

В поле Текущие сочетания проверьте, не используется ли назначаемое сочетание для выполнения другой задачи.

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

Важно: Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

На вкладке Разработчик в группе Код выберите пункт Макросы.

В списке Имя макроса выберите макрос, который необходимо запустить.

На вкладке Разработчик в группе Код нажмите кнопку Макросы.

В поле Имя макроса введите имя нового макроса.

Примечание: Если новому макросу присвоить то же самое имя, что и макросу, встроенному в Office Word 2007, новые макрокоманды будут выполняться вместо встроенных. Чтобы просмотреть список встроенных макросов, выберите пункт Команды Word в списке Макросы из.

В списке Макросы из щелкните шаблон или документ, в котором нужно сохранить макрос.

Чтобы макрос был доступен во всех документах, выберите Normal.dotm.

После запуска редактора Visual Basic могут потребоваться дополнительные сведения о работе с языком Visual Basic для приложений. Для получения сведений выберите в меню Help (Справка) пункт Microsoft Visual Basic Help (Справка по Microsoft Visual Basic) или нажмите клавишу F1.

Чтобы быстро выполнять часто повторяющиеся задачи, в классической версии Word вы можете объединить шаги в макросы, а затем запускать их одним щелчком мыши. В Word в Интернете такие задачи придется выполнять вручную.

Если у вас есть Word, нажмите кнопку Открыть в Word, чтобы открыть документ в Word.

Изображение команды "Открыть в настольном приложении"

Затем следуйте инструкциям для классических версий Word.

Если вы запустите макрос в Word и сохраните документ, вы увидите результаты работы макроса при повторном открытии документа в Word в Интернете.

По просьбам читателей сайта Александр Витер разработал свой вариант макроса пакетной замены фрагментов текста в документах Word. Об этом его просили в комментариях к заметке Поиск и замена текста во многих документах одновременно .

Александр предлагает скачать (ниже) бета-версию его разработки кто заинтересован в подобном решении. Вот, что он предлагает.

Это третья бета-версия макроса пакетной замены. Теперь ее нужно тестировать.

Что уже сделано:

1. Доработан механизм поиска в документе. Текст можно заменять как в основном тексте, так и в надписях, в гиперссылках и объектах WordArt.

2. Добавлены опции «Учитывать регистр» и «Слово целиком».

3. Если файл доступен только для чтения, то он просто пропускается. Запись об этом делается в лог-файл. Таким образом, можно работать и с документами в локальной сети.

4. Глубина вложенности каталогов, в которых можно искать файлы, удовлетворяющие шаблону, не ограничена.

5. Каждый сеанс поиска\замены записывается в подробный лог-файл с указанием документа, проведенных в нем замен, затраченного времени и настроек замены.

6. В процессе поиска\замены отображается прогресс-бар.

Я со своей стороны провел тесты, у меня ошибок не возникает. Возможные ошибки я постарался предусмотреть, но над этим еще нужно будет работать.

Итак, пожалуйста скачивайте макрос и пробуйте его в деле. Все замечания по макросу (ошибки, предложения) пишите в комментариях к этой заметке.

Вы можете помочь в развитии сайта, сделав пожертвование:

--> Или помочь сайту популярной криптовалютой:

BTC Адрес: 1Pi3a4c6sJPbfF2sSYR2noy61DMBkncSTQ

ETH Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

LTC Адрес: LUyT9HtGjtDyLDyEbLJZ8WZWGYUr537qbZ

USDT (ERC-20) Адрес: 0x7d046a6eaa1bd712f7a6937b042e9eee4998f634

Яндекс Деньги: 410013576807538

А тут весь список наших разных крипто адресов, может какой добрый человек пожертвует немного монет или токенов - получит плюсик в карму от нас :) Благо Дарим, за любую помощь! -->

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

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

С интересом читаю ваш проект. Спасибо за полезный труд!

У меня есть пара вопросов по Word. Думаю, многим будут они интересны. К сожалению, не разобрался, как можно опубликовать эти вопросы на сайте? Если не затруднит, подскажите, пожалуйста.

С уважением, Николай


Николай, вопросы (и ответы) публикую на сайте я сам. А задать их вы можете через наш Форум.

а) Не хватает подробной информации в логе: сколько замен сделано, сколько и каких строк найдено.

б) Нужен то ли запрос нf запись итогового файла, то ли предусмотреть бэкап.

в) Хотелось бы поиска/замены с использованием регулярных выражений: например, мне надо не просто найти строки, а убить их, не оставляя пустых абзацев. Найти строки и заменить на них же, но с добавлением своей строки. Найти и заменить формат. Ну и всё остальное, что может показаться "бешенством с жиру".

А в предложенном варианте работает как зверь. Автору респект!

Спасибо за макрос, работает хорошо.

Присоединяюсь к пожеланиям Игоря (см.выше).

Ещё раз спасибо.

Я думал с самого начала о возможности записи в лог-файл количества замен. Но это очень сильно затормозит работу макроса (приблизительно на 40%), потому что встроенного механизма, чтобы получить это число, у Word'а нет;

Перезапись исходного файла я сделаю в виде опции в диалоговом окне;

Регулярные выражения стоят у меня в TODOlist, но не доходят руки

Огромный респект Автору.

Программка супер - то, что доктор прописал.

Поработав немного понял, что мне катастрофически не хватает подробной информации в логе: сколько замен сделано и каких строк найдено.

В моем случае можно пожертвовать временем но инфу о количестве замен нужно знать.

Немного доработал программку:

1) Возможность выбора замены только в основном тексте (мне лично пригодилось);

2)Добавляет запись в лог о количестве сделанных замен или отсутствии таковых;

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

Обработано 10 документов

Затрачено 413,047 сек.

Обработано 10 документов

Затрачено 537,281 сек.

Разница 120 сек - для такого огромного объема в моем случае приемлемо.

Кому интересна версия с указанными доработками вот ссылка .

Автору еще раз ОГРОМНОЕ спасибо.

Обилие комментариев в исходном коде - очень помогло.

Может я не совсем по теме, но подскажите можно ли написать такой макрос, который находит фрагмент текста и копирует его в новый файл, и в месте с фрагментом копирует символов 50 вверх и вниз от фрагмента. Это возможно?


Можно, например таким макросом

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

Поясните подробнее, что нужно сделать.

Александр, здравствуйте. Нужно чтобы при загрузки макроса появлялось окно InputBox для ввода данных(слово или число) которые нужно найти, затем шел поиск этого слова или числа, а затем скопировать найденные данные в новый документ с диапазоном в 100 символов от указанного слова или числа, то есть 50 символов до и 50 после.

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

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

Нужно просто изменить способ задания строки. В моём макросе строку

нужно заменить на такую:

Если же нужно, чтобы все результаты поиска записывались в один и тот же документ, тогда строку

нужно поставить перед блоком

Александр, здравствуйте. Не происходит поиска по всему документу все рекомендации выполнил. Ввожу слово,создается документ, в нем диапазон в 100 символов и все дальше искать не хочет.

Замените этот блок

Извините, что может не по теме =(

У меня проблема следующего характера, есть к примеру таблица с данными (номер договора(акта), Ф.И.О и тд), а также эти договора в .doc формате (к примеру 100 шт.), существуют ли такие флаги(якоря), которые можно расставлять по тексту(договора,акта) в соответствии с данными в таблице. Т.е. если я изменяю данные в таблице например ФИО, то эти данные меняються и в тех документах и местах в документах, где стоят эти так называемые флаги(якоря).

Ответьте если сможете.

Андрей, специально для Вас сделано «Слияние»

В каком Word'е вы работаете

Спасибо огромное, за вашу отзывчивость и профессионализм, выручили так выручили. Еще раз спасибо.

Предыдущий макрос был с ошибкой, это рабочий, но ищет не по всему документу. Что нужно сделать? Подскажите пожалуйста.

стас, я же уже сказал, что нужно изменить в предыдущем ответе на Ваш вопрос

Александр спасибо за понимание, нашел свою ошибку, сейчас все работает как надо. Макрос написанный вами можно использовать телекоммуникации для отсева данных в трейсе. Еще раз СПАСИБО.

Мне макрос очень понравился, спасибо автору.

На подходе следующая версия этого макроса с учётом замечаний Марка Розенберга. Будут представлены две версии: для Word 2003 и ниже и для Word 2007 и выше.

Посмотрел макрос SrcAndRpl_Beta3_m1.rar.

Для перебора всех частей документа (в т.ч. все надписи в группах и на полотне), могу посоветовать конструкцию попроще:

В колонтитулах надписи не обрабатываются, придется извращаться.

Спасибо за внимание к моей работе. В новой версии, которую я пообещал от имени Комментатор 5, надписи в колонтитулах обрабатываются

Александр, спасибо за макрос он очень облегчает людям работу!

у меня вопрос: хочу заменить ФОРМАТЫ, а не текст. такое возможно?

допустим у меня во всех файлах заголовки начинаются вот в таком формате

"обычный, шрифт 15 или 17, синий"

а я хочу менять это все только на формат "заголовок 2"

1. у меня все заголовки синего цвета. можно брать по цвету

2. либо только первую строку во всех текстах поменять на заголовок 2, думаю это уже отдельная работа.

Приходится работать с массой документов. Для окочательного однообразия оформление должно быть таким:

Весь текст шрифтом TimesNew Roman

Абзац 6 рт до и после ко всему документу, за исключением таблиц.

Первая строка: 12 рт до, 3 рт - после, жирн;

Вторая строка: 0;0, курсив.

все ПРОПИСНЫЕ, жирн;

12 pt - до, 12 pt - после

это все для директории, в которой 250-300 файлов.

Может кто подскажет прямой макрос. Заранне спасибо.

Ответ на: ми-007"ьфшдюкг

Здравствуйте. Все здорово все нравится. но у меня возникает ошибка при поиске и замене строки длиной более 255 символов.

ругается Run-time error 5854, слишком длинный строковый параметр. Можно решить этот вопрос каким-нибудь способом?

Ограничение в 255 символов заложено в диалоге Найти и заменить и в соответствующем методе VBA. В шаблоне VolRepl Beta для замены можно использовать любой фрагмент документа, но длина строки поиска ограничена.

Можно написать макрос, который будет искать первые 255 символов искомого текта и сравнивать следующие символы с искомыми, пока не будет совпадения.

Я не стал этим заниматься, поскольку такая задача встречается редко.

Здравствуйте, Марк! Все просто супер - экономите мне кучу времени на правке документов.

Маленькое пожелание - можно в выводимом отчете указывать количество замен в каждом документе?

Добрый день! Не могли бы вы подсказать по следующей ситуации? Есть документ, который имеет вид:

необходимо в нем найти слово (или сочетание символов), затем удалить строку содержащую это слово, а также все строки выше и ниже в этом фрагменте, чтобы осталось только это:

И так если надо заменить последовательность символов которая меньше 255 символов, на последовательность более 255 символов сделал такой макрос, может кому и пригодится.

Правда, одну проблему я так и не поборол пока. Можно спросить?

Есть .DOC-файл, в котором около тысячи картинок, вставленных в него через "Вставить -> Рисунок -> Из файла -> Связать с файлом". То есть картинки в DOC-файле не хранятся, а находятся в отдельной папке \Images, и все подключены через "Правка\Связи. ". Можно ли осуществить поиск этих всех картинок в тексте и замену каждой картинки на текстовую строку вида

Да, забыл сказать. Word2003. Rартинки - все BMP и PNG, но будут впоследствии преобразованы только в BMP. Впоследствии, Adobe Robohelp (8.0) for Word на основании имеющегося в моём DOC-файле текста и записей вида создаёт HTML help (связанный набор HTML файлов) по заданному мной шаблону. Алгоритм поиска картинок и их замены на в Robohelp присутствует. В виде макроса под названием ConvertDocument. Но доступ к этому макросу для пользователей Robohelp запрещён, а набор его возможностей крайне ограничен. В частности, именно этот нехороший макрос ВСЕ повторяющиеся картинки из папки, связанные с DOC-файлом, заменяет сперва на (первое вхождение), а затем (если в DOC-файле картинка привязана второй, третий, N-ный раз) - присваивает им имена своим автонумератором - , , и т.д., в порядке следования картинки в тексте. После этого, понять какая картинка была откуда, крайне сложно. Надо сказать, что макрос ConvertDocument в Robohelp - многофункциональный. Параллельно с поиском-заменой по телу DOC-файла, он ещё и создаёт в папке Images/ новые картинки в формате BMP (если оригинальный связанный файл был в ином, нежели BMP, формате). Правда, в не очень высоком разрешении, в каком - одному Robohelp понятно, но это разрешение ВСЕГДА ниже чем у оригинальных файлов. Все эти BMP картинки (как , так и автонумерованные) - потом точно в таком же виде, с теми же именами, в виде JPG или GIF файлов (это уже пользователь решает), будут использованы в HTML-help'е. Самое неприятное, что иногда (непонятно почему?) макрос ConvertDocument от Adobe Robohelp, вообще тупит - запись или ВООБЩЕ НЕ ПОЯВЛЯЕТСЯ в теле документа.

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

1) если одинаковые связанные картинки встречаются неоднократно в теле документа, неуправляемый макрос Robohelp'а включает очень неудобную автонумерацию. Когда картинок много, ручная замена их имён с на впоследствии очень трудоёмка.

2) Имея подобный макрос, достаточно самому проследить, чтобы в папке Images находились только BMP-файлы, нужного размера и разрешения, имеющие понятное имя. Записи об этом в виде уже будут созданы.

Читайте также: