Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5401.pdf
Скачиваний:
5
Добавлен:
13.11.2022
Размер:
1.36 Mб
Скачать

32

реакция на какие-либо ошибки или исключительные ситуации, возникающие при выполнении программы.

Приведенных выше операторов VBA достаточно для начального знакомства с VBA, хотя ряд полезных операторов, обработки ошибок в частности, остался вне рассмотрения.

Организация ввода-вывода в VBA-программах

Рассмотрим отдельно организацию ввода–вывода в VBA-программах. Для организации приема информации от пользователя в программу и вывода результатов из программы в VBA имеется несколько возможностей.

Осуществлять ввод-вывод из/в текстовые файлы basic-процедурами

Input, Print и Write.

Визуальный ввод-вывод на экран через стандартные диалоговые окна MsgBox и InputBox, организуя диалог с пользователем.

Разработка своих форм интерфейса пользователя.

Осуществлять ввод-вывод в офисный документ host-приложения, например, накапливая протокол диалога с пользователем в документе Word.

Первый способ, так сказать по старинке, последовательный доступ к текстовому файлу подробно описывать не будем. Разместим на дискете текстовый файл a:\t.txt, в котором содержится строка символов

”abc”.

Dim Str1 As String, Str2 As String

’открываем файл на чтение

Open ”a:\t.txt” For Input As #1 Input #1, Str1

Close #1

MsgBox ”считали из файла строку ” & Str1 Str1 = Str1 & ”xyz” ’изменили строку ’открываем файл на запись

Open ”a:\t.txt” For Output As #1 Write #1, Str1

Close #1

MsgBox ”записали в файл строку ” & Str1 ’открываем файл на чтение

Open ”a:\t.txt” For Input As #1

33

Input #1, Str2

MsgBox ”считали из файла строку ” & Str2 Close

Для визуального вывода используется стандартное диалоговое окно MsgBox. Это окно содержит следующие элементы (см. рис. 4):

текст сообщения,

заголовок,

пиктограмма,

набор кнопок.

MsgBox выводит на экран окно с сообщением и устанавливает режим ожидания нажатия кнопки пользователем. Окно MsgBox можно выводить процедурой или функцией. Функция MsgBox работает так же, как и процедура, но, кроме вывода на экран диалогового окна, возвращает на свое имя значение типа Integer, указывающее, какую кнопку нажал пользователь.

Синтаксис вызова окна через функцию MsgBox:

имяПеременной = MsgBox(текст[,опция][,заголовок] _ [файлСправки, контекст])

где текст – это строковое выражение, до 1024 символов, отображаемое как сообщение на боксе;

опция – число, которым заказываем количество и тип кнопок, значок пиктограммы и активную кнопку, которая сработает при нажатии на клавишу Enter. Значение по умолчанию – 0. Значение опции определяется по таблице констант MsgBox (см. табл. 4) по формуле

опция = Button + Icon + Default;

заголовок – это строковое выражение, которое увидит пользователь в строке заголовка диалогового окна. Если этот аргумент пропущен, то в строку заголовка помещается имя приложения, например, Microsoft Word;

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

Примеры вывода на экран сообщений из программы:

Вывод Message Box процедурой с одним обязательным параметром – собственно сообщением. В заголовке окна по умолчанию отобразится название приложения Microsoft Word.

MsgBox ”Привет1”

 

 

34

 

 

 

 

Таблица 4

Константы MsgBox

 

 

 

 

 

Константа

Значе-

 

 

Описание

ние

 

 

 

 

 

 

Категория Button (Кнопка)

 

 

 

VbOkOnly

0

 

только кнопка Ok

vbOkCancel

1

 

кнопки Ok и Отмена

vbAbortRetryIgnore

2

 

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

vbYesNoCancel

3

 

кнопки Да, Нет, Отмена

VbYesNo

4

 

кнопки Да и Нет

vbRetryCancel

5

 

кнопки Повторить и Отмена

Категория Icon (значок пиктограммы)

vbCritical

16

 

 

критическое предупреждение

vbQuestion

32

 

 

вопрос

vbExclamation

48

 

 

предупреждение

vbInformation

64

 

 

информация

 

 

Категория Default (активная кнопка по умолчанию)

vbDefaultButton1

0

 

первая

vbDefaultButton2

256

 

вторая

vbDefaultButton3

512

 

третья

vbDefaultButton4

768

 

четвертая

Заполним заголовок окна названием и версией своей программы. Для этого используем третий параметр, поэтому от второго необязательного останется запятая.

MsgBox ”Привет2”,,”Ver.1.0”

Поместим стандартную картинку в окне:

MsgBox ”Привет3”,vbCritical,”Ver.1.1”

Выведем в окне две кнопки Да и Нет для ответов пользователя на вопрос. Чтобы поймать ответ пользователя, поздоровался он в конце концов или нет, обращаемся к MsgBox как к функции.

Ответ%=MsgBox(”Привет4”,vbQuestion+vbYesNo, _

”Привет Ver.1.2”)

Изображение окна, полученного в последнем примере (см. рис. 4).

Рис. 4. Message Box с двумя кнопками, сообщением, заголовком и иконкой

35

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

Таблица 5

Значения, возвращаемые функцией MsgBox

Константа

Значение

Нажатая кнопка

vbOk

1

Ok

vbCancel

2

Отмена

vbAbort

3

Стоп

vbRetry

4

Повторить

vbIgnore

5

Пропустить

vbYes

6

Да

vbNo

7

Нет

Хотя функция Message Box получает информацию в виде значения нажатой кнопки, что можно использовать для создания диалогов вашей программы с пользователем, но окно Message Box все же предназначено для вывода информации. Для ввода в программу информации от пользователя используется окно InputBox.

Окно InputBox состоит из четырех элементов (см. рис. 5):

строка заголовка,

приглашение к вводу,

поле ввода со значением, предлагаемым по умолчанию,

две кнопки – Ok и Cancel.

Функция InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем и/или нажатие кнопки, а затем возвращает значение типа String, содержащее текст, введенный пользователем в поле ввода.

Синтаксис обращения к InputBox, как к функции:

InputBox(сообщение[,заголовок] _ [,значениеПоУмолчанию][,позицияХ] _ [,позицияY][,файлСправки,контекст])

где сообщение – строковое выражение, отображаемое как сообщение в диалоговом окне. Должно служить подсказкой пользователю, какую информацию вводить в расположенное ниже в этом окне поле ввода;

заголовок – строковое выражение, отображаемое в заголовке окна. Если параметр опущен, в заголовке пользователь увидит имя приложения, Word, например;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]