- •Использование 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.2.2. Функции
Процедуры-функции очень похожи на процедуры-подпрограммы, самое главное их различие – это возможность функций возвращать результат своей работы в основную программу. Тип возвращаемого значения должен быть указан при объявлении функции. Общий же синтаксис описания функции таков:
Function Имя_функции (Список формальных параметров) _
[As тип_возвращаемого_значения]
Тело функции, включающее в себя инструкцию
Имя_функции = какое-то выражение
End Function
Синтаксис описания функции очень похож на синтаксис описания процедуры. Если тип возвращаемого значения не указан, то функция возвращает тип Variant. Возвращаемое функцией значение равно выражению, стоящему справа от знака присваивания, если слева от него стоит имя функции.
В отличие от процедур для функций можно использовать такое выражение присваивания:
Переменная = Имя_функции Параметр1 Параметр2 Параметр3
.
Повторим наш пример с вычислением площади, однако используем на этот раз функцию.
Function Area ( ByVal A As Single, ByVal B As Single) As Single
Area = A*B End Function
Как уже было упомянуто выше, функции, включенные в объекты, называются методами. Вызов метода синтаксически практически идентичен вызову функции. В следующем примере вызывается метод Save (закрыть) текущего документа: ThisDocument.Save.
Передача параметров в методы осуществляется точно так же, как и в функции. Следующий пример показывает вызов метода SaveAs с одним параметром: ThisDocument.SaveAs "C:\\test.doc".
Если какой-то метод в результате своей работы возвращает объект, то к свойствам полученного объекта можно обращаться, просто продолжив выстраивать цепочку: объект, метод, свойство_полученного_объекта. Если метод принимает параметры, то эти параметры должны быть заключены в скобки, как в следующем примере:
Word.Documents.Open("C:\\test.doc").FullName.
5.2.3. Функции MsgBox и DialogBox
Для облегчения диалога с пользователем в VBA предусмотрены две стандартные функции диалога: MsgBox и DialogBox. Эти функции создают и выводят на экран окна с заданными свойствами.
Первая функция предназначена для вывода сообщений пользователю и имеет синтаксис MsgBox ( сообщение [, кнопки][,заголовок][, файл справки, раздел справки] ). Единственный обязательный аргумент сообщение – это строка, которая выводится в окне. Числовая константа кнопки определяет, какие кнопки и значки будет содержать окно. Ее возможные значения приведены в табл. 3.
Таблица 3
Описание числовых констант
|
Название константы |
Значение |
Описание |
|
vbOKOnly |
0 |
Показывает только кнопку OK |
|
vbOKCancel |
1 |
Показывает кнопки OKиCancel |
|
vbAbortRetryIgnore |
2 |
Показывает кнопки Abort,RetryиIgnore |
|
vbYesNoCancel |
3 |
Показывает кнопки Yes,NoиCancel |
|
vbYesNo |
4 |
Показывает кнопки YesиNo |
|
vbRetryCancel |
5 |
Показывает кнопки RetryиCancel |
|
vbCritical |
16 |
Показывает значок критической ошибки |
|
vbQuestion |
32 |
Показывает знак вопроса |
|
vbExclamation |
48 |
Показывает восклицательный знак |
|
vbInformation |
64 |
Показывает информационный значок |
|
vbDefaultButton1 |
0 |
Назначает первую кнопку кнопкой по умолчанию |
|
vbDefaultButton2 |
256 |
Назначает вторую кнопку кнопкой по умолчанию |
|
vbDefaultButton3 |
512 |
Назначает третью кнопку кнопкой по умолчанию |
|
vbApplicationModal |
0 |
Запускает окно диалога, которое приостанавливает выполнение текущей программы, пока пользователь не закроет его |
|
vbSystemModal |
4096 |
Запускает окно диалога, которое приостанавливает выполнение всех программ, пока пользователь не закроет его |
|
vbMsgBoxHelpButton |
16384 |
Показывает кнопку Help, которая вызывает раздел справки, если таковой установлен в параметрах |
Для того чтобы, например, оформить окно с кнопками Yes, No и Cancel, а также с восклицательным знаком, в переменной кнопки следует записать: vbYesNoCancel + vbExclamation или 3 + 48 или 51.
Свойство Заголовок определяет заголовок (свойство Caption) окна, а остальные два позволяют подключать файл справки. Первый из этих параметров задает местонахождение файла справки, а второй – индекс раздела справки, являющийся целым числом. MsgBox возвращает результат, определяя, какая кнопка окна была нажата. Результаты нажатия кнопки приведены в табл. 4.
Таблица 4
Возвращаемый результат диалога
|
Название возвращаемой константы |
Значение |
Нажата кнопка |
|
vbOK |
1 |
OK |
|
vbCancel |
2 |
Cancel |
|
vbAbort |
3 |
Abort |
|
vbRetry |
4 |
Retry |
|
vbIgnore |
5 |
Ignore |
|
vbYes |
6 |
Yes |
|
vbNo |
7 |
No |
Функция InputBox формирует диалоговое окно, в котором выдает подсказку, ожидает ввода пользователем текста или выбора им доступной кнопки, а затем возвращает набранный пользователем текст. Она имеет следующий синтаксис:
