4. ИНСТРУКЦИИ VBA 4.1. Инструкции комментариев Используются для

>4.   ИНСТРУКЦИИ   VBA 4. ИНСТРУКЦИИ VBA

>4.1. Инструкции  комментариев     Используются для вывода текста сообщений. Могут 4.1. Инструкции комментариев Используются для вывода текста сообщений. Могут начинаться с ключевого слова REM или с апострофа‘. Например: Rem Описание переменных или ‘ Описание переменных

>Обратите внимание!      Комментарии с апострофом видны на экране монитора Обратите внимание! Комментарии с апострофом видны на экране монитора и печатаются на бумаге при распечатке листинга. Комментарии с ключевым словом Rem видны на экране, но отсутствуют в листинге!

>4.2. Инструкции (операторы) присваивания   Синтаксис оператора для переменных:  Имя переменной = 4.2. Инструкции (операторы) присваивания Синтаксис оператора для переменных: Имя переменной = Выражение Например: X = 3.14 Y = Cos(X) Z = Y^6 Работает так: вычисляется значение выражения в правой части оператора, и результат присваивается переменной, стоящей в левой части.

>Синтаксис оператора присваивания для объектов   SET  Имя объекта = Описание объекта Синтаксис оператора присваивания для объектов SET Имя объекта = Описание объекта Например: Dim Новый As Object Set Новый = WorkSheets(“Новый”) Или Set Новый = WorkSheets(“Лист 1”)

>4.3. ВСТРОЕННЫЕ  ДИАЛОГОВЫЕ  ОКНА 4.3. ВСТРОЕННЫЕ ДИАЛОГОВЫЕ ОКНА

>В проектах Бэйсика имеются две разновидности таких окон:   Окно сообщений:  работает В проектах Бэйсика имеются две разновидности таких окон: Окно сообщений: работает с функцией MsgBox и выводит простейшие сообщения для пользователя. Окно ввода: работает с функцией InputBox и обеспечивает ввод информации.

>Функция InputBox  Выводит на экран диалоговое окно, содержащее сообщение и поле ввода. Функция InputBox Выводит на экран диалоговое окно, содержащее сообщение и поле ввода. Устанавливает режим ожидания ответа. Имеет синтаксис: InputBox(Сообщение, Заголовок, Текст по умолчанию) Сообщение – максимальная длина 1024 символа. Перенос – клавиша Enter.

>Заголовок – выражение, которое отображается в верхней строке окна. Если этот аргумент опущен, в Заголовок – выражение, которое отображается в верхней строке окна. Если этот аргумент опущен, в строке будет имя приложения, например, Microsoft Excel. Текст по умолчанию – выражение, отображаемое в поле ввода, если пользователь не введет другую строку. Если аргумент опущен, поле ввода отображается пустым.

>Например, оператор Результат = InputBox(“Введите число от 1 до 3”,”Пример”,”1”)  выведет на экран Например, оператор Результат = InputBox(“Введите число от 1 до 3”,”Пример”,”1”) выведет на экран окно

>При вводе программы  выводится окно При вводе программы выводится окно

>Функция MsgBox   Выводит на экран диалоговое окно, содержащее сообщение;   Устанавливает Функция MsgBox Выводит на экран диалоговое окно, содержащее сообщение; Устанавливает режим ожидания нажатия пользователем кнопки; Позволяет помещать в окне различные кнопки; Сохраняет значение типа Integer, указывающее, какая кнопка была нажата.

>Например, оператор Ответ =MsgBox(“Обнаружена ошибка. Продолжить?”,VbYesNo”Пример2”)  выведет окно Например, оператор Ответ =MsgBox(“Обнаружена ошибка. Продолжить?”,VbYesNo”Пример2”) выведет окно

>Пример     Составим программу для организации диалога с пользователем.  1. Пример Составим программу для организации диалога с пользователем. 1. Откроем Word. 2. Сервис – Макрос – редактор VBA. 3. Insert – Module. 4. Insert – Procedure. 5. Ввести имя программы Диалог – Ок. 6. Ввести текст программы:

>Sub Диалог ( )  ‘Описание переменной для ввода ответа   Dim Sub Диалог ( ) ‘Описание переменной для ввода ответа Dim Ответ As Variant ‘ Присвоение переменной значения из окна ввода Ответ = InputBox(“Введите название изучаемого предмета”) ‘ Вывод окна с сообщением о начале работы с ‘предметом MsgBox(“Изучаем предмет” & Ответ) End Sub

