Програмування в Word
З точки зору програмування Word - це, перш за все, засіб для виготовлення звітів до баз даних. Якщо ж звіт спочатку створюється в документі Word, то користувач завжди може сам внести в створений документ необхідні зміни - переважна більшість користувачів на підприємстві вміють працювати в Word. Терміново розшукувати розробника вже не потрібно.
На практиці для вирішення більшості програмних завдань достатньо знати всього лише п'ять об'єктів (з супутніми колекціями):
об'єкт Application;
об'єкт Document (з колекцією Documents);
об'єкт Selection;
об'єкт Range;
об'єкт Bookmark (з колекцією Bookmarks).
Як працювати з об'єктом Application
Об'єкт Application - це сам додаток Microsoft Word. Всі інші об'єкти Word "вкладені" в нього. Створити цей об'єкт - значить, запустити Word на вашому комп'ютері. Як правило, це нам і необхідно (якщо ми створюємо документ у форматі Word з іншої програми. Але не забудьте - якщо ви запускаєте Word з іншої програми Office, то необхідно додати у ваш проект посилання на бібліотеку Microsoft Word 11.0 Object Library.
Код запуску Word дуже простий:
Dim oWord As New Word.Application
Однак, виконавши його з іншої програми, ви, швидше за все, навіть не помітите, що у вас щось сталося. Причини прості:
1. За замовчуванням Word запускається в прихованому вікні.
2. Якщо в ньому не відкрито жоден документ, він тут же закривається (після то-го, як завершується створила його процедура).
Зробити Word видимим дуже просто:
oWord.Visible = True
Проте може виникнути питання: а чи потрібно його робити видимим? Можна віддати перевагу тому, щоб Word таки був видимим: по-перше, відразу видно всі проблеми при створенні документа, а по-друге, користувачам чомусь дуже подобається, коли у них на очах відкривається Word і починає друкувати рядки, які в іншому разі довелося б друкувати їм самим.
Якщо ви працюєте з Word в прихованому вікні, не забудьте після виконання необхідних дій його закрити (інакше він так і залишиться в оперативній пам'яті, видимий тільки через Task Manager). Для закриття Word потрібно викликати його метод Quit ().
Щоб Word не закривався сам собою, в ньому досить створити новий документ.
В об'єкта Application є безліч подій: відкриття, закриття, збереження та друк документа, клацання мишею, активізація, вихід з додатку і т. д. Єдине, що слід ще раз наголосити - події об'єкта Application за замовчуванням не відображаються в редакторі Visual Basic. Щоб вони з'явилися, в розділ Declarations потрібно помістити наступний рядок коду:
Public WithEvents App As Word.Application
В цьому випадку в списку об'єктів у вікні редактора коду для форм з'явиться об'єкт App з усіма необхідними подіями.
Як працювати з колекцією Documents
На один щабель нижче об'єкта Application в об'єктної моделі Word (і за логікою використання в додатках) знаходяться колекція Documents і об'єк-екти Document, з яких вона складається. При програмуванні в Word без них зазвичай не обійтися. Найчастіше в програмах нам потрібно:
1. Запустити Word.
2. Створити або відкрити документ.
3. Щось з цим документом зробити (наприклад, надрукувати в потрібні місця цього документа значення, отримані з бази даних або від користувача).
Найпростіший варіант створення документа виглядає так:
Dim oDoc As Word.Document
Set oDoc = Application.Documents.Add ()
При цьому ми створили звичайний порожній документ (на основі шаблону Normal.dot) і отримали посилання на нього в об'єктну змінну oDoc. Далі в документ можна програмно вводити потрібну нам інформацію. Однак створювати порожній документ і формувати весь його вміст зручно лише тоді, коли документ дуже простий. Набагато простіше набрати і оформити складний документ звичайним способом, як простий документ Word, і залишити в ньому порожні місця для заповнення з програми. Найпростіше це зробити за допомогою шаблона Word.
Спочатку потрібно набрати текст договору, залишивши порожні місця для змінюваних даних, і зберегти його з розширенням dot (припустимо, що він збережений на диску C: з ім'ям dog_blank.dot). Тоді створити документ на основі цього шаблону можна так:
Dim oDoc As Word.Document
Set oDoc = Application.Documents.Add ("C: \ dog_blank.dot")
А далі за допомогою об'єктів Bookmark і Range вводимо текст в залишені порожні місця.
Часто виникає потреба програмним способом налаштовувати новий документ, а відкрити вже наявний і щось зробити з ним. Відкрити документ найпростіше за допомогою методу Open () колекції Documents. Найпростіший варіант застосування цього методу виглядає так:
Dim oDoc1 As Word.Document
Set oDoc1 = Documents.Open ("c: \ doc1.doc")
Зберігати документи краще за допомогою методів Save () іSaveAs () об'єкта Document. Часто використовуваних подій в об'єкта Document всього три: New (можна визначити тільки для шаблону, спрацьовує, коли на основі цього шаблону створюється новий документ), Open і Close. Всі ці події очевидні і доступні у вікні редактора коду Visual Basic.