Колекція 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
Set oDoc1 = Nothing
Ця конструкція повертає посилання у вигляді змінної oDoc1 на документ doc1.doc, якщо він точно є в колекції. Якщо його немає, то щоб уникнути помилок потрібно реалізовувати додаткові перевірки. На практиці можна було б подумати, чи не потрібно вам перед порівнянням привести ім'я документа doc1.doc в нижній регістр - якщо враховувати регістр букв при пошуку вам не потрібно.
Через властивість Item можна отримати доступ до об'єкта документа безпосередньо. Наприклад, в цьому прикладі ми отримуємо ім'я першого документа в колекції Documents:
- методи Save () і Close () - дозволяють зберегти і закрити всі документи в колекції відповідно.
- методи CanCheckOut () (чи можна "забрати" документ в монопольний доступ) і CheckOut () (забрати документ в монопольний доступ) можна застосовувати, якщо документ знаходиться в документної бібліотеці в базі даних SharePoint Portal Server.