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

Лекция_2-1_VBA_программирование_2_инструкции 2015-09-21.ppt

  • Количество слайдов: 64

ИНСТРУКЦИИ VBA 1 ИНСТРУКЦИИ VBA 1

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

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

Инструкции (операторы) присваивания Синтаксис оператора для переменных: Имя переменной = Выражение Вычисляется значение выражения Инструкции (операторы) присваивания Синтаксис оператора для переменных: Имя переменной = Выражение Вычисляется значение выражения в правой части оператора, и результат присваивается переменной, стоящей в левой части. Например: X = 3. 14 Y = Cos(X)+0. 15 Z =VBA Y^6 4

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

ВСТРОЕННЫЕ ДИАЛОГОВЫЕ ОКНА VBA 6 ВСТРОЕННЫЕ ДИАЛОГОВЫЕ ОКНА VBA 6

В проектах VBA имеются две разновидности диалоговых окон: v окно сообщений; v окно ввода. В проектах VBA имеются две разновидности диалоговых окон: v окно сообщений; v окно ввода. VBA 7

Функция Input. Box Выводит на экран диалоговое окно, содержащее сообщение и поле ввода. Устанавливает Функция Input. Box Выводит на экран диалоговое окно, содержащее сообщение и поле ввода. Устанавливает режим ожидания ответа. Имеет синтаксис: Input. Box(Сообщение, Заголовок, Текст по умолчанию) VBA 8

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

Например, оператор Результат = Input. Box(“Введите число от 1 до 3”, ”Пример”, ” 1”) Например, оператор Результат = Input. Box(“Введите число от 1 до 3”, ”Пример”, ” 1”) выведет на экран окно Заголовок Сообщение Текст VBA 10

При вводе программы Заголовок Сообщение Ввод VBA 11 При вводе программы Заголовок Сообщение Ввод VBA 11

§ § Функция Msg. Box Выводит на экран диалоговое окно, содержащее сообщение. Устанавливает режим § § Функция Msg. Box Выводит на экран диалоговое окно, содержащее сообщение. Устанавливает режим ожидания нажатия пользователем кнопки. Позволяет помещать в окне различные кнопки. Возвращает значение типа Integer, указывающее, какая кнопка была нажата. VBA 12

Например, оператор Ответ =Msg. Box(“Обнаружена ошибка. Продолжить? ”, Vb. Yes. No”Пример2”) выведет окно VBA Например, оператор Ответ =Msg. Box(“Обнаружена ошибка. Продолжить? ”, Vb. Yes. No”Пример2”) выведет окно VBA 13

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

Интерфейс VBA 15 Интерфейс VBA 15

Окно кода программы VBA 16 Окно кода программы VBA 16

Программа Диалог VBA 17 Программа Диалог VBA 17

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

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

3. 4. Инструкции управления порядком выполнения команд (операторы перехода и выбора) В VBA три 3. 4. Инструкции управления порядком выполнения команд (операторы перехода и выбора) В VBA три типа операторов: v Оператор безусловного перехода; v Оператор выбора. VBA 20

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

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

Оператор If работает так: Если условие выполняется (ИСТИНА) – переход к Операторам 1, в Оператор If работает так: Если условие выполняется (ИСТИНА) – переход к Операторам 1, в противном случае (ЛОЖЬ) – переход к Операторам 2. VBA 23

Например, фрагмент программы: Public Sub PRIM 1() Dim X As Integer, Y As Integer Например, фрагмент программы: Public Sub PRIM 1() Dim X As Integer, Y As Integer X=3 If X < 0 Then Y=2*X Else Y=X^2 End If Msg. Box ("Y=" + Str(Y)) End Sub вычислит результат: VBA 24

Фрагмент программы Dim T As Integer , Z As Integer T = -5 If Фрагмент программы Dim T As Integer , Z As Integer T = -5 If T < 0 Then Z = 3+T Else Z = T^3 End If Msg. Box(“Z= “ & Z) End Sub выведет диалоговое окно: VBA 25

Изменим исходные данные: Dim T As Integer , Z As Integer T=2 If T Изменим исходные данные: Dim T As Integer , Z As Integer T=2 If T < 0 Then Z = 3+T Else Z = T^3 End If Msg. Box(“Z= “ & Z) End Sub VBA 26

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

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

Чтение-запись данных из ячейки ЭТ При обращении к ячейкам ЭТ применяют ключевое слово Range(“Адрес. Чтение-запись данных из ячейки ЭТ При обращении к ячейкам ЭТ применяют ключевое слово Range(“Адрес. Ячейки”) Чтение из ЭТ: Х= Range(“С 15”) Запись в ЭТ: Range(“А 10”)=В VBA 29

Пример Вычислить: Значение Х прочитать из ячейки С 7 электронной таблицы, а результат записать Пример Вычислить: Значение Х прочитать из ячейки С 7 электронной таблицы, а результат записать в ячейку F 8 того же листа ЭТ. VBA 30

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

Public Sub PRIM () Dim X As Integer, Y As Integer X = Range( Public Sub PRIM () Dim X As Integer, Y As Integer X = Range("C 7") If X < 0 Then Y=X^3 Else Y = Cos(X) End If Range("F 8") = Y End Sub VBA 32

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

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

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

Пример Составить программу вычисления Значение Х прочитать из ячейки А 1 листа ЭТ, а Пример Составить программу вычисления Значение Х прочитать из ячейки А 1 листа ЭТ, а значение Y записать в ячейку В 2 того же листа. VBA 36

=Y VBA 37 =Y VBA 37

Для проверки первой ветви программы в ячейку А 1 ввести число -4 и F Для проверки первой ветви программы в ячейку А 1 ввести число -4 и F 5. Для проверки второй ветви программы в ячейку А 1 ввести число 2 и F 5. VBA 38

Для проверки третьей ветви программы в ячейку А 1 ввести число 0 и F Для проверки третьей ветви программы в ячейку А 1 ввести число 0 и F 5. VBA 39

Чтение-запись данных с листа ЭТ, как объекта ООП При обращении к листу ЭТ применяют Чтение-запись данных с листа ЭТ, как объекта ООП При обращении к листу ЭТ применяют ключевые слова: ‘ Описание листа Excel как объект Dim Имя. Листа As Object ‘ Определение класса объекта Set Имя. Листа = Work. Sheets(“Имя. Листа”) ‘ Чтение с листа ЭТ Х=Имя. Листа. Range(“Адрес. Ячейки”) ‘ Запись на лист ЭТ Имя. Листа. Range(“Адрес. Ячейки”)=С VBA 40

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

Решение 1. Переименовать два листа ЭТ: Первый и Второй 2. В ячейку А 10 Решение 1. Переименовать два листа ЭТ: Первый и Второй 2. В ячейку А 10 листа Первый ввести число 9 (проверим вторую ветку). 3. Создаем код программы: VBA 42

Sub Пример6 ( ) Dim X As Single, Z As Single Dim Первый As Sub Пример6 ( ) Dim X As Single, Z As Single Dim Первый As Object, Второй As Object Set Первый = Work. Sheets(“Первый”) Set Второй = Work. Sheets(“Второй”) Х = Первый. Range(“A 10”) VBA 43

If X >= 10 Then Z = Log(X) Else If X < 1 Then If X >= 10 Then Z = Log(X) Else If X < 1 Then Z = Abs(X) Else Z = Sqr(X) End If Второй. Range(“A 5”) = Z End Sub VBA 44

Контрольный пример. Назовите результат Dim Y As Integer, Z As Integer Y = 15 Контрольный пример. Назовите результат Dim Y As Integer, 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 VBA 45

Пример Составить программу для начисления премии работникам предприятия зависимости от стажа работы в Стаж Пример Составить программу для начисления премии работникам предприятия зависимости от стажа работы в Стаж работника записан в ячейке А 4 листа ЭТ «Данные» . Начисленную премию записать в ячейку С 4 того же листа. VBA 46

VBA 47 VBA 47

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

Контрольный пример. Вычислите результат • Программа Public Sub Lect 2 a() Dim Стаж As Контрольный пример. Вычислите результат • Программа Public Sub Lect 2 a() Dim Стаж As Integer Dim Премия As Currency Стаж = Input. Box("Введите стаж", "Расчет премии", 5) Select Case Стаж Case Is < 5 Премия = 500 Case 5 To 10 Премия = 1000 Case 11 To 15 Премия = 5000 Case Is > 15 Премия = 15000 End Select Msg. Box ("При Вашем стаже " + Str(Стаж) + " лет премия равна" + Str(Премия) + ". ") End Sub 49

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

Контрольный пример. Вычислите результат • Программа Public Sub Lect 2_b() ' Пример обработки при Контрольный пример. Вычислите результат • Программа Public Sub Lect 2_b() ' Пример обработки при нажатии кнопки Cancel в Input. Box Dim Стаж As Integer Dim Стаж. Строка As String Dim Премия As Currency Стаж. Строка = Input. Box("Введите стаж", "Расчет премии", 5) If Стаж. Строка <> "" Then ' Нажата НЕ кнопка Cancel в Input. Box Стаж = Val(Стаж. Строка) Select Case Стаж Case Is < 5 Премия = 500 Case 5 To 10 Премия = 1000 Case 11 To 15 Премия = 5000 Case Is > 15 Премия = 15000 End Select Msg. Box ("При Вашем стаже " + Str(Стаж) + " лет премия равна" + Str(Премия) + ". ") Else ' Нажата кнопка Cancel в Input. Box Msg. Box ("Расчет закончен. Пока-пока. ") End If End Sub 51

Структура оператора If для проверки большого числа условий о If Условие Then Операторы Else. Структура оператора If для проверки большого числа условий о If Условие Then Операторы Else. If Условие 1 Then Операторы 1 …………………. Else. If Условие N Then Операторы N Else Операторы при невыполнении всех условий End If VBA 52

Программа для примера с Else. If VBA 53 Программа для примера с Else. If VBA 53

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

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

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

Решение 1. Заполнить ЭТ 2. Вводим в ячейку В 2 “Луга”. 3. Создаем код Решение 1. Заполнить ЭТ 2. Вводим в ячейку В 2 “Луга”. 3. Создаем код программы VBA 57

=Стоимость VBA 58 =Стоимость VBA 58

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

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

5. Нажмем F 5. Результат: VBA 61 5. Нажмем F 5. Результат: VBA 61

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

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

VBA 64 VBA 64