>7. Нажать F5 для запуска программы на выполнение. Выводится окно  8. Вводим название 7. Нажать F5 для запуска программы на выполнение. Выводится окно 8. Вводим название «Информатика»

>Нажимаем Ок. Появится окно: Нажимаем Ок. Появится окно:

>4.4. Инструкции управления порядком выполнения команд (операторы перехода и выбора)  В Бейсике три 4.4. Инструкции управления порядком выполнения команд (операторы перехода и выбора) В Бейсике три типа таких операторов: Оператор безусловного перехода; Оператор условного перехода; Оператор выбора.

>Оператор безусловного перехода  GoTo (Перейти к…)      Метка оператора Оператор безусловного перехода GoTo (Перейти к…) Метка оператора Задает переход на указанную строку внутри программы. Например: X =12 Y = X^2 GoTo M1 … M1 Stop Имеет синтаксис: GoTo

>Оператор условного перехода If (если)  Then (то)  Else (иначе)  Синтаксис оператора: Оператор условного перехода If (если) Then (то) Else (иначе) Синтаксис оператора: условие Then Операторы 1 Else Операторы 2 If End If

>Оператор If работает так:  Проверяется указанное условие;    Если условие выполняется Оператор If работает так: Проверяется указанное условие; Если условие выполняется – переход к Операторам 1; Если не выполняется – переход к Операторам 2.

>Например, фрагмент программы    Dim  X,Y  As  Integer Например, фрагмент программы 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 = Фрагмент программы Dim T,Z As Integer T = -5 If T < 0 Then Z = 3+T Else Z = T^3 End If MsgBox(“Z= “ & Z) выведет диалоговое окно:

>Изменим исходные данные: Изменим исходные данные:

>Самостоятельно определить результат работы фрагмента программы       Dim Самостоятельно определить результат работы фрагмента программы Dim X,Z As Integer X=10 If X > 7 Then Z = 4*X Else Z= 4 + X End If MsgBox(“ Z= “ & Z)

>Результат работы программы Результат работы программы

>Пример   Вычислить  Значение Х находится в ячейке С7 электронной таблицы, а Пример Вычислить Значение Х находится в ячейке С7 электронной таблицы, а результат следует поместить в ячейку F8 той же таблицы.

>Решение  1. Запустить Excel.  2. Ввести в ячейку С7 число –3. Решение 1. Запустить Excel. 2. Ввести в ячейку С7 число –3. 3. Сервис – Макрос – Редактор Visual Basic. 4. Insert – Module. 5. Insert – Procedure. 6. Ввести имя программы Ветвь. 7. Ввести текст программы:

>

>8. Запустить программу на вычисление (F5). 9. Перейтина лист Excel для проверки работы программы 8. Запустить программу на вычисление (F5). 9. Перейтина лист Excel для проверки работы программы (Щелчок по Microsoft Excel на Панели задач). Результат:

>Проверим вторую ветвь программы  10. Ввести в ячейку С7 число 3.14.  11. Проверим вторую ветвь программы 10. Ввести в ячейку С7 число 3.14. 11. Для перехода в VBA щелкнуть по Microsoft VB на Панели задач. 12. Нажать F5.

>Условный оператор с одной ветвью    Можно использовать оператор If  без Условный оператор с одной ветвью Можно использовать оператор If без ветви Else. Структура такого оператора: условие Then операторы End If If

>Пример   Проверить значение ячейки D3 электронной таблицы. Если оно больше 1000, следует Пример Проверить значение ячейки D3 электронной таблицы. Если оно больше 1000, следует вывести сообщение «Вычисления прекратить». Программа: Sub ОднаВетвь ( ) If Range(“D3”).Value > 1000 Then MsgBox(“Вычисления прекратить”) End If End Sub

>Организация программ для проверки нескольких условий      В этом случае Организация программ для проверки нескольких условий В этом случае в теле (т.е. внутри) одного условного оператора записывают другие условные операторы. Пример Вычислить

>Sub  ТриВетви ( )  Dim  X,Z  As  Single 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 листа Пример Составить программу вычисления Значение Х находится в ячейке А1 листа ЭТ, а значение Y следует поместить в ячейку В2 того же листа.

