- •Введение
- •Разработчик Код Visual Basic
- •1. Интерпретатор vba
- •1.1. Основные особенности
- •Разработчик Код Visual Basic
- •Разработчик Код Безопасность макросов
- •1.2. Ввод и редактирование текста
- •1.3. Выделение, удаление, перемещение и копирование
- •1.4. Запуск программ на выполнение
- •2. Динамические массивы
- •3. Диалоговый ввод и вывод данныхс помощью стандартных функций
- •3.1. Ввод данных
- •3.2. Вывод данных
- •VbYes – “Да”; vbNo – “Нет”; vbCancel – “Отмена” и т.Д.
1.4. Запуск программ на выполнение
В главном меню команд имеется вкладка Run, в которой находятся команды управления запуском программ на выполнение.
Запуск программы на выполнение осуществляется командой
Run RunSub,
клавишей <F5>
или инструментальной кнопкой
.
В результате, будет выполняться макрос,
в тексте которого находится текстовый
указатель.
Выполнение программы можно прервать, не ожидая ее окончания, командой
Run Break,
клавишей клавиатуры
<Ctrl>+<Break> или инструментальной
кнопкой
.
Это, например, может понадобиться, если
Вы считаете, что программа выполняется
слишком долго, или Вы видите, что
полученные промежуточные результаты
не верны.
Если во время выполнения программы интерпретатор обнаружил ошибку, он приостанавливает процесс и выводит сообщение об ошибке. Например,
Нажатие кнопки End приведет к прекращению выполнения программы, а если нажать кнопку Debug, интерпретатор возвращает пользователя в текстовый редактор и ожидает исправления этой ошибки. После этого команда RunSub приведет к продолжению выполнения программы, а не к запуску ее с самого начала. Чтобы заново перезапустить макрос с самого начала, следует перед командой RunSub выполнить команду
Run Reset
или щелкнуть по
инструментальной кнопке
.
2. Динамические массивы
Если заранее не известно, сколько элементов потребуется в массиве, можно объявить его динамическим. Для этого достаточно при объявлении (с помощью Dim) в скобках не указывать размерность, а указать ее позже (перед использованием массива) с помощью оператора ReDim.
Например,
Dim Прибыль () As Single, Затраты() As Single
……….
n = 5
m = 20
……….
ReDim Прибыль (16), Затраты(n, m)
……….
Здесь оператором Dim объявлены два массива данных вещественного типа Прибыль и Затраты, а затем с помощью оператора ReDim указано, что массив Прибыль – одномерный, а массив Затраты – двухмерный, причем размер массива Прибыль задан константой 16, а размер массива Затраты задан переменными n и m.
3. Диалоговый ввод и вывод данныхс помощью стандартных функций
Ввод и вывод данных может осуществляться по-разному. Диалоговый ввод (или вывод) означает, что для этих целей используются диалоговые окна, в которых пользователь читает сообщения или указывает данные, которые хочет ввести. В VBA имеются соответствующие разнообразные возможности. Проще всего для этого использовать стандартные функции InputBox (диалоговый ввод данных) и MsgBox ( диалоговый вывод).
3.1. Ввод данных
Функция 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)
