Друзья! У меня есть объявление для всех, кто работает с программой Microsoft Excel.
Я хочу вам порекомендовать хорошую бесплатную рассылку об Excel: Excel - Готовые формулы.
Что публикуется в рассылке:
готовые формулы для облегчения работы в Excel,
советы по эффективному использованию Excel,
ссылки на полезные ресурсы об Excel,
описание сочетания клавиш Excel с примерами,
ответы на вопросы: "Можно ли с помощью Excel ...?", "Как формулами Excel сделать ...?", или ответы на просьбы: "Помогите с Excel!", "Не могу разобраться с Excel...".
Вопросы автору рассылки можно задавать также на специальном форуме рассылки.
Если у вас есть идея или совет по эффективному использованию редактора Word, то пишите мне через форму контактов на сайте. Любые ваши дельные советы и подсказки будут размещены в очередных выпусках рассылки и на сайте (с указанием вашего авторства).
Поиск и замена текста во многих документах одновременно
Предположим, у вас есть несколько документов, в которых вам необходимо изменить определенный (одинаковый во всех документах) фрагмент текста на другой текст. Открывать эти документы по одному и вручную менять текст - утомительно. Ладно, если документов всего пять. А если их десять или того больше? Без средств автоматизации не обойтись.
Я для подобных задач пользуюсь отличной программой @Text Replacer от отечественных разработчиков. Эта программа предназначена для многострочного поиска и замены текста в различных текстовых файлах с учетом регистра и игнорируемых символов (перевод строки, пробел и т.д.).
Однако существует и решение на VBA (макрос), позволяющее искать и заменять фрагмент текста во всех файлах какой-либо папки. Этот макрос - Replace text on a batch of files - разработан несколькими уважаемыми людьми и опубликован на сайте Graham Mayor (Microsoft MVP).
Работает макрос следующим образом.
Запускаете редактор Word и закрываете все открытые документы. Впрочем, макрос сам проверит наличие открытых документов и закроет, если обнаружит их.
Выполняете макрос. В процессе работы макроса открываются несколько диалоговых окон (с заголовками на английском языке, но назначение окон интуитивно понятно), в первом из которых вы сначала указываете папку с вашими файлами-документами. Далее открываются следующие окна:
- введите искомый текст и нажмите кнопку ОК (рисунок).
- введите заменяющий текст и нажмите кнопку ОК (рисунок)
Макрос осуществит все необходимые действия по замене текстовых фрагментов в ваших документах, открывая и закрывая их последовательно друг за другом.
Сергей интересуется: Как с помощью макроса сделать обтекание картинки текстом?
Сделать обтекание текстом возможно. Но лишь после того, как рисунок будет переконвертирован в графический объект. Здесь следует объяснить, что в редакторе Word различаются два типа графических объектов: рисунки (например, фотографии или иные объекты, вставленные в документ из файла) и, собственно, объекты (автофигуры, надписи и другие объекты, которые создаются в самом редакторе или в векторных редакторах).
Так вот, если нужно сделать обтекание текстом для рисунка, то первоначально его необходимо переконвертировать. Ниже представлен код, который выделяет первый рисунок в документе и делает для него обтекание.
Если нужно сделать обтекание для УЖЕ выделенного рисунка, то используйте второй код макроса.
Первый вариант (выделяет 1-й рисунок в документе и делает обтекание текстом для него):
Sub imgtoshape()
Dim selPic As Object
Set selPic = ActiveDocument.InlineShapes(1)
selPic.Select
With Selection
.InlineShapes(1).ConvertToShape
.ShapeRange.WrapFormat.Type = wdWrapSquare
End With
End Sub
Второй вариант (делает обтекание текстом для выделенного рисунка):
Sub imgtoshape2()
With Selection
.InlineShapes(1).ConvertToShape
.ShapeRange.WrapFormat.Type = wdWrapTight
End With
End Sub
Я уже писал ранее о такой удобной функции в редакторе Word 2003 как Автотекст (см.заметку В чем различие между Автозаменой и Автотекстом).
Однако в версии редактора Word 2007 эта функция хоть и существует, но реализована очень неудобно. В качестве примера: в ранних версиях редактора Word можно было ввести часть текста и сразу же появлялось предложение закончить ввод с автотекстом (рисунок).
В редакторе Word 2007 нужно открывать диалоговое окно Организатор стандартных блоков, искать элемент автотекста среди множества иных блоков и, выбрав нужный, нажимать кнопку Вставить. Хотя, если ввести первые символы нужного слова, то по нажатию клавиши «F3» будет вставлен ваш элемент автотекста. Но для этого надо быть уверенным, что такой элемент есть в автотексте. Появляющейся подсказки уже нет.
Впрочем, можно вывести на панель быстрого доступа кнопку Автотекст. Тогда будет немного быстрее и удобнее, хотя тоже это не выход из положения (рисунок).
Тем не менее, для пользователей, привыкших к работе с удобным инструментом автотекста в ранних версиях редактора Word, есть альтернативные решения, которые предлагают независимые разработчики. Например, надстройка для редактора Word - AutoComplete 5.0 для MS Word.
Она устанавливается в виде шаблона в папку автозагрузки редактора (StartUp), а также создает свою папку в группе Program Files. В самом редакторе Word 2003 эта надстройка создает свою панель инструментов, а в редакторе Word 2007 она помещает на вкладке Надстройки свою группу команд для работы с автотекстом (рисунок).
Программа уже содержит в своей базе данных словарь из 10.000 слов. По мере ввода текста программа сразу же завершает слово. Пользователю остается либо продолжить введение текста, если слово не подходит, либо нажать клавишу «Enter». Добавление своих слов в словарь реализовано оригинально: он автоматически пополняется по мере ввода слов в документ (слова добавляются в базу данных Access).
Удаление программы возможно через диалоговое окно "Установка и удаление программ".
Мне эта надстройка показалась достаточно удобной и, если бы я часто работал с элементами автотекста в редакторе Word 2007, то, безусловно, пользовался бы ею.
Программа платная: на момент написания заметки она стоила 200 рублей.
Сергей спрашивает: При вставке в документ Word текста из другой программы, он появляется в формате этой программы, что неудобно. Можно воспользоваться "специальной вставкой" и там выбрать пункт "неформатированный текст" и тогда вставляемый тест воспринимает формат Word'a. Но как сделать так, чтобы вставляемый текст всегда вставлялся в виде "неформатируемого теста", не прибегая к помощи меню каждый раз?
Есть три (возможно, и больше) основных способа решить данную ситуацию.
Вместо использования команды "Специальная вставка" (находится в меню Правка в редакторе Word 2003 или на вкладке Главная во вложенном меню кнопки Вставить в редакторе Word 2007) можно использовать специальную программу PureText, о которой я уже писал в заметке Как избавиться от форматирования текста в буфере обмена.
Кроме того, можно использовать шаблоны с защищенными от изменений стилями. То есть, когда вы создаете документ, основанный на каком-то шаблоне (который предварительно был защищен от изменений находящихся в нем стилей), то при вставке текстов из других документов происходит автоматическая очистка форматирования и приведения его к тому стилю, который существует у вас в документе.
И третий, наиболее удобный способ с точки зрения пользователя: можно создать макрос (код ниже) и разместить на панели инструментов (для Word 2003) или на панели быстрого доступа (для Word 2007) соответствующую кнопку, либо назначить для макроса стандартное сочетание клавиш, например «Shift»+«Insert». После того, как вы скопируете текст
из сети или из документа, вы можете перейти к вашему документу и нажать кнопку этого макроса, либо воспользоваться горячими клавишами. Текст будет вставлен без форматирования.
Код макроса:
Sub PasteRaw()
Selection.PasteAndFormat wdFormatPlainText
End Sub
Вся информация, представленная на сайте WordExpert.ru и в этой рассылке, никаким образом не связана с корпорацией Microsoft. В рассылке упоминаются компании и продукты, которые могут быть зарегистрированными торговыми марками и принадлежать различным физическим и юридическим лицам как на территории РФ, так и за ее пределами.
Авторские права на все материалы, опубликованные на сайте WordExpert.ru и в этой рассылке (включая текст, фотографии, подборку, расположение и т.п.) принадлежат Кокину Антону Вадимовичу, если не указано иное. Вы можете свободно использовать и распространять эти материалы с обязательной ссылкой вида "Информация с сайта WordExpert.ru" и с обязательным указанием автора материала.
Все материалы, опубликованные на сайте WordExpert.ru и в этой рассылке, представлены на информационной основе. Вы можете использовать любую информацию с сайта WordExpert.ru или из данной рассылки исключительно на свой страх и риск. Тем не менее, я рекомендую перед применением какой-либо информации с сайта WordExpert.ru или из данной рассылки обязательно сохранять и создавать резервные копии ваших документов.
В этой рассылке также упоминаются различные web-страницы с соответствующими ссылками. Эти ссылки указываются исключительно в информационных целях и никакой рекомендации или одобрения с моей стороны данных веб-страниц не подразумевается, если не указано иное.