Шаг 48 - Встроенные свойства документов MSOffice

Хорошо писать прикладные программы для MSWord - вставил куда-либо поле {AUTOR} и получил информацию о том, кто автор документа (иногда, правда, это делать опасно - всплывают прелюбопытные подробности). А в других программах MSOffice? Сколько, например символов в таблице Excel? Так просто не получится...:-(

Для этой задачи может помочь коллекция BuiltInDocumentProperties. В MSOffice97 определено 30 (а не 28, как в документации) свойств, названия которых приведены в таблице. Все эти свойства могут быть прочитаны в любом документе MSOffice, вне зависимости от того, какая программа документ породила. Кроме чтения программным путем, MSWord (это уже упоминалось выше) позволяет вывести значение свойств документа в сам документ при помощи полей, но это к программированию на прямую не относится.

  Название свойства Назначение
  Title Заголовок
  Subject Предмет
  Author Автор (создавший документ)
  Keywords Ключевые слова
  Comments Комментарии
  Template Шаблон документа
  Last Author Тот, кто последний сохранил документ
  Revision Number Число входов для редактирования
  Application Name Название приложения, обрабатывающего документ
  Last Print Date Дата и время последней печати
  Creation Date Дата создания
  Last Save Time Дата и время последнего сохранения
  Total Editing Time Общая продолжительность редактирования (минуты)
  Number of Pages Число страниц
  Number of Words Число слов
  Number of Characters Число символов
  Security Секретность
  Category Категория
  Format Формат
  Manager Менеджер
  Company Компания
  Number of Bytes Размер файла в байтах в момент последнего сохранения
  Number of Lines Число строк
  Number of Paragraphs Число абзацев
  Number of Slides Число слайдов (определено в PowerPoint, в остальных, вероятно, не используется)
  Number of Notes Число заметок к слайдам (определено в PowerPoint, в остальных, вероятно, не используется)
  Number of Hidden Slides Число скрытых слайдов (определено в PowerPoint, в остальных, вероятно, не используется)
  Number of Multimedia Clips Число клипов (определено в PowerPoint, в остальных, вероятно, не используется)
  Hyperlink Base База гиперссылок
  Number of Characters (with spaces) Общеечисло символов, включая пробелы

Стоит иметь в виду, что при обращении к значению свойства, которое для данного документа не определено, также возникает ошибка выполнения с кодом -2147467259 (знак минус!), что требует аккуратной работы (см. примеры обработчиков ошибок в предыдущем шаге). Также приводит к ошибке попытка записи в свойство, которое данным приложением не поддерживается, что можно установить методом проб и ошибок. Но имена выводятся для всех свойств правильно. Практически полезной может оказаться такая процедура:

Sub test()

On Error GoTo NotDefined

' В следующей стороке ActiveDocument стоит заменть на ActiveWorkbook, etc

For Each prop In ActiveDocument.BuiltInDocumentProperties

With prop

PName =.Name

PValue =.Value

PType =.Type

Debug.Print PName & " = " & PValue & " [" & PType & "]"

End With

Next

Exit Sub

' ОБРАБОТЧИК ОШИБОК

NotDefined:

PValue = "Value not defined"

Resume Next

End Sub

Ее польза в том, что можно исследовать, какие свойства определены для данного типа документов, не появились ли новые свойства с выходом новой версии MSOffice (и не потерялись ли старые:-)), какие у них типы. Тип выводится в виде целого числа. Результат ее работы (копия Debug Window):

Title = Свойства документов MSOffice [4]

Subject = [4]

Author = DD [4]

Keywords = [4]

Comments = [4]

Template = Normal [4]

Last author = DD [4]

Revision number = 4 [4]

Application name = Microsoft Word 8.0 [4]

Last print date = Value not defined [3]

Creation date = 17.03.00 14:13:00 [3]

Last save time = 17.03.00 15:06:00 [3]

Total editing time = 67 [1]

Number of pages = 3 [1]

Number of words = 1183 [1]

Number of characters = 7702 [1]

Security = 0 [1]

Category = [4]

Format = [4]

Manager = [4]

Company = SBC [4]

Number of bytes = 45056 [1]

Number of lines = 235 [1]

Number of paragraphs = 161 [1]

Number of slides = Value not defined [1]

Number of notes = Value not defined [1]

Number of hidden Slides = Value not defined [1]

Number of multimedia clips = Value not defined [1]

Hyperlink base = [4]

Number of characters (with spaces) = 8995 [1]

Соответствие числа и предопределенных констант типов - ниже:

1 msoPropertyTypeNumber

2 msoPropertyTypeBoolean

3 msoPropertyTypeDate

4 msoPropertyTypeString

5 msoPropertyTypeFloat

Свойства, недоступные в данном приложении, будут иметь вид: Number of slides = Value not defined [1]

Написал и прислал шаг Dmitri Drozdov.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: