Войти

Показать полную графическую версию : Проставить заголовки по куче файлов, word 2003


Mangost
18-07-2011, 16:02
Нужно следующее.

Есть папка в которой сложены файлы doc. Файлов много.
Во все эти файлы мне надо вверху каждого, в самом начале, поставить Заголовок 2 с текстом и счетчиком этого файла. Наглядно:

В папке 100 файлов.
С первого файла и далее вверху каждого файла должны быть заголовки (Заголовок 2):

Документ 1
Документ 2
Документ 3
...
Документ 100

Все файлы должны быть сохранены и закрыты.
Если файлов не 100 а 1000 значит аналогично до 1000-ного заголовка.

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


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


Спасибо за помощь.

Vadikan
18-07-2011, 17:35
Mangost, без скриптов не обойтись. Вот пример добавления форматированного текста http://www.activexperts.com/activmonitor/windowsmanagement/scripts/msoffice/word/#AddFormattedTWD.htm

Осталось только перебрать файлы в папке. Переношу в скрипты.

Iska
19-07-2011, 08:34
Главный вопрос — про порядок файлов. На что ориентироваться? Судя по приведённому Вами примеру — Вам нужно, чтобы ориентировка была на Проводник, который, начиная с XP, отображает файлы иначе:
Документ 1
Документ 2
Документ 10
Документ 20
Документ 100
нежели команда DIR, методы перечисления FSO, WinAPI, показывающие реальное расположение файлов в каталоге. В случае NTFS, что нынче обычно, мы будем иметь дело с уже отсортированным списком, но по правильной алфавитной сортировке:
Документ 1
Документ 10
Документ 100
Документ 2
Документ 20
в отличие от Проводника.

amel27
19-07-2011, 11:59
если (вдруг) порядок не важен, пример на VBS
вызов скрипта - через контекстное меню "Отправить" (http://www.oszone.net/10575/SendTo), предварительно скопировав его в папку SendTo
On Error Resume Next

Set FSO = CreateObject("Scripting.FileSystemObject")
Set APP = CreateObject("Word.Application")
APP.Visible = False

Set DIR = FSO.GetFolder(WScript.Arguments(0))
If Err.Number <> 0 Then WScript.Quit
On Error Goto 0

s=InputBox("Введите текст заголовка:", "Ввод заголовка.")

For Each obj in DIR.Files
If UCase(FSO.GetExtensionName(obj.Path))="DOC" Then
i = i + 1

Set DOC = APP.Documents.Open(obj.Path)
Set SEL = APP.Selection
SEL.HomeKey 6,0
SEL.TypeText s &" "& i
SEL.TypeParagraph()

DOC.Paragraphs(1).OutlineLevel = 1
DOC.Save
DOC.Close
End If
Next

APP.Quit




© OSzone.net 2001-2012