Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечь из свойств файла данные о авторе и пользователе - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Извлечь из свойств файла данные о авторе и пользователе
Sancho Дата: Четверг, 21.09.2017, 15:20 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет. Сетевое файловое хранилище забилось офисными документами практически до предела. Коллеги ни в какую не признают свое долевое участие в захламлении диска. Решил доработать готовое решение 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
Дата добавления - 21.09.2017 в 15:20
_Boroda_ Дата: Четверг, 21.09.2017, 15:25 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Посмотрите второй макрос Alex_ST отсюда
http://www.excelworld.ru/forum/10-11958-116914-16-1414482116


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите второй макрос Alex_ST отсюда
http://www.excelworld.ru/forum/10-11958-116914-16-1414482116

Автор - _Boroda_
Дата добавления - 21.09.2017 в 15:25
Sancho Дата: Четверг, 21.09.2017, 23:07 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
_Boroda_, спасибо. в тестовом файле имя автора и последнего пользователя получилось добыть [vba]
Код
Sub x1()
With ActiveSheet

.Cells(3, 3).Value = ThisWorkbook.BuiltinDocumentProperties(3).Value
.Cells(4, 3).Value = ThisWorkbook.BuiltinDocumentProperties(7).Value

End With
end sub
[/vba]

но вот допилить код Alex_ST у меня не получается совсем. строку в его файле [vba]
Код
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified)
[/vba] переписываю [vba]
Код
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified, oFile.BuiltinDocumentProperties(3).Value)
[/vba] итоге получаю сообщение файлов не найдено...
 
Ответить
Сообщение_Boroda_, спасибо. в тестовом файле имя автора и последнего пользователя получилось добыть [vba]
Код
Sub x1()
With ActiveSheet

.Cells(3, 3).Value = ThisWorkbook.BuiltinDocumentProperties(3).Value
.Cells(4, 3).Value = ThisWorkbook.BuiltinDocumentProperties(7).Value

End With
end sub
[/vba]

но вот допилить код Alex_ST у меня не получается совсем. строку в его файле [vba]
Код
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified)
[/vba] переписываю [vba]
Код
If .Name Like "*" & Mask & "*" Then oDict.Item(oDict.Count + 1) = Array(oDict.Count + 1, .Name, .Path, .DateCreated, .Size, .DateLastModified, oFile.BuiltinDocumentProperties(3).Value)
[/vba] итоге получаю сообщение файлов не найдено...

Автор - Sancho
Дата добавления - 21.09.2017 в 23:07
Sancho Дата: Пятница, 22.09.2017, 10:41 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
подскажите пожалуйста, что не так.
 
Ответить
Сообщениеподскажите пожалуйста, что не так.

Автор - Sancho
Дата добавления - 22.09.2017 в 10:41
_Boroda_ Дата: Пятница, 22.09.2017, 10:57 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
строку в его файле

В каком файле? Где он? Вы б положили сюда файл с макросом для поиграться, а то не совсем ясно что нужно и где


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
строку в его файле

В каком файле? Где он? Вы б положили сюда файл с макросом для поиграться, а то не совсем ясно что нужно и где

Автор - _Boroda_
Дата добавления - 22.09.2017 в 10:57
Sancho Дата: Пятница, 22.09.2017, 12:13 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
_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")

ActiveSheet.Range("C1") = xx.BuiltinDocumentProperties(3).Value
ActiveSheet.Range("C2") = xx.BuiltinDocumentProperties(7).Value

End Sub

[/vba] отрабатывает нормально
К сообщению приложен файл: __v.1.1..xlsm (52.5 Kb)


Сообщение отредактировал Sancho - Пятница, 22.09.2017, 12:25
 
Ответить
Сообщение_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")

ActiveSheet.Range("C1") = xx.BuiltinDocumentProperties(3).Value
ActiveSheet.Range("C2") = xx.BuiltinDocumentProperties(7).Value

End Sub

[/vba] отрабатывает нормально

Автор - Sancho
Дата добавления - 22.09.2017 в 12:13
Sancho Дата: Понедельник, 25.09.2017, 07:53 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
Добавил в строку 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, нет таких свойств автор и последний автор, то он вообще в список не попадает.

Совсем никаких идей? Странно.(
 
Ответить
СообщениеДобавил в строку 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, нет таких свойств автор и последний автор, то он вообще в список не попадает.

Совсем никаких идей? Странно.(

Автор - Sancho
Дата добавления - 25.09.2017 в 07:53
KuklP Дата: Понедельник, 25.09.2017, 09:39 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач

А почему по-Вашему они не должны оставаться открытыми? С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
в случае если читаемый файл не MS office, нет таких свойств автор и последний автор
Мелкософт посчитал нужным добавить такие свойства(BuiltinDocumentProperties) в свои документы, а другие создатели - нет. Ну уж простите их негодяев, не предусмотрели что когда-нибудь в будущем такому себе Sancho понадобится доказывать коллегам, кто же загадил сетевое файловое хранилище. :) Как правило это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
почему то остаются открытыми vba проекты перебранных файлов excel, сами книги не видны ни в excel ни в диспетчере задач

А почему по-Вашему они не должны оставаться открытыми? С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение
в случае если читаемый файл не MS office, нет таких свойств автор и последний автор
Мелкософт посчитал нужным добавить такие свойства(BuiltinDocumentProperties) в свои документы, а другие создатели - нет. Ну уж простите их негодяев, не предусмотрели что когда-нибудь в будущем такому себе Sancho понадобится доказывать коллегам, кто же загадил сетевое файловое хранилище. :) Как правило это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.

Автор - KuklP
Дата добавления - 25.09.2017 в 09:39
Sancho Дата: Понедельник, 25.09.2017, 14:18 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 279
Репутация: 19 ±
Замечаний: 0% ±

2007, 2010, 2013
С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение


Это я уже понял, мне не понятно почему без GetObject ничего вообще не получалось при том, что остальные свойства в исходнике спокойно собирались, а эти (автор и последний автор) в никакую не хотели. может подскажете альтернативу? Оно понятно, что найденный тыком способ собрать информацию абсолютно кривой, поэтому и прошу помочь. А вы почему то ржете...)
 
Ответить
Сообщение
С помощью GetObject Вы их открываете или подчиняете своему процессу, причем в невидимом состоянии, так задумано. Ну и совсем уж странно Ваше недоумение


Это я уже понял, мне не понятно почему без GetObject ничего вообще не получалось при том, что остальные свойства в исходнике спокойно собирались, а эти (автор и последний автор) в никакую не хотели. может подскажете альтернативу? Оно понятно, что найденный тыком способ собрать информацию абсолютно кривой, поэтому и прошу помочь. А вы почему то ржете...)

Автор - Sancho
Дата добавления - 25.09.2017 в 14:18
KuklP Дата: Понедельник, 25.09.2017, 16:35 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А вы почему то ржете...)
С чего Вы это взяли? Из-за смайлика? Так это была дружеская улыбка. А в качестве помощи:
это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.
Все остальное - это одевание трусов через голову. Объект FileSystemObject не предоставляет и не имеет таких свойств, какие Вы хотите. Офис предоставляет, но только в своих нативных файлах, внутри которых(файлов) эти свойства и записываются. В csv, txt и т.д. их тоже нет. Возможно в системе где-то в реестре и хранится информация о доступах, но к Экселю это не имеет никакого отношения. Как впрочем и Ваш вопрос и FileSystemObject кстати, тоже. Это один из объектов Windows Script Host, если что.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
А вы почему то ржете...)
С чего Вы это взяли? Из-за смайлика? Так это была дружеская улыбка. А в качестве помощи:
это решается отдельными папками в хранилище для каждого юзверя и разграничением прав доступа.
Все остальное - это одевание трусов через голову. Объект FileSystemObject не предоставляет и не имеет таких свойств, какие Вы хотите. Офис предоставляет, но только в своих нативных файлах, внутри которых(файлов) эти свойства и записываются. В csv, txt и т.д. их тоже нет. Возможно в системе где-то в реестре и хранится информация о доступах, но к Экселю это не имеет никакого отношения. Как впрочем и Ваш вопрос и FileSystemObject кстати, тоже. Это один из объектов Windows Script Host, если что.

Автор - KuklP
Дата добавления - 25.09.2017 в 16:35
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!