Помощь в написании студенческих работ
Антистрессовый сервис

Управление приложением Word из Excel

РефератПомощь в написанииУзнать стоимостьмоей работы

Рассмотрим на конкретном примере реализацию управления приложением MS Word из MS Excel с использованием технологии автоматизации. Приложение в MS Excel в данном случае выступает клиентом, a MS Word — сервером автоматизации. Таким образом, из приложения на MS Excel после процедуры связывания можно работать с объектами приложения MS Word. При этом будет использоваться позднее связывание. Алгоритм… Читать ещё >

Управление приложением Word из Excel (реферат, курсовая, диплом, контрольная)

Рассмотрим на конкретном примере реализацию управления приложением MS Word из MS Excel с использованием технологии автоматизации. Приложение в MS Excel в данном случае выступает клиентом, a MS Word — сервером автоматизации. Таким образом, из приложения на MS Excel после процедуры связывания можно работать с объектами приложения MS Word. При этом будет использоваться позднее связывание.

Хотя это и не входит в задачи настоящего учебного пособия, приведем краткий обзор тех объектов MS Word, которые понадобятся для реализации примера. В MS Word объектная модель, так же как и в MS Excel, имеет иерархическую структуру и состоит из таких основных объектов, как: приложение Application, коллекция документов Documents, коллекция абзацев документа Paragraphs, коллекция предложений Sentences, коллекция слов Words, коллекция символов Characters, выделенный участок документа Selection.

Из набора методов и свойств объектов модели MS Word выделим следующие:

• объект Application:

Quit — выход из приложения,.

  • — StatusBar — вывод информации в строку состояния;
  • • объект Document:
    • — SaveAs — сохранение документа,
    • — Add — создание нового документа;
  • • объект Selection:
  • — TypeParagraph осуществляет перевод строки,
  • — TypeText выводит текст в документ.

Более полное описание объектной модели MS Word можно найди в его справочном руководстве или в работе[1].

Пример 9.3.

Смысл примера состоит в автоматизации процесса создания набора писем для рассылки клиентам налоговой службы. Процедуру, реализующую данную задачу, необходимо создать в MS Excel, а генерируемые письма — в виде отдельных документов MS Word.

Таблица с исходной информацией клиентов для создания писем показана на рис. 9.10. Диапазоны Messl, Mess2 и author (соответственно ячейки G8, G9 и G11) содержат текст, который используется для создания писем.

Алгоритм созданной процедуры Make Letter, листинг которой приведен на рис. 9.11, следующий. Работа процедуры начинается с создания объекта oWord и запуска сервера MS Word. После этого просматриваются строки данных с клиентами на листе с именем Лист1. Затем для каждого клиента с использованием свойств и методов объектов MS Word создаются и сохраняются в отдельном файле письма.

Для реализации процедуры пришлось воспользоваться макрорекордером Word, который понадобился для автоматизации создания кода процедуры и ознакомления с объектной моделью MS Word. Приемы работы с макрорекордерами Word и Excel похожи.

Схему создания процедуры MakeLetter можно описать следующим образом. Вначале была осуществлена запись макроса в MS Word. При этом записывались создание нового документа, добавление и форматирование текста, а также сохранение файла. Это позволило получить необходимую информацию о свойствах и методах объектов MS Word. Затем макрос был скопирован в модуль кода Excel и модифицирован. Прежде всего, были добавлены конструкции обработки объектов MS Excel. Кроме того, несколько сформированных макрорскордером встроенных констант MS Word пришлось заменить на их фактические значения. Это было обусловлено использованием в примере поздней привязки.

Последовательность выполнения примера 93.

  • 1. Активизируйте приложение MS Excel, создайте (сохраните) новую книгу под и менем Letter_ Word.
  • 2. Подготовьте на рабочем листе с именем Лист 1 исходные данные, как показано на рис. 9.8.[2][3][4]
Таблица с исходными данными клиентов.

Рис. 9.8. Таблица с исходными данными клиентов.

Информация для рассылки на листе книги

Set oRange = Sheets («Лист1») .Range («A1») 'начало области

messl = Sheets («Лист1»). Range («Messl») 'первая часть письма mess2 = Sheets («Лист1»). Range («Mess2 «) 'вторая часть письма author = Sheets («Лист1») .Range («author») 'автор

Цикл обработки записей на Лист 1

CItems = Application. CountA (Sheets («Лист1»).Range («A:A»)) For i = 3 To CItems Изменение строки статуса

