Запуск программ на выполнение

 

В главном меню команд имеется вкладка Run, в которой находятся команды управления запуском программ на выполнение.

Запуск программы на выполнение осуществляется командой

Run Þ RunSub,

клавишей <F5> или инструментальной кнопкой . В результате, будет выполняться макрос, в тексте которого находится текстовый указатель.

Выполнение программы можно прервать, не ожидая ее окончания, командой

Run Þ Break,

клавишей клавиатуры <Ctrl>+<Break> или инструментальной кнопкой . Это, например, может понадобиться, если Вы считаете, что программа выполняется слишком долго, или Вы видите, что полученные промежуточные результаты не верны.

 

Если во время выполнения программы интерпретатор обнаружил ошибку, он приостанавливает процесс и выводит сообщение об ошибке. Например,

 

 

Нажатие кнопки End приведет к прекращению выполнения программы, а если нажать кнопку Debug, интерпретатор возвращает пользователя в текстовый редактор и ожидает исправления этой ошибки. После этого команда RunSubприведет кпродолжению выполнения программы, а не к запуску ее с самого начала. Чтобы заново перезапустить макрос с самого начала, следует перед командой RunSub выполнить команду

Run Þ Reset

или щелкнуть по инструментальной кнопке .

 


Динамические массивы

 

Если заранее не известно, сколько элементов потребуется в массиве, можно объявить его динамическим. Для этого достаточно при объявлении (с помощью Dim) в скобках не указывать размерность, а указать ее позже (перед использованием массива) с помощью оператораReDim.

Например,

Dim Прибыль () As Single, Затраты() As Single

……….

n = 5

m = 20

……….

ReDim Прибыль (16), Затраты(n, m)

……….

Здесь оператором Dim объявлены два массива данных вещественного типа Прибыль и Затраты, а затем с помощью оператора ReDim указано, что массив Прибыль – одномерный, а массив Затраты – двухмерный, причем размер массива Прибыль задан константой 16, а размер массива Затраты задан переменными n и m.

 

Диалоговый ввод и вывод данныхс помощью

Стандартных функций

 

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

 

Ввод данных

 

Функция InputBox автоматически создает диалоговое окно, в котором имеется поле ввода и две командные кнопки: OK (подтверждение ввода) и Cancel (отмена). От пользователя требуется указать константу в поле ввода и щелкнуть по кнопке OK. В результате, эта функция возвращает введенную константу. Общий формат этой функции имеет следующий вид:

 

InputBox (<текст> [, <заголовок>] [, <default>])

 

Здесь

<текст> – обязательный аргумент с текстом комментария в окне;

<заголовок> – текст заголовка окна (по умолчанию – MS Excel);

<default> – значение константы, которое выводится в окне в поле ввода (для “умолчания”).

 

Например, оператор

 

Затраты = InputBox("Введите размер затрат", "Ввод данных", 30000)

 

приведет к выводу на экран диалогового окна

 

Пользователь может изменить значение, указанное в поле ввода. После щелчка по кнопке OK переменной Затраты автоматически будет присвоено введенное пользователем число.

 

Значение <текст> и <заголовок> могут быть заданы текстовыми константами, переменными или выражениями с оператором “конкатенация” (обозначается знаком &). Этот оператор можно применять для объединения значений как текстовых, так и числовых переменных или констант. Например,

 

number = 5

Q = InputBox("Введите количество " & number & "-го товара", "Ввод данных", 0)

 

приведет к выводу на экран диалогового окна

 

Текст комментария (<текст >) может быть многострочным. Для этого используется функция Chr с аргументом 13. Например, оператор

 

Затраты = InputBox("Введите размер затрат" & Chr(13) & "в июне", "Ввод данных", 0)

 

приведет к выводу на экран диалогового окна

 

Если объединяются только текстовые данные, можно вместо знака & указывать знак +. Например, в последнем примере можно было написать

 

Затраты = InputBox("Введите размер затрат" + Chr(13) + "в июне", "Ввод данных", 0)

 

Однако следует иметь в виду, что в этом случае попытка указать числовое данное приведет к ошибке. Этого можно избежать, прообразовывая числовые данные в строковые с помощью функции CStr. Например, если тип переменной number – integer (целый), то оператор

 

Q = InputBox("Введите количество " + number + "-го товара", "Ввод данных", 0)

 

будет восприниматься интерпретатором как ошибочный. Чтобы этого не произошло, следует преобразовать тип переменной number в строковый (string):

 

Q = InputBox("Введите количество " + CStr(number) + "-го товара", "Ввод данных", 0)

 


Вывод данных

 

Функция MsgBox выводит на экран диалоговое окно с текстовым сообщением и набором командных кнопок (Ok, Отмена, Да, Нет и т.д.). После выбора пользователем одной из этих кнопок MsgBox возвращает результат этого выбора.

Общий формат этой функции имеет следующий вид:

 

MsgBox (<текст > [, <кнопки>] [, <заголовок>])

 

Здесь аргументы < текст > и < заголовок > имеют такой же смысл, что и в функции InputBox, и оформляются аналогично. Значение аргумента <кнопки> определяет набор кнопок в окне:

vbOkOnly – кнопка “Ok”;

vbOkCancel – кнопки “Ok” и “Отмена”;

vbYesNo – “Да” и “Нет”;

vbYesNoCancel – “Да”, “Нет” и “Отмена”;

vbAbortRetryIgnore – “Прервать”, “Повтор” и “Пропустить”;

vbRetryCancel – “Повтор” и “Отмена”.

По умолчанию – vbOkOnly.

 

Данная функция возвращает результат “нажатия” кнопки пользователем:

vbYes – “Да”;vbNo – “Нет”;vbCancel – “Отмена” и т.д.

 

В окно, которое выводится данной функцией, можно добавить знак, комментирующий вид диалога. Для этого аргумент < кнопки > оформляется с добавлением (с помощью знака +) соответствующего значения:

vbInformation – информация, не требующая ответа ;

vbQuestion – вопрос ;

vbExclamation – важная информация ;

vbCritical – предупреждение .

 

Например,

 

v = 10

f = MsgBox(“Использовать ” + CStr (v) + “?”; vbYesNo+vbQuestion; “Подтверждение”)

 

 

Здесь оформлен вывод диалогового окна с названием “Подтверждение”, комментарием с текстом и числовым значением переменной v, командными кнопками (Да и Нет) и сопроводительным знаком Question (вопросительный знак).

 



lass="current">3