Чтение онлайн

на главную - закладки

Жанры

Офисное программирование
Шрифт:

Кнопка Выход завершает игру, выдает итоговые сообщения (см. рис. 83).

Private Sub CommandButton2_Click

MsgBox («Партий» + TextBox1.Value + (Chr(13)) + «в банке „ + TextBox4.Value + (Chr(13)) + „ваш максимум“ + TextBox2.Value + (Chr(13)) + „ваш минимум“ + TextBox3.Value + (Chr(13)) + „счет“ + TextBox5.Value +“:» + TextBox6.Value)

UserForm4.Show

End Sub

Private Sub UserForm Initialize

Unload UserForm2

OptionButton1.Value = True

TextBox4.Value = a

Label6.Caption = imya

TextBox2.Value = TextBox4.Value

TextBox3.Value = TextBox4.Value

End Sub

Рис. 83. Итоговые

расчеты игры примера 38

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

Рис. 84. Объявление глобальных переменных и создание модуля запуска главной формы игры в примере 38

6.2. Создание и автоматическое заполнение бланков стандартных документов

Создание VBA-программ

Пример 39. При оплате за обучение студент вносит деньги в кассу, где бухгалтер заполняет от руки квиток об оплате. Автоматизировать ручную работу бухгалтера, создав форму, заполняющую карточку оплаты, которую можно при необходимости отправить на печать.

Технология выполнения

Интерфейс шаблона и приложения

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

Рис. 85. Форма примера 39 в рабочем состоянии

Далее рассмотрим, как автоматизировать печать квитанции об оплате за обучение.

Начнем с разработки бланка стандартного документа (печатной формы). Эту форму можно сделать на базе шаблона с текстовыми полями, в которые будут заноситься изменяющиеся сведения. Для этого выполните следующие команды: Файл + Создать. В правой части окна нового документа выберите раздел Шаблоны и гиперссылку На моем компьютере (рис. 86). После чего появится диалоговое окно Шаблоны (рис. 87), в котором на вкладке Общие необходимо выделить пиктограмму Новый документ и поставить переключатель Шаблон в рамке Создать.

Включите панель Формы (Вид + Панели инструментов + Формы). Для дальнейшей работы понадобится только один элемент этой панели – Текстовое поле

которое позволяет создать на форме изменяющееся поле (либо посредством кода, либо самим пользователем). Выбирая курсором место в документе Word для расположения соответствующего поля и расположив на нем элемент Поле, можно получить необходимую форму. Для того чтобы расширить поле, надо поставить в него курсор и несколько раз нажать Tab. Для того чтобы подчеркнуть поле, выделите его как текст и примените к нему подчеркивание.

Рис. 87. Диалоговое окно Шаблоны

Создайте шаблон документа, придерживаясь рис. 88.

Рис. 88. Шаблон

документа word, в который вносятся данные для печати

В некоторых полях (поля выделены серым фоном) можно ввести значения по умолчанию. Значение по умолчанию устанавливается при помощи диалогового окна Свойства, которое можно вывести на экран следующим образом:

щелкнуть правой клавишей мыши по необходимому текстовому полю;

в появляющемся контекстном меню выбрать Свойства;

указать значение по умолчанию (рис. 89).

Значения по умолчанию позволяют менять только те данные, которые должны изменяться нечасто. Например, оплата за обучение в основном одна и та же – 1500 руб., поэтому значение этого поля будет меняться не очень часто.

< image l:href="#"/>

Рис. 89. Установка параметров текстового поля «сумма_опл»

Рассмотрим и другие необходимые элементы рабочего окна «Параметры текстового поля». В поле Тип указывается тип значения, которое можно помещать в поле. Можно заполнить поле Максимальная длина, хотя наиболее важным для дальнейшего использования кодом VBA является поле Закладка. Значение этого поля будет служить меткой, в которую должен устанавливаться курсор, перед помещением в документ очередной порции информации. Поэтому, как только все необходимые поля определены, нужно указать для каждого из них осмысленные метки. Для бланка документа Word, приведенного на рис. 86, зададим (последовательно) такие метки:

Фамилия – фамилия студента;

Имя – имя студента;

Отчество – отчество студента;

Группа – наименование группы;

Месяц_опл – название месяца, за который вносится оплата;

Сумма_опл – внесенная сумма;

ФИО_бух – фамилия принявшего бухгалтера;

Дата_опл – дата оплаты.

После окончания разработки формы документа сохраним его под именем Оплата за учебу в каталоге Шаблоны. На рис. 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

Поделиться:
Популярные книги

Жена проклятого некроманта

Рахманова Диана
Фантастика:
фэнтези
6.60
рейтинг книги
Жена проклятого некроманта

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

Демон

Парсиев Дмитрий
2. История одного эволюционера
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Демон

30 сребреников

Распопов Дмитрий Викторович
1. 30 сребреников
Фантастика:
попаданцы
альтернативная история
фэнтези
фантастика: прочее
5.00
рейтинг книги
30 сребреников

Небо в огне. Штурмовик из будущего

Политов Дмитрий Валерьевич
Военно-историческая фантастика
Фантастика:
боевая фантастика
7.42
рейтинг книги
Небо в огне. Штурмовик из будущего

Осознание. Пятый пояс

Игнатов Михаил Павлович
14. Путь
Фантастика:
героическая фантастика
5.00
рейтинг книги
Осознание. Пятый пояс

Камень

Минин Станислав
1. Камень
Фантастика:
боевая фантастика
6.80
рейтинг книги
Камень

Блокада. Знаменитый роман-эпопея в одном томе

Чаковский Александр Борисович
Проза:
военная проза
7.00
рейтинг книги
Блокада. Знаменитый роман-эпопея в одном томе

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Книга 4. Игра Кота

Прокофьев Роман Юрьевич
4. ОДИН ИЗ СЕМИ
Фантастика:
фэнтези
боевая фантастика
рпг
6.68
рейтинг книги
Книга 4. Игра Кота

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Новый Рал 2

Северный Лис
2. Рал!
Фантастика:
фэнтези
7.62
рейтинг книги
Новый Рал 2

Низший 2

Михайлов Дем Алексеевич
2. Низший!
Фантастика:
боевая фантастика
7.07
рейтинг книги
Низший 2

Под маской, или Страшилка в академии магии

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.78
рейтинг книги
Под маской, или Страшилка в академии магии