
- •Конспект лекций «Основы языка Visual Basic for Applications»
- •Содержание
- •Основные элементы vba
- •Что такое vba
- •Понятие объектов и их семейств
- •Свойства
- •События
- •Структура редактора vba
- •Окно проекта
- •Окно для редактирования кода
- •Интеллектуальные возможности редактора кода
- •Команды Меню интегрированной среды vba
- •Панели инструментов
- •Работа с макросами
- •Понятие макросов
- •Запись макросов
- •Выполнение макросов
- •Просмотр кода макроса
- •Редактирование кода макроса
- •Удаление макросов
- •Назначение макросов командным кнопкам
- •Назначение макроса графическим изображениям
- •Назначение макросов кнопкам панелей инструментов
- •Основные понятия языка программирования vba
- •Понятие и общие правила написания программного кода
- •Типы данных
- •Объявление переменных
- •Допустимые имена
- •Массивы
- •Константы
- •Операторы ввода / вывода информации
- •Простейшие операции
- •Операции vba
- •Приоритет выполнения операций в выражениях
- •Оператор присвоения
- •Структура программы. Процедуры. Функции
- •Основные понятия
- •Понятие модуля
- •Понятие процедуры
- •Понятие функции
- •Правила для имён процедур и функций
- •Вызов процедур и функций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования типов
- •Функции обработки строк
- •Функции времени и даты
- •Реализация разветвляющихся алгоритмов
- •Условный оператор If … Then
- •Вложенные конструкции для принятия решений с использованием условного оператора If … Then
- •Многозначные ветвления If … Then
- •Оператор выбора Select Case
- •Циклы с заданным количеством повторений For
- •Цикл For … Next
- •Вложенные циклы For … Next
- •Циклы с логическим управлением повторениями While и Do
- •Цикл While … Wend (цикл с предусловием)
- •Цикл Do While … Loop (цикл с предусловием)
- •Цикл Do … Loop While (цикл с постусловием)
- •Адресация ячеек
- •Список использованной литературы
-
Операторы ввода / вывода информации
Ввод и вывод информации, как правило, в визуальных средах осуществляется с помощью диалоговых окон. В проектах VBA наиболее часто встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в VBA (встроенные диалоговые окна), и если их возможностей достаточно, то можно обойтись без проектирования диалоговых окон. Окно сообщений MsgBox выводит простейшие сообщения для пользователя, а окно ввода InputBox обеспечивает ввод информации.
Функция InputBox |
Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа string, содержащее текст, введенный в поле. Синтаксис: InputBox (prompt [, title] [, default] [, xpos] _ [, ypos] [, helpfile, context]) As Stirng Аргументы:
context — числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо наличие также аргумента helpfile |
Процедура MsgBox |
Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа integer, указывающее, какая кнопка была нажата. Синтаксис: MsgBox(prompt[, buttons] [, title] [, helpfile, context]) as VbMsgBoxResult Аргументы:
|
Строковое значение prompt может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (Chr(13)), символа перевода строки (Сhr (10)) или комбинацию этих символов (Chr(13) & Chr (10)).
Также допускается объединение нескольких строк (фрагментов) в одну непосредственно в месте размещении аргумента prompt с помощью символа конкатенации (амперсанд) «&».
Например:
MsgBox «Строка1» & Переменная & «Строка 2»
Значения аргумента buttons процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне:
Константа |
Значение |
Отображаются кнопки |
vbOKOnly |
0 |
|
vbOKCancel |
1 |
|
vbAbortRetryIgnore |
2 |
|
vbYesNoCancel |
3 |
|
vbYesNo |
4 |
|
vbRetryCancel |
5 |
|
Значения аргумента buttons процедуры MsgBox, определяющие отображаемые информационные значки в диалоговом окне:
Константа |
Значение |
Отображаются кнопки |
vbCritical |
16 |
|
vbQuestion |
32 |
|
vbExclamation |
48 |
|
vbInformation |
64 |
|
Значения аргумента buttons процедуры MsgBox, определяющие основную кнопку в диалоговом окне:
Константа |
Значение |
Номер основной кнопки |
vbDefaultButton1 |
0 |
1 |
vbDefaultButton2 |
256 |
2 |
vbDefaultButton3 |
512 |
3 |
vbDefaultButton4 |
768 |
4 |
При написании программ с откликом, в зависимости от того, какая кнопка диалогового окна нажата, вместо возвращаемых значений удобнее использовать следующие константы VBA, которые делают код программы более удобочитаемыми, к тому же, их легко запомнить.
Константа |
Значение |
Нажатая кнопка |
vbOK |
1 |
OK |
vbCancel |
2 |
Отмена (Cancel) |
vbAbort |
3 |
Прервать (Abort) |
vbRetry |
4 |
Повторить (Retry) |
vblgnore |
5 |
Пропустить (Ignore) |
vbYes |
6 |
Да (Yes) |
vbNo |
7 |
Нет (No) |
Приведем пример использования окон сообщений:
Рис. 4.1.-Диалоговое окно «Пример окна ввода»
Рис. 4.2.-Диалоговое окно Пример окна сообщения
Рис. 2.3.-Диалоговое окно Ещё один пример окна сообщения
Приведем пример программы использования диалоговых окон. Этот пример позволяет отобразить на экране диалоговое окно с тремя кнопками Да, Нет, Отмена и информационным знаком. Клавише Enter назначена функция кнопки Да. По нажатию одной из этих кнопок на экране отображается сообщение, подтверждающее нажатие.
Sub ТриКнопки()
Dim Сообщение As String
Dim Кнопка As Integer i
' В переменной Сообщение задается структура диалогового окна
Сообщение = vbYesNoCancel + vbQuestion + vbbefaultButtonl
‘ В переменную Кнопка заносится целое число, возвращаемое MsgBox при
‘ нажатии кнопки
Кнопка= MsgBox("Выбираете Да, Нет или Отмена?", Сообщение, "Еще пример”)
' В зависимости от значения переменной Кнопка,
' на экране отображается соответствующее сообщение:
Select Case Кнопка
Case vbYes
MsgBox "Выбрали Да", vblnformation, "Еще пример"
Case vbNo
MsgBox "Выбрали Нет", vblnformation, "Еще пример"
Case vbCancel
MsgBox "Выбрали Отмена", vblnformation, "Еще пример"
End Select
End Sub
Демонстрируется
выполнение практического задания