Офисное программирование
Добавить в закладки К обложке
- Введение - Страница 1
- Часть IОсноные седения о программироании на VBA - Страница 2
- 1.2. Редактор VBA. Первое знакомство - Страница 7
- 1.3. Изменение порядка выполнения операторов - Страница 9
- Глава 2Объект UserForm - Страница 14
- 2.2. Использование форм - Страница 16
- Глава 3Массивы, процедуры, функции - Страница 20
- 3.2. Работа с различными типами данных - Страница 24
- 3.3. Процедуры и функции VBA - Страница 26
- Глава 4Создание VBA-программ - Страница 31
- 4.2. Элементы управления ComboBox, OptionButton и Frame - Страница 34
- 4.3. Элементы управления MultiPage, ScrollBar, SpinButton[2] - Страница 37
- 4.4. Объект DataObject[3] - Страница 41
- Часть IIПрограммирование на VBA в Word - Страница 44
- 5.2. Форматирование документа - Страница 48
- Глава 6Автоматизация стандартных документов - Страница 52
- 6.2. Создание и автоматическое заполнение бланков стандартных документов - Страница 55
- Часть IIIПрограммирование на VBA в Excel - Страница 58
- 7.2. Использование возможностей VBA при непосредственных расчетах - Страница 63
- 7.3. Финансовые функции - Страница 67
- Глава 8Построение диаграмм средстами VBA - Страница 69
- 8.2. Построение круговых диаграмм и гистограмм - Страница 72
- Глава 9Базы данных в Excel - Страница 73
- 9.2. Конструирование пользовательского интерфейса - Страница 76
- Глава 10Создание собственного головного меню[9] - Страница 78
- Литература - Страница 83
После окончания разработки формы документа сохраним его под именем Оплата за учебу в каталоге Шаблоны. На рис. 88 представлен шаблон созданного документа с изменяющимися полями.
Создание модуля Печать для шаблона документа
Далее необходимо перейти в редактор 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.

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