Офисное программирование - Страница 27

Изменить размер шрифта:

Далее необходимо перейти в редактор VBA и создать форму приложения, отвечающего условиям задачи (рис. 85).

В листинге представлен код процедуры печати бланка квитанции об оплате, сопутствующие и отладочные процедуры.

Листинг (занести в Модуль1 проекта Оплата за учебу)

Option Explicit

Option Base 1

' переменные формы приложения

Public фам1 As String

Public имя1 As String

Public отчество1 As String

Public групп1 As String

Public месяц As String

Public сумма As String

Public бух As String

Public дата As String

' переменные формы шаблона документа

Public фамилия As String

Public имя As String

Public отчество As String

Public группа As String

Public месяц_опл As String

Public сумма_опл As String

Public фио_бух As String

Public дата_опл As String

Dim book(8) As String

Dim dataMas(8) As String

Dim i As Integer

Sub Печать() 'процедура печати бланка

'Заносим информацию в массивы bookmarmas, datamas

book(1) = «фамилия»: dataMas(1) = фамилия

book(2) = «имя»: dataMas(2) = имя

book(3) = «отчество»: dataMas(3) = отчество

book(4) = «группа»: dataMas(4) = группа

book(5) = «месяц_опл»: dataMas(5) = месяц_опл

book(6) = «сумма_опл»: dataMas(6) = сумма_опл

book(7) = «фио_бух»: dataMas(7) = фио_бух

book(8) = «дата_опл»: dataMas(8) = дата

'заполнение полей квитанции:

For i = 1 To 8

ActiveDocument.FormFields(ActiveDocument.Bookmarks(book(i)).Name).Result = dataMas(i)

Next

ActiveDocument.PrintPreview Выполняется предварительный просмотр печати.

'Для того чтобы реально распечатать документ, применяется метод PrintOut объекта Application (см. Help)

UserForm1.Hide

End Sub

В связи с различием переменных, принимаемых и передаваемых на печать, объявим как Public переменные двух видов: получаемые интерфейсной частью приложения и печатаемые в форме шаблона.

Обратите внимание на то, что здесь все данные имеют тип String. Такие однотипные данные позволяют записывать их в поля формы в цикле, содержащем всего два оператора (см. описание листинга).

Создание модулей работы кнопок формы приложения

Работа кнопки Выдать справку состоит в считывании введенной информации в текстовые поля формы приложения, передаче их значений переменным формы шаблона документа с дальнейшим выводом информации в шаблон документа.

Option Explicit

Private Sub CommandButton1_Click()

фамилия = фам1

имя = имя1

отчество = отчество1

группа = групп1

месяц_опл = месяц

сумма_опл = сумма

фио_бух = бух

дата_опл = дата

Call Печать

End Sub

Процедуры присваивания переменным формы приложения введенных значений в текстовые поля формы.

Private Sub textBox1_change()

фам1 = TextBox1.Value

End Sub

Private Sub textBox2_change()

имя1 = TextBox2.Value

End Sub

Private Sub textBox3_change()

отчество1 = TextBox3.Value

End Sub

Private Sub textBox4_change()

групп1 = TextBox4.Value

End Sub

Private Sub textBox5_change()

месяц = TextBox5.Value

End Sub

Private Sub textBox6_change()

сумма = TextBox6.Value

End Sub

Private Sub textBox7_change()

бух = TextBox7.Value

End Sub

Private Sub textBox8_change()

дата = TextBox8.Value

End Sub

Откомпилируйте программу и запустите на проверку.

Задача на закрепление материала

Пример 40.[5] Разработать форму бланка почтового перевода для облегчения труда сотрудников, связанных с частым оформлением денежных переводов.

Готовый шаблон документа и форма даются на рис. 90 и 91.

Офисное программирование - i_126.png

Рис. 90. Пример упрощенного бланка почтового перевода с текстовыми изменяющимися полями (шаблон документа)

Офисное программирование - i_127.png

Рис. 91. Форма Рассылка в режиме выполнения для примера 40

Часть III

Программирование на VBA в Excel

Глава 7

Особенности использования VBA в Excel

7.1. Основные объекты VBA в Excel

Использование объектов Range и Selection

В Excel наиболее важным является объект Application. Объект Application (приложение) является главным в иерархии объектов Excel и представляет само приложение Excel. Он имеет более 120 свойств и 40 методов. Эти свойства и методы предназначены для установки общих параметров приложения Excel. В иерархии Excel объект Workbook (рабочая книга) идет сразу после объекта Application и представляет файл рабочей книги. Рабочая книга хранится либо в файлах формата XLS (стандартная рабочая книга), либо XLA (полностью откомпилированное приложение). Свойства и методы рабочей книги позволяют работать с файлами. Однако наиболее «употребляемым» на практике является объект Range, который наилучшим образом отображает возможности использования VBA в Excel (о свойствах объекта Range см. табл. 19, о методах – табл. 20).

В иерархии Excel объект Range (диапазон) идет сразу после объекта worksheet. Объект Range является одним из ключевых объектов VBA. Объект selection (выбор) возникает в VBA двояко – либо как результат работы метода Select, либо при вызове свойства selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаще всего объект Selection принадлежит классу Range, и при работе с ним можно использовать свойства и методы объекта Range. Интересной особенностью объектов Range и Selection является то, что они не являются элементами никакого семейства объектов.

При работе с объектом Range необходимо помнить, как в Excel ссылаются на ячейку рабочего листа.

Задание групп строк и столбцов с помощью объекта Range

Если в диапазоне указываются только имена столбцов или строк, то объект Range задает диапазон, состоящий из указанных столбцов или строк. Например, Range («а: с») задает диапазон, состоящий из столбцов а, в и с, а Range(«2:2») – из второй строки. Другим способом работы со строками и столбцами являются методы Rows (строки) и columns (столбцы), возвращающие коллекции строк и столбцов. Например, столбцом а является columns (1), а второй строкой – Rows (2).

Связь объекта Range и свойства Cells

Так как ячейка является частным случаем диапазона, состоящим только из единственной ячейки, объект Range также позволяет работать с ней. Объект Cells (ячейки) – это альтернативный способ работы с ячейкой. Например, ячейка А2 как объект описывается Range («A2») или Cells (l, 2). В свою очередь, объект cells, вкладываясь в Range, также позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы, а именно Range(«А2:СЗ») и Range(Cells(1,2), Cells(3,3)) определяют один и тот же диапазон.

Таблица 19

Свойства объекта Range
Офисное программирование - i_128.png
Офисное программирование - i_129.png
Офисное программирование - i_130.png

Таблица 20

Методы объекта Range
Офисное программирование - i_131.png
Офисное программирование - i_132.png
Оригинальный текст книги читать онлайн бесплатно в онлайн-библиотеке Knigger.com