Тема: Получение данных из CustomDocumentProperties
Есть ли возможность получить данные CustomDocumentProperties из файла Word не открывая его?
С уважением
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Есть ли возможность получить данные CustomDocumentProperties из файла Word не открывая его?
С уважением
Ответ найден. Спасибо
mikkelle, если вы самостоятельно нашли решение, то пожалуйста, сообщите и другим о нем в подробностях. Это будет интересно и полезно, ведь ради этого и создавался и развивается сайт и форум.
Спасибо.
Ошибка
Отредактировано mikkelle (29.12.2010 18:07:03)
Поддерживаю:"если вы самостоятельно нашли решение, то пожалуйста, сообщите и другим о нем в подробностях. Это будет интересно и полезно, ведь ради этого и создавался и развивается сайт и форум.
Спасибо."
Добавление пользовательских свойств в документ Word
Указанные пользовательские свойства в документе Word должны отсутствовать.
Иначе выводится ошибка Run-time error '-2147467259 (80004005)'.
Private Sub AddCustomDocumentProperties()
With ActiveDocument.CustomDocumentProperties
.Add Name:="Complete", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:=""
.Add Name:="CustomNumber", _
LinkToContent:=False, _
Type:=msoPropertyTypeNumber, _
Value:=1000
.Add Name:="CustomString", _
LinkToContent:=False, _
Type:=msoPropertyTypeString, _
Value:="This is a custom property."
.Add Name:="CustomDate", _
LinkToContent:=False, _
Type:=msoPropertyTypeDate, _
Value:=Date
End With
End Sub
Просмотр пользовательских свойств в документе Word
Private Sub DisplayCustomDocumentProperties()
Dim i As Integer
For i = 1 To ActiveDocument.CustomDocumentProperties.Count
MsgBox ActiveDocument.CustomDocumentProperties(i).Name
Next i
End Sub
Удаление конкретных пользовательских свойств из документа Word
Указанные пользовательские свойства в документе Word должны существовать.
Иначе выводится ошибка Run-time error '5'.
Private Sub DeleteCustomDocumentProperties()
ActiveDocument.CustomDocumentProperties("Complete").Delete
ActiveDocument.CustomDocumentProperties("CustomNumber").Delete
ActiveDocument.CustomDocumentProperties("CustomString").Delete
ActiveDocument.CustomDocumentProperties("CustomDate").Delete
End Sub
Спасибо за ответ, но мне необходимо добраться до этих свойств не открывая файл и не запуская ворд.
Mikkelle, какими средствами Вы хотели бы "добраться" до этих свойств?
В частности, есть еще возможность получить их значения из среды программирования (например, с помощью C#).
Хотелось бы получать доступ из среды ОС. По типу поиска из проводника Windows.
Образно говоря, что бы была возможность выбрать из группы файлов Word, файлы, имеющие определенные пользовательские свойства с определенными параметрами.
Хотелось бы получать доступ из среды ОС. По типу поиска из проводника Windows.
Образно говоря, что бы была возможность выбрать из группы файлов Word, файлы, имеющие определенные пользовательские свойства с определенными параметрами.
Я сомневаюсь, что это возможно.
Если найдете такое решение, сообщите, пожалуйста.
Хотелось бы получать доступ из среды ОС. По типу поиска из проводника Windows.
Образно говоря, что бы была возможность выбрать из группы файлов Word, файлы, имеющие определенные пользовательские свойства с определенными параметрами.
Я сомневаюсь, что это возможно.
Если найдете такое решение, сообщите, пожалуйста.
Пожалуйста.
Как то так можно сделать (для свойств, которые отображаются в панели Свойства Проводника
Sub Props_Shell_App()
'
'
Dim objShellApp As Object, objFolderItem As Object, objFolder As Object
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.NameSpace("C:\Temp")
Set objFolderItem = objFolder.ParseName("a1.docx")
Debug.Print objFolderItem.ExtendedProperty("DocTemplate")
Debug.Print objFolderItem.ExtendedProperty("DocComments")
Debug.Print objFolderItem.ExtendedProperty("DocTitle")
Debug.Print objFolderItem.ExtendedProperty("DocSubject")
Debug.Print objFolderItem.ExtendedProperty("DocLastAuthor")
Debug.Print objFolderItem.ExtendedProperty("DocManager")
Debug.Print objFolderItem.ExtendedProperty("DocCompany")
Set objShellApp = Nothing
Set objFolder = Nothing
Set objFolderItem = Nothing
End Sub
А еще можно воспользоваться библиотекой dsofile.dll, которая позволяет получить не только встроенные, но и пользовательские свойства. Посмотрите на сайте Microsoft. внешняя ссылка
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться