Всем привет. Сетевое файловое хранилище забилось офисными документами практически до предела. Коллеги ни в какую не признают свое долевое участие в захламлении диска. Решил доработать готовое решение Alex_ST, http://www.excelworld.ru/forum/3-1894-1 , под себя, но столкнулся с тем, что ни как не найду какие же свойства FileSystemObject отвечают за данные о авторе и пользователе. Их вообще нет в vba? или это вообще не относится к FileSystemObject? Куда и где рыть, подскажите пожалуйста.
Всем привет. Сетевое файловое хранилище забилось офисными документами практически до предела. Коллеги ни в какую не признают свое долевое участие в захламлении диска. Решил доработать готовое решение Alex_ST, http://www.excelworld.ru/forum/3-1894-1 , под себя, но столкнулся с тем, что ни как не найду какие же свойства FileSystemObject отвечают за данные о авторе и пользователе. Их вообще нет в vba? или это вообще не относится к FileSystemObject? Куда и где рыть, подскажите пожалуйста.Sancho
_Boroda_, файл приложил, там где я что то добавил установлен комментарий 'sancho. попробовал через отладчик отследить что все таки тянет добавив переменную [vba]
Код
p = oFile.BuiltinDocumentProperties(3).Value 'sancho
[/vba] , результат ничего не тянет =Empty. я уже в отчаянии, сутки уже убил на поиски решения.
причем в тестовом файле код[vba]
Код
Sub x1() Dim xx As Object Set xx = GetObject("D:\Документ Microsoft Word.docx")
_Boroda_, файл приложил, там где я что то добавил установлен комментарий 'sancho. попробовал через отладчик отследить что все таки тянет добавив переменную [vba]
Код
p = oFile.BuiltinDocumentProperties(3).Value 'sancho
[/vba] , результат ничего не тянет =Empty. я уже в отчаянии, сутки уже убил на поиски решения.
причем в тестовом файле код[vba]
Код
Sub x1() Dim xx As Object Set xx = GetObject("D:\Документ Microsoft Word.docx")
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified, GetObject(oFile).BuiltinDocumentProperties(3), GetObject(oFile).BuiltinDocumentProperties(7))
[/vba] Сведения об авторе и пользователе стало выдавать, но почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач, ну и в случае если читаемый файл не MS office, нет таких свойств автор и последний автор, то он вообще в список не попадает.
Совсем никаких идей? Странно.(
Добавил в строку GetObject(oFile) [vba]
Код
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified, GetObject(oFile).BuiltinDocumentProperties(3), GetObject(oFile).BuiltinDocumentProperties(7))
[/vba] Сведения об авторе и пользователе стало выдавать, но почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач, ну и в случае если читаемый файл не MS office, нет таких свойств автор и последний автор, то он вообще в список не попадает.
почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач
А почему по-Вашему они не должны оставаться открытыми? С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
в случае если читаемый файл не MS office, нет таких свойств автор и последний автор
Мелкософт посчитал нужным добавить такие свойства(BuiltinDocumentProperties) в свои документы, а другие создатели - нет. Ну уж простите их негодяев, не предусмотрели что когда-нибудь в будущем такому себе Sancho понадобится доказывать коллегам, кто же загадил сетевое файловое хранилище. Как правило это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.
почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач
А почему по-Вашему они не должны оставаться открытыми? С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
в случае если читаемый файл не MS office, нет таких свойств автор и последний автор
Мелкософт посчитал нужным добавить такие свойства(BuiltinDocumentProperties) в свои документы, а другие создатели - нет. Ну уж простите их негодяев, не предусмотрели что когда-нибудь в будущем такому себе Sancho понадобится доказывать коллегам, кто же загадил сетевое файловое хранилище. Как правило это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
Это я уже понял, мне не понятно почему без GetObject ничего вообще не получалось при том, что остальные свойства в исходнике спокойно собирались, а эти (автор и последний автор) в никакую не хотели. может подскажете альтернативу? Оно понятно, что найденный тыком способ собрать информацию абсолютно кривой, поэтому и прошу помочь. А вы почему то ржете...)
С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
Это я уже понял, мне не понятно почему без GetObject ничего вообще не получалось при том, что остальные свойства в исходнике спокойно собирались, а эти (автор и последний автор) в никакую не хотели. может подскажете альтернативу? Оно понятно, что найденный тыком способ собрать информацию абсолютно кривой, поэтому и прошу помочь. А вы почему то ржете...)Sancho
это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.
Все остальное - это одевание трусов через голову. Объект FileSystemObject не предоставляет и не имеет таких свойств, какие Вы хотите. Офис предоставляет, но только в своих нативных файлах, внутри которых(файлов) эти свойства и записываются. В csv, txt и т.д. их тоже нет. Возможно в системе где-то в реестре и хранится информация о доступах, но к Экселю это не имеет никакого отношения. Как впрочем и Ваш вопрос и FileSystemObject кстати, тоже. Это один из объектов Windows Script Host, если что.
это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.
Все остальное - это одевание трусов через голову. Объект FileSystemObject не предоставляет и не имеет таких свойств, какие Вы хотите. Офис предоставляет, но только в своих нативных файлах, внутри которых(файлов) эти свойства и записываются. В csv, txt и т.д. их тоже нет. Возможно в системе где-то в реестре и хранится информация о доступах, но к Экселю это не имеет никакого отношения. Как впрочем и Ваш вопрос и FileSystemObject кстати, тоже. Это один из объектов Windows Script Host, если что.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728