Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы прогр на VBA лекции.doc
Скачиваний:
41
Добавлен:
19.03.2016
Размер:
2.24 Mб
Скачать

2. Организация ввода – вывода данных

Для обмена информацией с пользователем в Windows используются специальные формы, которые называются диалоговыми окнами.

В проектах VBA при организации диалога с пользователем используются две разновидности встроенных диалоговых окон: окна сообщений и окна ввода.

Окно ввода (InputBox) обеспечивает ввод информации, а окно сообщений (MsgBox) выводит сообщения для пользователя.

Кроме того, в программах VBA, написанных для приложения MS Excel, есть возможность ввод и вывод данных осуществить непосредственно из ячеек (в ячейки) рабочего листа.

2.1. Окно сообщения. Стандартная процедура MsgBox

Вывод – это процесс переноса информации из оперативной памяти компьютера на внешний носитель (экран, принтер, файл).

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

Программная поддержка окна сообщения осуществляется встроенной процедурой MsgBox, которая

  • выводит на экран диалоговое окно, содержащее сообщение и одну или более кнопок (см. рис.1-5). Кнопка OK выводится всегда. Остальные кнопки – по усмотрению разработчика.

  • устанавливает режим ожидания нажатия кнопки пользователем.

Сокращенный синтаксис процедуры MsgBox:

MsgBox сообщение [, атрибуты] [, заголовок]

Элементы синтаксиса:

сообщение –

Обязательный. Строковое выражение, отображаемое как сообщение в диалоговом окне. Максимальная длина строки 1024 символа.

атрибуты –

Необязательный. Числовое выражение, с помощью которого можно установить

  • число и тип отображаемых кнопок;

  • тип используемого информационного значка;

  • основную кнопку.

Значение по умолчанию этого параметра равняется 0. Значения констант, определяющих число, тип кнопок и используемых значков, (табл.8. – 9). Для вывода в окне сообщения нескольких кнопок и информационных значков значения констант указываются в виде элементов операции конкатенации. Например:

vbOKCancel + vbExclamation

заголовок -

Необязательный. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения (рис.1).

Наличие запятых, соответствующих отсутствующим не последним аргументам, является обязательным.

Таблица 8

Значения параметра Buttons процедуры и функцииMsgBox, определяющие

отображаемые кнопки в окне сообщения

Константа

Значение

Отображаемые кнопки

vbOKOnly

0

OK

vbOKCancel

1

OK, Отмена

vbAbortReplyIgnore

2

Стоп,Повтор,Пропустить

vbYesNoCancel

3

Да, Нет,Отмена

vbYesNo

4

Да, Нет

vbReplyCancel

5

Повтор,Отмена

Таблица 9

Значения параметра Buttonsпроцедуры и функцииMsgBox, определяющие

отображаемые информационные значки в окне сообщения

Константа

Значение

Значок сообщения

vbCritical

16

vbQuestion

32

vbExclamation

48

vbInformation

64

Параметры атрибуты и заголовок могут отсутствовать. Однако если в процедуре используется параметр заголовок, то перед ним необходимо указать два разделительных символа “,” (запятая).

Пример 2.1. Вывод простого информационного сообщения.

ПроцедураPr_1:

Sub Pr2_1()

' Простое информационное сообщение

MsgBox "Привет!!!"

End Sub

Результатом работы данной процедуры является информационное сообщение, выведенное в виде диалогового окна (рис.2.1.). Поскольку в процедуре MsgBox отсутствуют параметры атрибуты и заголовок, то в диалоговом окне выведена только одна обязательная кнопка OK, которая используется для закрытия окна, и в заголовке окна выведено имя приложения – Microsoft Excel.

Для ввода в строке заголовка окна сообщения личного заголовка (например, такого, как на рисунке 2), необходимо изменить процедуру MsgBox:

MsgBox “Привет!!!”, , “Пример”

Усложним выводимое информационное сообщение. На рис.2.2 б) показан результат вывода строковой константы “Привет!!!” и значения строковой переменной Name. Для их вывода в качестве единого информационного сообщения использована операция конкатенации (сцепления). Данный вывод реализован с помощью следующей процедуры.

Sub Pr2_1_б()

' Простое информационное сообщение

' с выводом заголовка

Dim Name As String

Name = "Анна"

MsgBox "Привет!!!" & Name , , "Пример"

End Sub

Для вывода сообщения в нескольких строчках используется стандартная функция Сhr(). Она позволяет получать символы, генерируемые при нажатии различных клавиш. Например, Chr(9) – соответствует нажатию клавиши Tab, Chr(13) – клавиши Enter.

Поскольку символы, используемые для начала новой строки являются очень важными при форматировании сообщений и других строковых данных, которыми манипулирует VBA-процедуры, VBA имеет несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr():

  • vbCr – символ возврата каретки, эквивалент выражения Chr(13);

  • vbTab – символ табуляции, эквивалент выражению Сhr(9). Символы табуляции включают в строки для выравнивания данных в столбцах.

На рис.2.2 в) приведены результаты работы процедуры Pr2_1_в().

Sub Pr2_1_в()

' Простое информационное сообщение с выводом заголовка

Dim Name As String

Name = "Анна"

MsgBox "Привет!!! " & Chr(13) & Name, , "Пример"

End Sub

Пример 2.2. Вывод информационного сообщения совместно с информационным значком в окне сообщения.

Процедура Pr2_2 осуществляет вывод диалогового окна, представленного на рис.2.3.

Sub Pr2_2()

' Вывод сообщения в сочетании с

' предупреждающим информационным значком

MsgBox "Процент выполнения плана выпуска продукции -" & _

vbCr & "незначительный", vbExclamation, _

"Пример"

End Sub

Для вывода информационного значка (Предупреждение) используется в качестве параметра атрибуты встроенная константа vbExclamation (см. табл.9).

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

Данное окно (рис.2.4) можно вывести с помощью следующей процедуры

Sub Pr2_3()

' Вывод сообщения с двумя кнопками ОК и Отмена

'в сочетании с предупреждающим информационным значком.

' Кнопка ОК является основной

MsgBox "Процент выполнения плана выпуска продукции -" & _

Chr(13) & " незначительный", vbOKCancel + _

vbQuestion + vbDefaultButton1, "Пример"

End Sub