VBA в Word Программное создание и открытие документов Word в VBA

          Назад



11.4.2 Свойства и методы коллекции Documents


Коллекция Word.Documents, методы Add(), Open(), Item(), программное создание и открытие документов Word в VBA

Коллекция Documents, как уже говорилось, представляет все документы Word, открытые в настоящий момент. Начинается нумерация документов в коллекции с 1. Из свойств этой коллекции интерес может представлять только свойство Count — количество открытых документов. Гораздо важнее методы этой коллекции. Про некоторые из них мы уже говорили в предыдущем разделе, но здесь для справки при приведем информацию о них еще раз:

  • Add() — этот метод позволяет создать и сразу же открыть новый документ (и вернуть ссылку на его объект). Это — наиболее распространенный способ создания новых документов в Word. Полный синтаксис этого метода выглядит как

Add(Template, NewTemplate, DocumentType, Visible)

Template  — это шаблон для создания нового документа, NewTemplate (true/false ) — делать ли новый документ шаблоном, DocumentType  — варианты: wdNewBlankDocument , wdNewEmailMessage, wdNewFrameset или wdNewWebPage (по умолчанию  — новый чистый документ ), Visible  — будет ли новый документ видимым (по умолчанию ) или невидимым .

  • Open() — этот еще один важнейший метод коллекции Documents позволяет открыть документ с диска и добавить его в коллекцию. Этот метод принимает множество параметров, из которых обязательным является только один — имя документа (вместе с путем к нему). Самый простой вариант применения этого метода выглядит так:

Dim oDoc1 As Document

Set oDoc1 = Documents.Open("c:\doc1.doc")

  • метод Item() позволяет найти нужный документ в коллекции по его индексу. Но обычно для получения ссылки на нужный документ используется конструкция For..Next с проверкой значения какого-либо свойства документа через If. Чаще всего это свойство — Name:

Dim oDoc1 As Document

For i = 1 To Documents.Count

Set oDoc1 = Documents.Item(i)

If oDoc1.Name = "doc1.doc" Then

Exit For

End If

Set oDoc1 = Nothing

Next

Эта конструкция возвращает ссылку в виде переменной oDoc1 на документ doc1.doc, если он точно есть в коллекции. Если его нет, то во избежание ошибок нужно реализовывать дополнительные проверки. На практике можно было бы подумать, не нужно ли вам перед сравнением привести имя документа doc1.doc в нижний регистр — если учитывать регистр букв при поиске вам не нужно.

Через свойство Item можно получить доступ к объекту документа напрямую. Например, в этом примере мы получаем имя первого документа в коллекции Documents:

MsgBox Documents.Item(1).Name

  • методы Save() и Close() — позволяют сохранить и закрыть все документы в коллекции соответственно.
  • методы CanCheckOut() (можно ли "забрать" документ в монопольный доступ) и CheckOut() (забрать документ в монопольный доступ) можно применять, если документ находится в документной библиотеке в базе данных SharePoint Portal Server.



Далее