|
|
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
Есть кучка вордовых файлов. У всех у них надо заменить автора и организацию (на известные значения). Открывать каждый файл и через свойства документа править - долго и муторно. Можно ли это автоматизировать? Если да, то как? В VBA не силен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2010, 23:02 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
BagaBaga, очень просто, создаете процедуру получающую весь список файлов из папки через dir организовываете цикл по поочередному открытию каждого файла ищете в BuiltinDocumentProperties нужные Вам Property по name меняете их value на нужные сложность знать какие name Вам нужны, но можно просто сначала получить все Name какие есть и выбрать нужные. я сейчас попробовал все меняется легко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 08:47 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
BagaBaga, если у вас Word >= 2007, то можно сделать через openxml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 08:54 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
Shamanus, К сожалению, ваш совет правлелн, но для мня бесполезен, т.к. я не понимаю, как некоторую часть этого сделать, а именно 1. >>... создаете процедуру получающую весь список файлов из папки через dir Если вы про VBA, то уже нужно помощь. Если из командной строки, то можно так dir *.doc и, допустим, перенаправить куда-нибудь вывод. А можно через for for %i in (*.doc) do делать_то_что_надо_с_каждым_файлом 2. Основная проблема Я не понимаю, как сделать это: >>ищете в BuiltinDocumentProperties нужные Вам Property по name >>меняете их value на нужные Менять нужно следующие поля: автор, руководитель, учреждение, база гиперссылки PS Word 2003 PPS Правильно ли я понял: в некотором документе пишу макрос (на VBA), который получает список документов на обработку, открывает каждый документ из списка, меняет в нем то, что нужно, закрывает/сохраняет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 16:55 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
BagaBaga Если из командной строки, то можно так dir *.doc вот такая процедура возвращает содержимое папки в массив код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. открытие файла раскурите макрорекордером, а просмотр свойств это же совсем просто ещё код Код: plaintext 1. 2. 3. 4. в некотором документе пишу макрос (на VBA), который получает список документов на обработку, открывает каждый документ из списка, меняет в нем то, что нужно, закрывает/сохраняет да, создаете пустой документ, Alt+F11 - , в нем создаете свой модуль, в нем свою процедуру типа MySub. Там пишете код в том порядке, который я указал. Потом запускаете код, он открывает все документы проделывает нужные изменения, сохраняет, закрывает. Вуаля - задача решена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 18:51 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
пардоньте в коде очепятка не так Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 18:52 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
Shamanus, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 20:04 |
|
||
|
Изменить свойство множеству файлов MS Word
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, спасибо за ваши комментарии, но вступлюсь за Shamanus - он дал мне вполне понятное направление, куда копать. Ваше решение (в части узнавания количества объектов в папке), конечно, куда правильнее, чем в цикле перебирать возвращенные объекты из данной папки и наворачивать счетчик (исключив из него текущую "." и родительскую ".." папки). Но для этого нужно знать эту ... кхм ... библиотеку. Я не знаю. Даже как редактор VBA вызвать в ворде лишь смутно догадывался... Еще, для меня загадка, почему в коде пишем spisoK(1 To x) = FName вместо spisoK(x) = FName. Но это поправимо... попробую - там видно будет. PS Хотя, меотодологически "давать на блюдечке" - абсолютно не правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2010, 22:23 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36787412&tid=2177801]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 379ms |

| 0 / 0 |
