Консультация № 152587
02.12.2008, 11:11
0.00 руб.
0 9 1
Здравствуйте товарищи эксперты.
Появилась необходимость очистить поля "Автор" и "Учреждение" вкладки "Документ" окна "Свойства" для огромного количества документов Microsoft Office, созданных ранее. Подскажите пожалуйста есть ли возможность групповой очистки указанных полей без изменения даты создания документа. Файлов действительно много и ручная очистка полей с заменой системного времени слишком утомительна. Заранее благодарен за совет.

Обсуждение

Неизвестный
02.12.2008, 21:03
общий
это ответ
Здравствуйте, Степашкин Дмитрий Валерьевич!
Честно говоря не знаю, но можно попробовать записать макрос - если руками Вы это делаете, то есть очень большая вероятность, что Эксель запишет все Ваши действия - начиная с открытия файла и заканчивая его закрытием. Потом придется немножко макрос доработать.
А вот с датой... Опять таки попробовать макрос - создать список файлов с датаи их создания и потом в первом макросе дописать изменение даты файла после его записи.
Я бы так сделал. Кода нет - поэтому только идея.
Неизвестный
07.12.2008, 11:51
общий
А Вы не пробовали выделить нужные файлы в Проводнике, или Total Commander'е, нажать Alt+Enter, и во вкладке "Сводка" изменить нужные вам значения свойств? Дата создания остается прежней, меняется только дата последнего редактирования.
Неизвестный
09.12.2008, 01:02
общий
Самое парадоксальное, что я оговорился. Важно чтобы оставались нетронутыми дата и время последнего редактирования. Кстати Ваш метод не работает. Пробовал обработать группу файлов. Заходил в "сводку". Обнулял все поля, подлежащие редактированию. Проверял в Word`е. Никакой реакции. Поля "Автор" и "Организация", как впрочем и другие поля, оставались нетронутыми. Селяви
Неизвестный
09.12.2008, 10:41
общий
Странно, я именно таким способом изменил те же самые поля без проблем до того, как Вам ответил, и перепроверил вот только что. Причем для, так сказать, чистоты эксперимента, выбрал одновременно файлы Word'а, Excel'а и Access'а. Все прекрасно меняется.
Впрочем, в связи с Вашей оговоркой, это уже не имеет значения, поэтому будем искать выход.

Идея такова (пока только идея, без кода):
Создаем новый документ, пишем в нем макрос, который:
1. Сохраняет в переменной текущую дату.
2. Ищет файл Word'а в каталоге
2. Считывает значение свойства документа "Дата последнего редактирования" и записывает его в переменную
3. Меняет системную дату на значение, записанное в переменной из предыдущего пункта
4. Меняет свойства "Автор" и "Учреждение" документа на необходимые Вам
5. Ищет следующий документ, повторяет пункты 2-4 для всех найденных файлов
6. Возвращает значение системной даты, записанное в переменной из п. 1

Если есть (или буду) вопросы по написанию кода, обращайтесь, помогу, чем смогу.
Неизвестный
11.12.2008, 02:19
общий
С заменой полей разобрался. Я же в буквальном смысле их обнулял. Т.е. выделял группу, заходил в сводку и щелкнув по полю нажимал DEL. Поле становилось пустым. Закрывал сводку. Итог - поле в свойствах оставалось нетронутым. Попробовал поставить пробелы и получилось, т.е. надо было пропечатать какие-либо символы в полях. Спасибо за совет. Дело осталось за малым - за сохранением времени последнего редактирования. Судя по алгоритму времени потребуется куча. На один файл только порядка 0,5 - 1,0 минуты :(
Неизвестный
14.12.2008, 18:55
общий
Ну, очистить нужные поля легко с помощью макроса (ниже). Но вот как сохранить время последнего изменения, я не могу сообразить. Оно же меняется при сохранении документа. Если мы присвоим ему первоначальное время, то опять же нужно сохранить это изменение - замкнутый круг.
Вот макрос:
Код:
Sub ClearDocProps()
On Error Resume Next
With ActiveDocument
.BuiltInDocumentProperties(wdPropertyAuthor).Value = ""
.BuiltInDocumentProperties(wdPropertyCompany).Value = ""
End With
End Sub
Неизвестный
14.12.2008, 19:12
общий
Кокин Антон Вадимович, придется менять системное время, другого выхода я не вижу.
Неизвестный
14.12.2008, 19:17
общий
M@gi$†e®, а как это сделать через макрос? Тем более, человеку нужно не один файл изменить, а множество. Ну это еще можно сделать, конечно, а вот со временем у меня например мыслей нет...
Неизвестный
15.12.2008, 21:47
общий
спасибо за содействие. с невозможностью поменять время последнего редактирования файла наверное придеться свыкнуться. С полями "Автор" и "Организация" разобрался вроде, очищали специально чтобы разночтения не получилось в происхождении документов. С временем последних изменений сложнее. Копий одних и тех же файлов уйма. И посему обнулив поля мы окончательно в них запутаемся. К тому же практически постоянно возникает необходимость проверять время последних правок. Такой вот "документооборот" в природе :)
Форма ответа