Vba объекты word примеры. Программирование в Word
10. Программирование в Word
10.1 Зачем программировать в Word
Создание приложений VBA в Word, типичные ситуации
Word - старейшее и самое популярное приложение, входящее в состав Microsoft Office. В большинстве организаций пользователи готовят документы именно в Word.
С точки зрения программирования Word - это прежде всего средство для изготовления отчетов к базам данных. При этом отчет - это любой документ, который формируется на основе информации из базы данных, например, договор, акт приемки-передачи, приходный кассовый ордер, объявление на взнос наличными, распоряжение в бухгалтерию, накладная и т.п. Конечно же, к отчетам, которые можно формировать в Word, относятся и документы со сводными данными - отчеты за период, ведомости и т.п.
Автору приходилось создавать приложения с отчетами, разработанными в самых разных программных продуктах - Microsoft Access, Crystal Reports, Microsoft Reporting Services и т.п. Если ваше приложение генерирует отчеты к базам данных в Microsoft Word, то, скорее всего, такие отчеты будут не самыми быстрыми с точки зрения их формирования и не самыми простыми с точки зрения программирования. Зато совершенно точно они будут самыми дружелюбными по отношению к конечному пользователю. Почему?
Очень часто на предприятии возникает необходимость исправить в форме отчета всего пару строк - например, вместо "Директор" поставить "И.О. Директора". Если отчет создан в Crystal Reports или Microsoft Reporting Services, придется срочно обращаться к разработчику. А через какое-то время И.О. утвердят в должности директора, и разработчику придется править отчет снова.
Если же отчет изначально создается в документе Word, то пользователь всегда может сам внести в созданный документ необходимые изменения - подавляющее большинство пользователей на предприятии умеют работать в Word. Срочно разыскивать разработчика уже не нужно.
У изготовления отчетов в Word есть и другие преимущества. Как правило, при изготовлении отчетов в Word значения из базы данных подставляются в шаблон отчета, который хранится в базе данных или файловой системе (в файле *.dot). Если формат отчета сложный, с большим количеством специфического оформления (пример - объявление на взнос наличными), то намного проще подготовить его шаблон в Word, чем, к примеру, в Crystal Reports или Reporting Services.
Еще одно программное применение Word - работа с разными форматами документов. Word умеет работать с документами самых разных форматов. Эти его возможности вполне можно применить для массовой обработки документов.
Случай из практики: в каталоге на диске у нас собралось несколько сотен "разнокалиберных" документов разных пользователей. Часть из них создана в Word разных версий, часть - просто текстовые файлы, некоторые документы в - форматах HTML, XML или EML (сообщения электронной почты). На предприятии внедрена система документооборота на основе SharePoint Portal Server и нам необходимо привести все эти документы к единому формату (Word 2003) и загрузить их на SharePoint Portal Server. Конечно же, без автоматизации в такой ситуации возиться придется очень долго.
Третье программное применение Word - форматирование документов, например, программное применение стилей, поиск и замена участков текста сразу во многих документах, работа со структурой документа и т.п. Обычно такие задачи ставятся в издательствах, например, при подготовке рукописей.
На странице документа Word можно организовать работу с доста- точно сложной программой, даже не создавая для этого отдельных Win- dows-форм, запускающихся, например, при открытии документа или при нажатии на кнопку на странице документа, а просто разместив на нем поля ввода данных и показывая программно на той же странице результаты по- сле изменения данных.
Однако, многие математические расчеты проще выполнить в системе Excel, при хранении информации в базах данных очень большие возмож- ности обработки этой информации имеет Access. При работе с базами дан- ных в крупных информационных системах может быть предусмотрено формирование отчетов с выводом их в Word или Excel, при этом разработ- ку таких программ может выполнить лишь специалист, хорошо знакомый как с архитектурой базы данных информационной системы, так и с языком VBA.
Некоторые принципы работы с объектами Word можно освоить, если записать некоторую последовательность своих действий с помощью сред- ства Word Запись макроса, которое присутствует на вкладке ленты Разра- ботчик. Данная вкладка присутствует, если в Параметрах Word на стра- нице Основные стоит галочка у пункта Показывать вкладку Разработчик на ленте.
Выполним следующие действия:
1) нажмем на кнопку Запись макроса, ни кнопку, ни клавиши макросу можно не назначать, зададим, где будет сохраняться текст макроса: Макрос доступен для текущего документа;
2) переместимся в конец документа с текущей позиции (была не в конце), нажав клавиши Ctrl+End;
3) нажмем клавишу Enter и напишем слово «Привет!»;
4) еще раз повторим операцию пункта 3;
5) выделим последнее слово, нажав Shift+Home и нажмем клавишу Delete;
6) перейдем в начало первой строки «Привет!», нажмем Shift+End и затем клавишу Delete;
7) на вкладке Разработчик сначала нажмем кнопку Остановить запись, затем кнопку Visual Basic;
8) в открывшемся окне редактора Visual Basic слева на панели Project сделаем двойной щелчок мышкой на разделе Progect() - Modules - NewMacros и увидим справа окно с текстом программы на языке VBA, которое показано на рисунке 5.43.
При сохранении документа, в котором присутствуют программные модули, в системе Microsoft Office 2007 следует выбрать тип файла Доку- мент Word с поддержкой макросов, иначе текст программ не будет сохра- нен.
В тексте макроса на рисунке 5.43 Selection - один из основных объ- ектов, которые содержит главный объект Application - приложение Word.
Рисунок 5.43. Текст макроса на языке VBA |
При написании текста программ можно использовать всплывающий список свойств и методов, который появляется для стандартных объектов в редакторе Visual Basic после написания имени объекта и нажатия после неё точки (см. рисунок 5.44), полное описание свойств и методов объектов присутствует в справочной системе.
Всплывающий список свойств и методов можно получить также, на- жав комбинацию клавиш Ctrl+пробел.
Кроме того, при написании текста программы для стандартный про- цедур и функций появляются всплывающие подсказки по их синтаксису (см. рисунок 5.45).
МsgВоА(Рrотрt [ШстеЛз VbМsgВохStуlе = vbОКОпlу], }