Application.StatusBar = «Формирование письма «& i — 2.

Заполнение переменных данными Namel = oRange. Cells (i, 2) .Value 'фамилия

Name2 = oRange. Cells (i, 3).Value 'имя

Name3 = oRange. Cells (i, 4).Value 'отчество SYear = oRange. Cells (i, 6) .Value 'год

SAmt =Format (oRange.Cells (i, 5) .Value, «#,##0.00») 'сумма

Имя файла

FName = ThisWorkbook. Path & «» & Namel & «.doc» .

Формирование документа Word With oWord.

.Documents. Add 'добавление документа With. Selection .Font.Size = 12.

. ParagraphFormat. Alignment = 0 'выравнивание no левому краю

.Font.Bold = False.

.TypeText Text := «Дата:» & vbTab &.

Format (Date, «d mmmm yyyy») 'текущая дата .TypeParagraph.

.TypeText Text := «Кому:» & vbTab & Namel & vbTab & Name2 & vbTab & Name3.TypeParagraph.

.TypeText Text := «От кого: инспектор «& vbTab & author. TypeParagraph .TypeParagraph .Font.Size = 14 .Font.Bold = True.

. ParagraphFormat. Alignment = 1 'выравнивание no центру

.TypeText Text := «Уважаемый (ая) «& vbTab & Name2 & «» & vbTab & Name3. TypeParagraph .TypeParagraph .Font.Size = 12.

. ParagraphFormat. Alignment = 3 'выравнивание no ширине

.Font.Bold = False.

messR = vbTab & messl & «» & SAmt & «рублей за «.

& vbTab & SYear & vbTab & «год.» .

.TypeText messR.TypeParagraph.

.TypeText Text := vbTab & mess2.TypeParagraph.

.TypeParagraph.

.TypeText Text:=vbTab & «Инспектор» .

End With.

. ActiveDocument. SaveAs FileName: = FName 'сохранение документа End With Next i.

'закрытие и уничтожение объекта oWord. Quit Set oWord = Nothing.

' Сброс строки состояния

Application.StatusBar = «» .

MsgBox CItems — 2 & «писем сформировано и сохранено в «.

& ThisWorkbook. Path End Sub.

  • 6. Для проверки синтаксических ошибок откомпилируйте процедуру.
  • 7. Добавьте на лист в ячейку G2 кнопку (см. рис. 9.8). Для этого откройте вкладку Разработчик, нажмите кнопку Вставить и выберите в панели Элементы ActiveX элемент Кнопка.
  • 8. Отобразите окно свойств этого объекта с помощью кнопки (5* (Свойства) вкладки Разработчик. Установите размеры объекта и его название «Создание писем рассылки» (свойство Caption).
  • 9. В режиме конструктора два раза щелкните по кнопке «Создание писем рассылки». В открывшемся окне редактора кода в шаблоне обработчика события кнопки вставьте строку с вызовом процедуры MakeLetter, как показано в следующем коде:

Private Sub CommandButtonl_Click ().

MakeLetter End Sub.

Заметим, что данный обработчик будет размещен в модуле листа. Выйдите из режима конструктора.

10. Нажмите на кнопку «Создание писем рассылки». В результате в папке, где находится исходный файл Letter_Vord.xlsm, будут сформированы файлы с письмами в формате MS Word. На рис. 9.9 показан один из таких документов, который создан с помощью процедуры MakeLetter.

Результат выполнения процедуры MakeLetter.

Рис. 9.9. Результат выполнения процедуры MakeLetter.

  • [1] Заика A. A. VBA в MS Office 2007. URL: http://4VTv.intuit.ru/studies/courses/494/350/info.
  • [2] Войдите в редактор VBA (Alt + FI 1).
  • [3] Правой кнопкой мыши выделите VBAProject (Letter_Word) и выберите командуInsert —> Module из строки меню или контекстного меню.
  • [4] Дважды щелкните по объекту Module 1 и в окне редактора введите приведенный в листинге 9.3 исходный текст. Листинг 9.3 Sub MakeLetter () ' Создание писем рассылки в word, используя автоматизацию (позднее связывание) Dim oWord As ObjectDim oRange As Range Dim messl As String, mess2 As String, messR As StringDim CItems As Integer, i As Integer Dim author As String Dim Namel As String, Name2 As String, Name3 As StringDim SYear As String, SAmt As String Dim FName As String ' Создание и запуск объекта Word Set oWord = CreateObject («Word.Application»)
Показать весь текст
Заполнить форму текущей работой