- •Учреждение образования "Гродненский государственный профессионально-технический колледж приборостроения"
- •1. Синтаксис и программные конструкции vba
- •1.1 Основы синтаксиса языка vba
- •1.2 Операторы vba
- •1.3 Переменные и типы данных
- •Задание для самостоятельной работы 1.1: Работа с переменными и операторами
- •1.4 Константы
- •1.5 Операторы условного и безусловного перехода
- •1.5.1 Операторы условного и безусловного перехода. Оператор If… Then... Else
- •1.5.2 Оператор Select Case
- •1.5.3 Оператор GoTo
- •Задание для самостоятельной работы 1.2: Работа с операторами условного перехода
- •1.6 Работа с циклами
- •1.7 Массивы
- •Задание для самостоятельной работы 1.3 Работа с циклами
- •1.8 Процедуры и функции
- •1.8.1 Процедуры и функции. Виды процедур
- •1.8.2 Область видимости процедур
- •1.8.3 Объявление процедур
- •1.8.4 Передача параметров
- •1.8.5 Запуск и завершение работы процедур
- •Задание для самостоятельной работы 1.4 Работа с процедурами и функциями
- •1.9 Встроенные функции языка Visual Basic For Applications
- •1.9.1 Встроенные функции языка Visual Basic For Applications
- •1.9.2 Функции преобразования и проверки типов данных
- •1.9.3 Строковые функции
- •1.9.4 Функции для работы с числовыми значениями
- •1.9.5 Функции для работы с датой и временем
- •1.9.6 Функции для форматирования данных
- •1.9.7 Функции для организации взаимодействия с пользователем
- •1.9.8 Функции — заменители синтаксических конструкций
- •1.9.9 Функции для работы с массивами
- •1.9.10 Функции для работы с файловой системой
- •1.9.11 Прочие функции vba
- •2. Работа с объектами и объектные модели
- •2.1 Что такое классы и объекты
- •2.2 Создание и удаление объектов
- •2.3 Методы объекта
- •2.4 Свойства объекта
- •2.5 События объекта и объявление WithEvents
- •2.6 Просмотр объектов
- •2.7 Объектные модели
- •Задание для самостоятельной работы 2.1 Windows Script Host в приложениях vba
- •3. Формы, элементы управления и события
- •3.1 Для чего нужны формы
- •3.2 Создание форм и самые важные свойства и методы форм
- •3.3 Элементы управления
- •3.3.1 Что такое элементы управления
- •3.3.2 Элемент управления Label (надпись)
- •3.3.3 Элемент управления TextBox (текстовое поле)
- •3.3.4 Элемент управления ComboBox (комбинированный список)
- •3.3.5 Элемент управления ListBox (список)
- •3.3.6 Элементы управления CheckBox (флажок) и ToggleButton (кнопка с фиксацией)
- •3.3.7 Элементы управления OptionButton (переключатель) и Frame (рамка)
- •3.3.8 Элемент управления CommandButton (кнопка)
- •3.3.9 Элементы управления ScrollBar (полоса прокрутки) и SpinButton (счетчик)
- •3.3.10 Элементы управления TabStrip (набор вкладок) и MultiPage (набор страниц)
- •3.3.11 Элемент управления Image (рисунок)
- •3.3.12 Применение дополнительных элементов управления. Элементы управления Microsoft Web Browser, Calendar, RefEdit
- •Задание для самостоятельной работы 3.1 Работа с элементами управления
- •4. Работа с панелями инструментов и меню
- •Задание для самостоятельной работы 4.1 Работа с панелями инструментов, меню и помощником
- •5. Программирование в Word
- •5.1 Зачем программировать в Word
- •5.2 Введение в программирование в Word. Обзор объектной модели Word
- •5.3 Объект Application
- •5.3.1 Как работать с объектом Application
- •5.3.2 Свойства, методы и события объекта Application
- •5.4 Коллекция Documents и объекты Document
- •5.4.1 Как работать с коллекцией Documents
- •5.4.2 Свойства и методы коллекции Documents
- •5.4.3 Работа с объектом Document , его свойства и методы
- •5.5 Объекты Selection , Range и Bookmark
- •5.5.1 Работа с объектом Selection
- •5.5.2 Свойства и методы объекта Selection
- •5.5.3 Работа с объектом Range, его свойства и методы
- •5.5.4 Объект Bookmark
- •5.6 Другие объекты Word
- •5.6.1 Коллекция AddIns и объекты AddIn
- •5.6.2 Объект AutoCorrect
- •5.6.3 Коллекция Languages и объект Language
- •5.6.4 Объект Options
- •5.6.5 Объекты Find и Replacement
- •5.6.6 Объекты Font и ParagraphFormat
- •5.6.7 Объект PageSetup
- •5.6.8 Объекты Table , Column, Rowи Cell
- •5.6.9 Объект System
- •5.6.10 Коллекция Tasks и объект Task
- •5.6.11 Коллекция Windows и объект Window
- •Задание для самостоятельной работы 5.1 Программное формирование документа в Word
- •6. Программирование в Excel
- •6.1 Зачем программировать в Excel
- •6.2 Объект Application
- •6.3 Свойства и методы объекта Application
- •6.4 Коллекция Workbooks и объект Workbook, их свойства и методы
- •6.5 Коллекция Sheets и объект Worksheet , их свойства и методы
- •6.6 Объект Range, его свойства и методы
- •6.7 Коллекция QueryTables и объект QueryTable
- •6.8 Работа со сводными таблицами (объект PivotTable)
- •6.9 Работа с диаграммами: объект Chart
- •6.10 Другие объекты Excel
- •Задание для самостоятельной работы 6.1 Применение Excel для анализа информации из базы данных
- •7. Программирование в Access
- •7.1 Отличительные особенности создания приложений Access
- •7.2 Основные этапы создания приложений Access
- •7.3 Объект Application , его свойства и методы
- •7.4 Макрокоманды и объект DoCmd
- •7.5 Работа с формами Access из vba (объект Form )
- •7.6 Свойства, методы и события форм
- •7.7 Работа с отчетами (объект Report )
- •7.8 Другие объекты Access
- •Задание для самостоятельной работы 7.1 Создание приложения vba в Access
- •8. Программирование в PowerPoint
- •Задание для самостоятельной работы 8.1 Программное добавление элементов в слайды
1.5.2 Оператор Select Case
Проверка условий в VBA, оператор Select Case
Оператор Select Case идеально подходят для проверки одного и того же значения, которое нужно много раз сравнить с разными выражениями. Синтаксис его очень прост:
Select Case sDayOfWeek
Case "Понедельник"
MsgBox "Салат из шпината"
Case "Вторник"
MsgBox "Салат из морской капусты"
…
Case Else
MsgBox "На этот день у нас ничего не предусмотрено"
End Select
Некоторые замечания по поводу Select Case:
строка Case "Понедельник" на самом деле означает Case sDayOfWeek = "Понедельник", просто такое равенство подразумевается по умолчанию. Но вам ничего не мешает использовать другой оператор сравнения или целый набор таких операторов:
Case 0 To 5, 15, Is > 55
MsgBox "Напомнить о прививках"
Слово Is при этом можно пропустить — компилятор VBA добавит это ключевое слово за Вас. Несколько критериев в Case объединяются аналогично операторы OR — то есть выполнение пойдет по этой ветви, если тестируемое значение будет удовлетворять хотя бы одному из критериев. Критерии для сравнения разделяются запятыми.
при использовании диапазона (0 To 5) включаются и границы диапазона (в данном случае 0 и 5).
1.5.3 Оператор GoTo
Оператор GoTo в VBA, ситуации применения GoTo
Оператор GoTo — это оператор безусловного перехода, когда ход выполнения программы без проверки каких-либо условий перепрыгивает на метку в коде. Пример применения GoTo может выглядеть так:
GoTo EngineNotStarted
…
EngineNotStarted :
MsgBox "Едем на метро"
…
EngineNotStarted: — это метка, для нее используется имя (выбираемое по правилам назначения имен для переменных), которое оканчивается на двоеточие.
Иногда использование GoTo очень удобно — например, когда нам нужно добиваться от пользователя ввода правильного значения неизвестное число раз. Однако использование GoTo категорически не рекомендуется, потому что код становится трудночитаемым. Чаще всего GoTo можно заменить на конструкцию Do While или на вызов функции из самой себя.
Задание для самостоятельной работы 1.2: Работа с операторами условного перехода
Подготовка:
Создайте новую книгу Excel и сохраните ее как C:\LabCondConstructions.xls.
Откройте редактор Visual Basic в Excel и создайте в этой книге новый стандартный модуль Module1.
Введите в этом стандартном модуле следующий код:
Public Sub IfThenSub()
Dim nResult As Integer
nResult = MsgBox("Нажмите кнопку", vbYesNo, "Окно сообщения")
ThisWorkbook.Worksheets(1).Range("A1").Value = "Вы нажали кнопку: " & nResult
ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit
End Sub
Запустите этот код на выполнение и убедитесь, что он выполняется без ошибок. Этот код должен вставлять в ячейку A1 первого листа вашей книги текстовое значение вида "Вы нажали кнопку: 6" в зависимости от того, какая кнопка была нажата в окне сообщения.
Задание 1:
Измените код этой процедуры таким образом, чтобы вместо чисел в ячейку прописывалось строковое значение нажатой кнопки (например, "Вы нажали кнопку: Повтор"). Используйте при этом синтаксическую конструкцию IF…THEN…ELSE.
Задание 2:
Замените в вашей процедуре строку
nResult = MsgBox ("Нажмите кнопку", vbYesNo , "Окно сообщения")
на
nResult = MsgBox ("Нажмите кнопку", vbAbortRetryIgnore , "Окно сообщения")
Измените вашу процедуру таким образом, чтобы она вставляла в ячейку A1 значения "Отменить", "Повторить" или "Пропустить" в зависимости от того, какая кнопка была нажата в окне сообщения. Используйте при этом синтаксическую конструкцию Select…Case.
Решение к заданию 1:
Итоговый код для вашей процедуры может быть таким:
Public Sub IfThenSubAnswer()
Dim nResult As Integer
nResult = MsgBox("Нажмите кнопку", vbYesNo, "Окно сообщения")
If nResult = 6 Then
sResult = "Да"
ElseIf nResult = 7 Then
sResult = "Нет"
Else
sResult = "Неизвестная кнопка"
End If
ThisWorkbook.Worksheets(1).Range("A1").Value = "Вы нажали кнопку: " & sResult
ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit
End Sub
Решение к заданию 2:
Итоговый код для вашей процедуры может быть таким:
Private Sub SelectCaseAnswer ()
nResult = MsgBox("Нажмите кнопку", vbAbortRetryIgnore , "Окно сообщения")
Select Case nResult
Case 3
sResult = "Отменить"
Case 4
sResult = "Повторить"
Case 5
sResult = "Пропустить"
Case Else
sResult = "Неизвестная кнопка"
End Select
ThisWorkbook.Worksheets(1).Range("A1").Value = "Вы нажали кнопку: " & sResult
ThisWorkbook.Worksheets(1).Range("A1").Columns.AutoFit
End Sub