Пакетное форматирование документов word

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

И вот недавно ко мне обратился Дмитрий с просьбой помочь ему в аналогичной ситуации. Он спрашивал:

Дано очень много файлов формата rtf и doc. Необходимо их отформатировать разом, не открывая каждый в отдельности, а именно: изменить во всех размер шрифта на 12, поставить абзацы 1.25, сделать times new roman, изменить поля, покрасить текст в черный, интервал одинарный. Помогите, пожалуйста!

Я предложил Дмитрию воспользоваться следующим макросом (см. код ниже). Но затем подумал, что пользователям наверное было бы удобнее использовать специальную форму для выбора необходимых параметров форматирования текста, нежели копаться в коде макроса и менять эти параметры вручную.

Обновлено 25.03.2010г.. Александр Витер внес исправления в шаблон, чтобы в новых версиях ОС Windows не выскакивали ошибки.

Я разработал такую форму и включил ее в шаблон. Шаблон (предназначенный для редактора Word 2003) имеет дополнительную панель инструментов с кнопкой «Массовое форматирование документов»:

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

C:Documents and SettingsИМЯ_ПОЛЬЗОВАТЕЛЯApplication DataMicrosoftШаблоны.

Как только форма становится нужна, вы открываете меню Сервис, выбираете команду Шаблоны и надстройки и в открывшемся окне нажимаете кнопку Добавить:

Откроется стандартное окно выбора файлов, в котором вы должны найти файл шаблона (если вы добавили его в папку с шаблонами, как описано выше) и выбрать его. В результате шаблон появится в окне и будет доступен:

Форма простая и содержит лишь некоторые параметры форматирования. Я не сторонник ручного форматирования текста — лучше и правильнее создать соответствующие стили. Но иногда это невозможно и проще (быстрее) форматировать документ по-старинке.

В общем виде форма выглядит так:

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

Когда вы закончите работу по форматированию, вы можете выгрузить шаблон. Для этого достаточно снять флажок с имени шаблона в окне Шаблоны и надстройки.

Напоминаю, что шаблон позволяет произвести форматирование текста во многих документах одновременно (без открытия этих документов). Будут отформатированы документы с расширениями doc, rtf и docx, находящиеся в одной папке (а если отмечен флажок «Включая подпапки», то и в дочерних). Процесс форматирования скрыт от пользователя, но по окончании выскочит окошко с уведомлением о завершении процесса форматирования.

Скачать архив шаблона «Массовое форматирование документов» вы можете на странице Полезности Word или прямо отсюда:

Код макроса по параметрам Дмитрия:

Sub batchFormating()
'массовое форматирование документов, находящихся в одной папке
Dim myFile As String
Dim myDoc As Document
Dim path As String
Dim fDlg As FileDialog
Dim ext() As Variant
Dim i As Long
On Error Resume Next
'msoFileDialogFilePicker – позволяет пользователям выбрать один или более файлов.
'Пути к файлам, выбранным пользователям, сохраняются в коллекции элементов FileDialogSelectedItems
Set fDlg = Application.FileDialog(msoFileDialogFolderPicker)
'Выбираем папку с файлами для форматирования
With fDlg
   .Title = "Выберите папку, содержащую документы и нажмите ДА"
   .AllowMultiSelect = False
   .InitialView = msoFileDialogViewList
   If .Show <> -1 Then
      MsgBox "Отменено", , "Массовое форматирование"
      Exit Sub
   End If
   path = fDlg.SelectedItems.Item(1)
   If Right(path, 1) <> "" Then path = path + ""
End With
'Закрываем любые открытые документы
If Documents.Count > 0 Then
   Documents.Close SaveChanges:=wdPromptToSaveChanges
End If
ext = Array("*.doc", "*.rtf") 'Заносим в массив типы расширений
For i = 0 To UBound(ext) 'Запускаем цикл обхода файлов с расширениями из массива
'Заносим в переменную полный путь к первому файлу в папке,
'имена следующих файлов будут получены в цикле функцией Dir$() без аргументов
myFile = Dir$(path & ext(i))
'Запускаем цикл обработки каждого файла в папке
While myFile <> ""
   'Открываем каждый файл без видимости для пользователя
   Set myDoc = Documents.Open(path & myFile, Visible:=False)
   'Изменяем форматирование каждого файла
   With myDoc
      With .Range
         With .PageSetup
            .LeftMargin = CentimetersToPoints(2)
            .RightMargin = CentimetersToPoints(1)
            .TopMargin = CentimetersToPoints(1)
            .BottomMargin = CentimetersToPoints(2)
         End With
         .Paragraphs.FirstLineIndent = CentimetersToPoints(1.25)
         .ParagraphFormat.LineSpacingRule = wdLineSpaceSingle
         With .Font
            .ColorIndex = wdBlack
            .Name = "Times New Roman"
            .Size = 12
         End With
      End With
      .Close SaveChanges:=wdSaveChanges
   End With
   myFile = Dir$()   'получаем следующее имя файла из папки
Wend
Next i
Set fDlg = Nothing
Set myDoc = Nothing
End Sub
  • ivladislaw:

    Зарплата — ясное дело украинское законодательство. Сумма прописью — в гривнах, поэтому числительные женского рода. Программа писалась так, что любой профессионал ругался бы — вариантные переменные, Option Explicit отсутствует. Однако она работала без ошибок в отличие от «суммы прописью» написанной другим человеком, работавшим ранее программистом «по всем правилам» — та сумму 2 грн с копейками превращала в 11 тысяч — прямо цифру в ячейке (такое можно легко сделать намеренно, но как появилась такая ошибка?). Есть ещё программа, верстающая журналы-ордера, ведомости и оборотный баланс в Excel на основании введённой книги хозяйственных операций. Когда этот же человек проявил инициативу и поставил всем Openoffice, ссылаясь на экономию денег — я был дико злым. Это плохо повлияло на моё отношение к Open Source вообще…
    Думаю, что выложу шашки. Надо сказать, что сделал я их 6 или 7 лет назад и код, скорее всего, ужасен:)

  • Пакетная замена содержимого документов Word и Excel

    Пользователи Microsoft Office Word и Office Excel наверняка знакомы с такой замечательной функцией как “Поиск и замена”, позволяющей быстро исправлять допущенные или найденные в тексте ошибки. Впрочем, функциями поиска и замены обладают практически все, даже самые простые текстовые редакторы.

    Тут важен не сам факт наличия данной функции, а ее универсальность. Хорошо известно, каким ограниченным является функционал инструментов поиска и замены в Блокноте. В то же время Word и Excel хоть и имеют достаточно широкий набор инструментов для поиска и замены в текстовом содержимом, не поддерживают пакетную обработку документов. Этой способностью обладает Notepad++, но опять же он не поддерживает работу с форматами Microsoft Office.

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

    Благодаря богатому набору специализированных функций Replace Genius позволяет обрабатывать текстовые документы как по одному, так и в пакетном режиме в полном соответствии с вашими индивидуальными потребностями. Replace Genius поддерживается простой поиск и замена, работа с регулярными выражениями, смещение строк, изменение регистра, предпросмотр результатов в режиме реального времени и множество других функций.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

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

    К тому же в Replace Genius отсутствует русский язык. Одним словом, если вы не знакомы с английским языком, вам придется потратить немало времени чтобы разобраться во всех аспектах этого приложения. Приведем простейший пример пакетной замены текстовых данных. У нас есть папка с файлами в форматах doc, txt, rtf и xls.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

    Допустим, нам необходимо заменить слово “Windows” на “Linux”. Для этого в Replace Genius нам нужно создать пресет – шаблон, по которому утилита будет обрабатывать файлы.

    Откройте программу, в левой панели переключитесь на вкладку Replace и введите в поля “Find” и “and replace with” нужные слова. Теперь давайте сохраним эту настройку в шаблон. Нажав клавишу F12, откройте менеджер пресетов, создайте в нем папку с любым удобным вам именем и нажмите “Add”. Также вы можете отредактировать уже имеющийся там шаблон Example. Затем жмем кнопку Batch и добавляем список файлов Microsoft Office.

    Пакетная замена содержимого документов Word и Excel

    Пакетная замена содержимого документов Word и Excel

    В открывшемся опциональном окошке указываем нужный пресет, тип сохранения лучше оставить по умолчанию Save in this folder (только не забудьте указать папку, куда будут сохранены отредактированные копии) и жмем Ok. При этом откроется маленькое окошко, в котором будет обозначен список редактируемых документов.

    Жмем Start и процесс пошел! Используя такие шаблоны можно за один раз редактировать множество файлов и, причем выполняя по несколько операций подряд над каждым из них. В нашем случае мы просто заменили “Windows” на “Linux”, но заодно можно выполнить еще массу других действий.

    Студворк — интернет-сервис помощи студентам

    Всем привет. В сети нашел файл SrcAndRpl_Beta3.doc для пакетного найти/заменить. Работает прекрасно, но вот если объект в ворде сгрупированный (текстовые элементы с графическими), то в нем не делает замен, если разбить группировку до простых элеметов, то все работает. Прилагаю файл SrcAndRpl_Beta3.doc и файл на котором не работает, в частности не производит замену текста в колонтитуле внутри которого вставлен ШТАМП, составленный из графических и текстовых сгрупированных элементов, группировка там многократная, не знаю для чего не я делал, но нужен универсальный способ перебора элементов группировки с определенной глубиной группировки. Сам не программист, но базовые навыки есть, пытался отладкой проверить цикл, отвечающий за перебор элементов Ворда, но так и не понял, когда в цикле появляется сгруппированный элемент. Может кто допишет этот макрос или подскажет, как это сделать?

    ���� �������| ��������-��������� | ��������� ����� | ������-�����

    • ���� ��������
    • ���������� ������
    • ���������� �����������
    • ����������� �����
    • ��������� ������
    • �������� �����
    • ��������� �����
    • ��������� Windows
    • �������. ��������
    • ����� � ��������
    • ���������
    • ���� � �����

    ������������, ��������� ��������!

    ������� � �������: ����� ���������

    ����� �� �������� � �����-�������

    ��������� ���������� ��������� �����, ������� �� ������ ������� ������� � ������ ������������ ��� �� ������ ������� � ��� ���� ������� ������ ����������, ������� ����� ������� ��� ������� � ����� �� ���� ������ ��-�� ����, ��� �� ����� �������� ������� ����������.

    ���������…

    �������� �������������� ����������

    2009-08-28 19:08 ����� �����

    ����� �� ������� ������������� ��������� Word ��������� �������� ���-�� (�����, ��������������) ����� � ���������� ����������, ��� ������������� ������ � ������ ���������� �� �����������. � �������� ������� ���� �������� ������ �������� ������ (�����: �.�������), � ������� �������� �������� ������ � ������ �����-�� ������ ����� �� ������ ���������� ������������.

    � ��� ������� �� ��� ��������� ������� � �������� ������ ��� � ����������� ��������. �� ���������:

    ���� ����� ����� ������ ������� rtf � doc. ���������� �� ��������������� �����, �� �������� ������ � �����������, � ������: �������� �� ���� ������ ������ �� 12, ��������� ������ 1.25, ������� times new roman, �������� ����, ��������� ����� � ������, �������� ���������. ��������, ����������!

    � ��������� ������� ��������������� ��������� �������� (��. ��� ����). �� ����� �������, ��� ������������� �������� ���� �� ������� ������������ ����������� ����� ��� ������ ����������� ���������� �������������� ������, ������ �������� � ���� ������� � ������ ��� ��������� �������.
    � ���������� ����� ����� � ������� �� � ������ (������). ������ (��������������� ��� ��������� Word 2003) ����� �������������� ������ ������������ � ������� «�������� �������������� ����������»:

    ������ ��������

    ����� ����
    http://subscribe.ru/catalog/comp.soft.review.softgames

    ��������� ����
    http://subscribe.ru/catalog/comp.soft.review.softmobile

    ��������������� � ��������� ���������
    http://subscribe.ru/catalog/comp.soft.review.softobuchenie

    «�������» ���������
    http://subscribe.ru/catalog/comp.soft.review.softdelo

    ������ ���� ��� ������ � ������� � �������
    http://subscribe.ru/catalog/comp.soft.review.softfiles

    ������ ���� ��� ������������ ������
    http://subscribe.ru/catalog/comp.soft.review.softsystem

    ������ ���� ��� ������ � �����������
    http://subscribe.ru/catalog/comp.soft.review.softdocs

    ������ ���� ��� ������ � ��������

    http://subscribe.ru/catalog/comp.soft.review.softgrafics

    ��������� �����������

    http://subscribe.ru/catalog/comp.soft.review.multsoft

    ��������� ��� ��������� � �����
    http://subscribe.ru/catalog/comp.soft.review.softmaniainet

    Copyright (c) Linkz.ru — ����������� ����������� ��������� � ��������-���������

    Понравилась статья? Поделить с друзьями:
  • Пакет совместимости word 2010 в word 2007
  • Пакет совместимости word 2007 word 2003
  • Пакет совместимости word 2003 docx пакет совместимости скачать
  • Пакет совместимости excel 2003 с excel 2010
  • Пакет русского языка для word