
- •Использование visual basic for applications для разработки приложений в ms office
- •Введение
- •1. Общие принципы ооп
- •2. Визуальное программирование. Событийно-управляемое программирование
- •3. Структура программы и иерархия классов в office
- •4. Интегрированная среда разработки vba
- •4.1. Окна интегрированной среды
- •4.2. Меню
- •4.2.1. Меню Файл
- •4.2.2. Меню Вид
- •4.2.3. Меню Вставка
- •4.2.4. Меню Формат
- •4.2.5. Меню Отладка
- •4.2.6. Меню Запуск (Run)
- •4.2.7. Меню Сервис (Tools)
- •4.2.8. Пример создания простейшей формы
- •5. Язык vba, написание программного кода
- •5.1. Общие элементы синтаксиса, операторы
- •5.1.2. Арифметические операторы
- •5.1.3. Оператор конкатенации &
- •5.1.4. Логические операторы
- •5.1.5. Комментарий
- •5.2. Функции, процедуры, макросы, обработчики событий
- •5.2.1. Процедуры
- •5.2.2. Функции
- •5.2.3. Функции MsgBox и DialogBox
- •InputBox (подсказка [, заглавие ] [, по_умолчанию ] [, х_поз][ , у_поз][ , help_file, контекст]).
- •5.2.4. Еще один способ вызова процедуры или функции
- •5.3. Объявление переменных, типы переменных
- •5.4. Преобразованиеданных и типов данных
- •5.5. Массивы
- •5.6. Константы
- •5.7. Область видимости и время жизни переменных, констант и процедур
- •5.7.1. Управление областью видимости
- •5.7.2. Пример создания программного кода формы
- •5.8. Инструкции vba
- •5.8.1. Инструкции присваивания Let и Set
- •5.8.2. Инструкции циклов
- •5.8.3. Инструкции принятия решений
- •6. Создание графического интерфейса с помощью стандартных элементов диалога
- •6.1. Создание формы и размещение в ней элементов управления
- •6.1.1. Объектная модель библиотеки ms Forms
- •6.1.2. События форм и элементов управления
- •6.2. Элементы управления
- •6.2.1.Label (Надпись)
- •6.2.2.TextBox (Поле)
- •6.2.3.RadioButton (Переключатели или радиокнопки)
- •6.2.4.CheckBox (Флажок) и Toggle Button (Выключатель)
- •6.2.5.Frame (Рамка)
- •6.2.6.ListBox (Список)
- •6.2.7.ComboBox (Поле со списком)
- •6.2.14.Свойства элементов управления
- •7. Создание приложений для ms excel
- •7.1. Структура проекта
- •7.2. ОбъектApplication
- •7.3. Работа с книгами
- •7.4. Работа с рабочими листами
- •7.5. Работа с ячейками
- •8. Создание приложений для ms word
- •8.1. Структура проекта
- •8.2. ОбъектApplication
- •8.3. Работа с документами
- •8.4. Работа с абзацами
- •8.5. Работа с текстом
- •8.5.1. Объект Range
- •8.5.2. Объект Selection
- •9. Задания для самостоятельной работы
- •9.1. Создание графического интерфейса
- •9.2. Написание программного кода
- •9.3. Создание приложения дляWord
- •9.4. Написание функции и процедуры
- •9.5. Создание приложения дляExcel
- •Библиографический список
5.7.2. Пример создания программного кода формы
Создадим программный код для нашей формы, разработанной выше (пп. 4.2.8.). В этом коде должен выполняться расчет площади прямоугольника (по введенным в текстовые поля значениям сторон прямоугольника) и результат расчета выводиться в форме. Для этого войдем в редактор Visual Basic из приложения (файла), в котором была создана форма. Выполним вставку нового модуля, который будет автоматически назван Module1, и введем в него написанную ранее процедуру RectArea(пп. 5.2.1.).
В окне проекта перейдем к модулю формы UserForm1. Создадим обработчик события нажатие на кнопку OK, для чего дважды щелкнем на кнопку OK в форме. В результате такого действия появится редактор кода с заготовкой обработчика события. Нам остается лишь внести в него текст ниже следующей процедуры.
Option Explicit
Private Sub CommandButton1_Click( )
Dim x As Single
Dim y As Single
Dim z As Single
x = CSng(HeightBox.Text)
y = CSng(LengthBox.Text)
Module1.RectArea (x, y, z)
AreaBox.Text = z
End Sub
Рассмотрим код процедуры по порядку. Инструкцией Dim объявляются три вспомогательных переменных типа Single. HeightBox.Txt – это свойство текстового поля. Оно собственно и определяет текст, содержащийся в этом поле. Встроенная функция CSng пытается перевести этот текст в тип Single. Заметим, что функция вызывается по имени, а после него идет список формальных параметров, который может быть заключен в скобки, но это не обязательно.
Процедура RectArea, созданная нами, находится не в текущем модуле. Для того чтобы указать на это компилятору, перед именем процедуры через точку прописывается имя модуля.
Кстати, процедуру RectArea можно было бы поместить и в модуль формы, выбрав в верхней части редактора кода <Общее> и <Общая область>. В этом случае, полный путь до процедуры указывать не обязательно.
Далее создадим обработчик события Click для кнопки Cancel на нашей форме. Он будет состоять всего из одного оператора, который закрывает форму и завершает с ней работу: UserForm1.Hide.
5.8. Инструкции vba
5.8.1. Инструкции присваивания Let и Set
Инструкции присваивания – одни из наиболее часто используемых инструкций в программах. В VBA существуют два основных типа инструкций присваивания: Let и Set. Первая из инструкций используется при присвоении переменной какого-либо значения. Ее синтаксис имеет вид:
Let Имя_переменной = Выражение.
Однако то же самое записывается проще: Имя_переменной = Выражение.
Получается, что инструкция Let является архаизмом и при присвоении может быть опущена. Инструкция Set присваивает переменной или свойству какого-то объекта ссылку на другой объект. Ее синтаксис таков:
Set объектная_переменная = Объектное_выражение.
Основное отличие этой инструкции от предыдущей в том, что переменная здесь должна быть либо типа Object, либо любого его потомка (напоминаем, что любой объект в VBA является потомком базового типа Object). Если в качестве объектного выражения использовать значение Nothing, то это означает, что переменная просто «забывает» адрес того объекта, который «помнила до того» и не ссылается вообще ни на что. Кроме того, для инструкции Set возможен синтаксис:
Set объектная_переменная = New Объектное_выражение.
В этом случае происходят два действия.
1. Создается новый экземпляр класса Объектное_выражение.
2. Ссылка на этот новый экземпляр присваивается объектной переменной.