>Решение      1. Открыть ЭТ.  2. Записать в ячейку Решение 1. Открыть ЭТ. 2. Записать в ячейку А1 число – 4. 3. Создать процедуру с именем Пример5. 4. Ввести текст программы:

>

>5. Нажать F5.  6. Щелкнуть по Ms Excel на Панели задач. 7. Для 5. Нажать F5. 6. Щелкнуть по Ms Excel на Панели задач. 7. Для проверки второй ветви программы: ввести в А1 число 2; перейти в редактор VBA; нажать F5.

>8. Для проверки третьей ветви программы:   ввести в А1 число 0; 8. Для проверки третьей ветви программы: ввести в А1 число 0; перейти в редактор VBA; нажать F5. Результат:

>Пример   Вычислить   Значение Х находится в ячейке А5 листа ЭТ Пример Вычислить Значение Х находится в ячейке А5 листа ЭТ с именем Первый, а значение Z нужно поместить в ячейку А5 листа Второй.

>Решение  1. Переименовать два листа ЭТ:  Щелчок правой клавишей по Лист 1; Решение 1. Переименовать два листа ЭТ: Щелчок правой клавишей по Лист 1; Команда Переименовать; Ввести Первый. Повторяем операции для Листа 2 (Второй). 2. В ячейку А5 листа Первый ввести число 9 (проверим вторую ветку). 3. Создаем программу:

>Sub Пример6 ( )   Dim  X,Z  As  Single 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 >= 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. Перейти на лист Второй ЭТ ( в 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. 2. Запустить программу на выполнение ( F5) 3. Введем число 0,5. Нажмем Ок.

>4. Вновь запустим программу (F5) и введем число 1,5.  5. При следующем запуске 4. Вновь запустим программу (F5) и введем число 1,5. 5. При следующем запуске программы введем число 10.

>Контрольный пример. Назовите результат.   Dim  Y,Z  As  Integer Контрольный пример. Назовите результат. 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 Структура оператора If для проверки большого числа условий о If Условие Then Операторы ElseIf Условие 1 Then …………………………………. ElseIf Условие N Операторы 1 Then Операторы N Else Операторы при невыполнении всех условий End If

>Программа для примера 8 с ElseIf Программа для примера 8 с ElseIf

>Контрольный пример. Вычислите результат Контрольный пример. Вычислите результат

>Оператор выбора Select Case (выбрать по признаку)   Select Case Анализируемое выражение Case Оператор выбора Select Case (выбрать по признаку) Select Case Анализируемое выражение Case Выражение 1 Операторы 1 Выражение 2 Операторы 2 Case …………………………………………………… Выражение N Операторы N Case Case Else Операторы при невыполнении всех условий End Select

>Пример   Рассчитать стоимость перевозки груза в зависимости от расстояния Исходные данные и Пример Рассчитать стоимость перевозки груза в зависимости от расстояния Исходные данные и результат поместить в Excel

>Решение   1. Создаем ЭТ   2. Вводим в ячейку В1 “Луга”. Решение 1. Создаем ЭТ 2. Вводим в ячейку В1 “Луга”. 3. Создаем программу

>

>4. Нажимаем F5. Результат:  Причина ошибки – слова “Луга”, “ЛУГА”, “луга” для VBA 4. Нажимаем F5. Результат: Причина ошибки – слова “Луга”, “ЛУГА”, “луга” для VBA являются разными.

>Для исправления ошибки удобно использовать оператор Ucase(аргумент).    Он переводит любой текст Для исправления ошибки удобно использовать оператор Ucase(аргумент). Он переводит любой текст аргумента в большие буквы. Запишем оператор присваивания значения переменной Город в виде: Город = Ucase(Range(“B2”).Value)

>5. Нажмем F5. Результат: 5. Нажмем F5. Результат:

>Проверка неравенств с использованием оператора Select Case   Select Case Переменная Case Is Проверка неравенств с использованием оператора Select Case Select Case Переменная Case Is Неравенство Операторы Case Начальное значение To Конечное значение Операторы End Select

>Пример  Составить программу для определения стоимости перевозок в зависимости от расстояния Пример Составить программу для определения стоимости перевозок в зависимости от расстояния

>