4. ИНСТРУКЦИИ VBA 4.1. Инструкции комментариев Используются для
4. ИНСТРУКЦИИ VBA
4.1. Инструкции комментариев Используются для вывода текста сообщений. Могут начинаться с ключевого слова REM или с апострофа‘. Например: Rem Описание переменных или ‘ Описание переменных
Обратите внимание! Комментарии с апострофом видны на экране монитора и печатаются на бумаге при распечатке листинга. Комментарии с ключевым словом Rem видны на экране, но отсутствуют в листинге!
4.2. Инструкции (операторы) присваивания Синтаксис оператора для переменных: Имя переменной = Выражение Например: X = 3.14 Y = Cos(X) Z = Y^6 Работает так: вычисляется значение выражения в правой части оператора, и результат присваивается переменной, стоящей в левой части.
Синтаксис оператора присваивания для объектов SET Имя объекта = Описание объекта Например: Dim Новый As Object Set Новый = WorkSheets(“Новый”) Или Set Новый = WorkSheets(“Лист 1”)
4.3. ВСТРОЕННЫЕ ДИАЛОГОВЫЕ ОКНА
В проектах Бэйсика имеются две разновидности таких окон: Окно сообщений: работает с функцией MsgBox и выводит простейшие сообщения для пользователя. Окно ввода: работает с функцией InputBox и обеспечивает ввод информации.
Функция InputBox Выводит на экран диалоговое окно, содержащее сообщение и поле ввода. Устанавливает режим ожидания ответа. Имеет синтаксис: InputBox(Сообщение, Заголовок, Текст по умолчанию) Сообщение – максимальная длина 1024 символа. Перенос – клавиша Enter.
Заголовок – выражение, которое отображается в верхней строке окна. Если этот аргумент опущен, в строке будет имя приложения, например, Microsoft Excel. Текст по умолчанию – выражение, отображаемое в поле ввода, если пользователь не введет другую строку. Если аргумент опущен, поле ввода отображается пустым.
Например, оператор Результат = InputBox(“Введите число от 1 до 3”,”Пример”,”1”) выведет на экран окно
При вводе программы выводится окно
Функция MsgBox Выводит на экран диалоговое окно, содержащее сообщение; Устанавливает режим ожидания нажатия пользователем кнопки; Позволяет помещать в окне различные кнопки; Сохраняет значение типа Integer, указывающее, какая кнопка была нажата.
Например, оператор Ответ =MsgBox(“Обнаружена ошибка. Продолжить?”,VbYesNo”Пример2”) выведет окно
Пример Составим программу для организации диалога с пользователем. 1. Откроем Word. 2. Сервис – Макрос – редактор VBA. 3. Insert – Module. 4. Insert – Procedure. 5. Ввести имя программы Диалог – Ок. 6. Ввести текст программы:
Sub Диалог ( ) ‘Описание переменной для ввода ответа Dim Ответ As Variant ‘ Присвоение переменной значения из окна ввода Ответ = InputBox(“Введите название изучаемого предмета”) ‘ Вывод окна с сообщением о начале работы с ‘предметом MsgBox(“Изучаем предмет” & Ответ) End Sub
7. Нажать F5 для запуска программы на выполнение. Выводится окно 8. Вводим название «Информатика»
Нажимаем Ок. Появится окно:
4.4. Инструкции управления порядком выполнения команд (операторы перехода и выбора) В Бейсике три типа таких операторов: Оператор безусловного перехода; Оператор условного перехода; Оператор выбора.
Оператор безусловного перехода GoTo (Перейти к…) Метка оператора Задает переход на указанную строку внутри программы. Например: X =12 Y = X^2 GoTo M1 … M1 Stop Имеет синтаксис: GoTo
Оператор условного перехода If (если) Then (то) Else (иначе) Синтаксис оператора: условие Then Операторы 1 Else Операторы 2 If End If
Оператор If работает так: Проверяется указанное условие; Если условие выполняется – переход к Операторам 1; Если не выполняется – переход к Операторам 2.
Например, фрагмент программы Dim X,Y As Integer X = 3 If X < 0 Then Y = 2*X Else Y = X^2 End If End Sub вычислит результат: 9.
Фрагмент программы Dim T,Z As Integer T = -5 If T < 0 Then Z = 3+T Else Z = T^3 End If MsgBox(“Z= “ & Z) выведет диалоговое окно:
Изменим исходные данные:
Самостоятельно определить результат работы фрагмента программы Dim X,Z As Integer X=10 If X > 7 Then Z = 4*X Else Z= 4 + X End If MsgBox(“ Z= “ & Z)
Результат работы программы
Пример Вычислить Значение Х находится в ячейке С7 электронной таблицы, а результат следует поместить в ячейку F8 той же таблицы.
Решение 1. Запустить Excel. 2. Ввести в ячейку С7 число –3. 3. Сервис – Макрос – Редактор Visual Basic. 4. Insert – Module. 5. Insert – Procedure. 6. Ввести имя программы Ветвь. 7. Ввести текст программы:
8. Запустить программу на вычисление (F5). 9. Перейтина лист Excel для проверки работы программы (Щелчок по Microsoft Excel на Панели задач). Результат:
Проверим вторую ветвь программы 10. Ввести в ячейку С7 число 3.14. 11. Для перехода в VBA щелкнуть по Microsoft VB на Панели задач. 12. Нажать F5.
Условный оператор с одной ветвью Можно использовать оператор If без ветви Else. Структура такого оператора: условие Then операторы End If If
Пример Проверить значение ячейки D3 электронной таблицы. Если оно больше 1000, следует вывести сообщение «Вычисления прекратить». Программа: Sub ОднаВетвь ( ) If Range(“D3”).Value > 1000 Then MsgBox(“Вычисления прекратить”) End If End Sub
Организация программ для проверки нескольких условий В этом случае в теле (т.е. внутри) одного условного оператора записывают другие условные операторы. Пример Вычислить
Sub ТриВетви ( ) Dim X,Z As Single If X > 13 Then Z = X – 8 Else If X <= 0 Then Z = X^4 Else Z = 9*X End If End If End Sub
Пример Составить программу вычисления Значение Х находится в ячейке А1 листа ЭТ, а значение Y следует поместить в ячейку В2 того же листа.
Решение 1. Открыть ЭТ. 2. Записать в ячейку А1 число – 4. 3. Создать процедуру с именем Пример5. 4. Ввести текст программы:
5. Нажать F5. 6. Щелкнуть по Ms Excel на Панели задач. 7. Для проверки второй ветви программы: ввести в А1 число 2; перейти в редактор VBA; нажать F5.
8. Для проверки третьей ветви программы: ввести в А1 число 0; перейти в редактор VBA; нажать F5. Результат:
Пример Вычислить Значение Х находится в ячейке А5 листа ЭТ с именем Первый, а значение Z нужно поместить в ячейку А5 листа Второй.
Решение 1. Переименовать два листа ЭТ: Щелчок правой клавишей по Лист 1; Команда Переименовать; Ввести Первый. Повторяем операции для Листа 2 (Второй). 2. В ячейку А5 листа Первый ввести число 9 (проверим вторую ветку). 3. Создаем программу:
Sub Пример6 ( ) Dim X,Z As Single ‘ описание листов Excel как объекты Dim Первый, Второй As Object ‘ Определение класса объектов Set Первый = WorkSheets(“Первый”) Set Второй = WorkSheets(“Второй”) ‘ Считывание значения Х с листа Первый Х = Первый.Range(“A10”).Value ‘ Проверка значения Х
If X >= 10 Then Z = Log(X) Else If X < 1 Then Z = Abs(X) Else Z = Sqr(X) End If End If ‘ Запись результата на лист Второй Второй.Range(“A5”).Value = Z End Sub
4. Проверка работы программы (F5). 5. Перейти на лист Второй ЭТ ( в ячейке А5 – число 3). 6. Для проверки третьей ветви в ячейку А5 листа Первый поместим число – 8. 7. Перейти в VBA, нажать F5. 8. Перейти на лист Второй ЭТ ( в ячейке А5 – число 8). 9. Для проверки первой ветви программы в ячейку А5 листа Первый поместим число 2,78 ( на листе Второй в ячейке А5 должно быть число 1).
Пример Организовать ввод в диалоговом окне и последующий анализ значения переменной Х. Вывести сообщения в случае попадания значений Х в интервал [0;1) или [1;2]. Решение 1. Создаем программу.
2. Запустить программу на выполнение ( F5) 3. Введем число 0,5. Нажмем Ок.
4. Вновь запустим программу (F5) и введем число 1,5. 5. При следующем запуске программы введем число 10.
Контрольный пример. Назовите результат. Dim Y,Z As Integer Y = 15 If Y <= -5 Then Z = 2*Y Else If Y >= 20 Then Z = Y^2 Else Z = Y/3 End If End If
Пример Составить программу для начисления премии работникам предприятия в зависимости от стажа работы Стаж работника записан в ячейке А4 листа ЭТ «Данные». Начисленную премию нужно записать в ячейку С4 того же листа.
Структура оператора If для проверки большого числа условий о If Условие Then Операторы ElseIf Условие 1 Then …………………………………. ElseIf Условие N Операторы 1 Then Операторы N Else Операторы при невыполнении всех условий End If
Программа для примера 8 с ElseIf
Контрольный пример. Вычислите результат
Оператор выбора Select Case (выбрать по признаку) Select Case Анализируемое выражение Case Выражение 1 Операторы 1 Выражение 2 Операторы 2 Case …………………………………………………… Выражение N Операторы N Case Case Else Операторы при невыполнении всех условий End Select
Пример Рассчитать стоимость перевозки груза в зависимости от расстояния Исходные данные и результат поместить в Excel
Решение 1. Создаем ЭТ 2. Вводим в ячейку В1 “Луга”. 3. Создаем программу
4. Нажимаем F5. Результат: Причина ошибки – слова “Луга”, “ЛУГА”, “луга” для VBA являются разными.
Для исправления ошибки удобно использовать оператор Ucase(аргумент). Он переводит любой текст аргумента в большие буквы. Запишем оператор присваивания значения переменной Город в виде: Город = Ucase(Range(“B2”).Value)
5. Нажмем F5. Результат:
Проверка неравенств с использованием оператора Select Case Select Case Переменная Case Is Неравенство Операторы Case Начальное значение To Конечное значение Операторы End Select
Пример Составить программу для определения стоимости перевозок в зависимости от расстояния
193-dop_3.ppt
- Количество слайдов: 66