Управляющие структуры VBA



Витебский государственный профессиональный лицей № 5 приборостроения

Тема:«Управляющие структурыVBA»

Оглавление

  1. В ВЕДЕНИЕ

Язык программированияVBA (VisualBasicforApplication) предназначен для автоматизации разработки документов при решении задач, использующих приложения пакета:Excel,Word,Access. VBA был разработан на основе языка Visual Basic, является высокоуровневым языком программирования, и, в нем широко используются элементы объектно-ориентированного программирования.

Объектно-ориентированное программирование (ООП) – это совокупность подходов, методов, определяющая стиль написания программ, в которой основными концепциями являются понятия объектов и классов.

С помощью VBA можно:

Макрос ̶это макрокоманда в программном коде, последовательность нескольких команд или процедур, объединённых для выполнения определённой задачи. Макросы служат для ускорения выполнения сложных действий, повторяющихся много раз. Благодаря макросам не требуется каждый раз вводить одну и ту же последовательность команд, а достаточно просто вызвать нужный макрос.

Целью данной письменной экзаменационной работы является изучение управляющих структур языкаVBA.

  1. Т ЕОРИТИЧЕСКИЙ МАТЕРИАЛ

    Процедуры VBA выполняются построчно от начала до конца, если последовательность их выполнения не будет изменена каким-либо событием или с помощью структуры управления. Управляющие структуры определяют порядок выполнения кода. Это инструмент для принятия решения в самой программе. В VBA используются следующие структуры управления:

    1. If Then Else;
    2. For Next;
    3. While Wend;
    4. Do Loop;
    5. Select Case End Select.
      1. УПРАВЛЯЮЩАЯ ИНСТРУКЦИЯ  IF … THEN …  ELSE …

    Эта конструкция изменяет порядок выполнения инструкций в зависимости от результатов проверки заданного условия (или набора условий).

    Конструкция:

    БлочныйIf:

    If<условие>Then

    <блок операторов 1>

    Else <блок операторов 2>

    End If

    СтрочныйIf:

    If <условие>Then <блок операторов 1>Else<блок операторов 2>

    End If

    БлочныйIf, если требуется несколько условий:

    If <условие 1>Then

    <блок операторов 1>

    Else

    If <условие 2>Then

    Else <блок операторов 3>

    End If

    EndIf

    If (если)  ̶  логическое выражение;

    Then (тогда)   ̶  значение если истина;

    Else(иначе)   ̶  значение если ложь;

    End If   ̶  ключевое слово, означающее конец инструкции.

    1. УПРАВЛЯЮЩАЯ ИНСТРУКЦИЯFORNEXT

    Эта инструкция позволяет выполнять определённые действия нужное количество раз. Такие инструкции, как правило, называют циклами.

    Конструкция:

    For [счетчик] = началоTo конец [Step шаг]

    [инструкции]

    Next [счетчик]

    Например, если нужно узнать о количестве повторений цикла:

    Private Sub

    Dim i, a As Integer

    a = 0

    For i = 1 To 100 Step 2

    a = a + 1

    Next

    MsgBox "Числоповторений: " & a

    End Sub

    For (для) – ключевое слово, означающее начало цикла;

    i  ̶  переменная, определяющая число повторений цикла;

    1   ̶  начальное значение счётчика;

    To  ̶  ключевое слово, разделяющее начальное и конечное значение счётчика;

    100   ̶  конечное значение счётчика;

    Step(шаг)   ̶  ключевое слово, определяющее шаг счётчика;

    2   ̶  Шаг счётчика (число);

    Next (следующий)   ̶  ключевое слово, при достижении которого, значение счётчика изменяется на величину шага, после чего управление опять переходит в начало цикла;

    MsgBox ̶  функция, позволяющая вывести сообщение о количестве повторений.

    В инструкцииFor Next ключевое словоStep является необязательным. При его отсутствии, шаг выполнения счётчика будет равен 1.

    Шаг счётчика обязательно должен быть числом. Если шаг счётчика указан в виде отрицательного числа, то тогда значение счётчика с каждым циклом будет уменьшаться.

    Пример, с обратным отсчётом:

    PrivateSub

    Dim i, a As Integer

    a = 0

    For i = 300 To 1 Step -3

    a = a + 1

    Nexti

    MsgBox "Число повторений: " &a

    EndSub

    1. УПРАВЛЯЮЩАЯ ИНСТРУКЦИЯWHILEWEND

    Инструкция While …Wend … выполняет последовательность инструкций, пока заданное условие имеет значение True.

    Конструкция:

    While <условие>

    [инструкции]

    Wend

    Например, если нужно узнать о количестве повторений цикла:

    Private Sub

    Dim i As Integer

    i = 0

    While i < 100

    i = i + 1

    Wend

    MsgBox "Число повторений: " &i

    EndSub

    While (пока)   ̶  ключевое слово, означающее начало цикла;

    i < 100  ̶  условие, при соблюдении которого будет выполняться эта инструкция;

    Wend   ̶  ключевое слово, означающее конец цикла;

    MsgBox   ̶  сообщение о количестве повторений.

    1. УПРАВЛЯЮЩАЯ ИНСТРУКЦИЯ DO … LOOP

    Эта инструкция позволяет выполнять определённые действия не только до тех пор, пока соблюдается заданное условие, но и наоборот, пока не будет выполнено заданное условие.

    Конструкция:

    Конструкция

    Описание

    Do While  <условие>

    [блок Операторов]

    Loop

    Условие проверяется до того, как выполняется группа операторов, образующих тело цикла. Цикл продолжает свою работу, пока это условие выполняется (то есть имеет значение True), иными словами, в этой конструкции указывается условие продолжения работы цикла

    Do Until  <условие>

    [блок Операторов]

    Loop

    Условие проверяется до того, как выполняется группа операторов, образующих тело цикла. Цикл продолжает свою работу, если это условие еще не выполнено, и прекращает работу, когда оно станет истинным, иными словами, в этой конструкции указывается условие прекращения работы цикла

    Do [блок Операторов]

    Loop Until

    <условие>

    Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз. Цикл продолжает свою работу, если это условие еще не выполнено, а когда оно станет истинным, цикл прекращает работу, иными словами, в этой конструкции указывается условие прекращения работы цикла

    Do

    [блок Операторов]

    Loop While <условие>

    Условие проверяется после того, как операторы, составляющие тело цикла, будут выполнены хотя бы один раз. Цикл продолжает свою работу, пока это условие остается истинным, иными словами, в этой конструкции указывается условие продолжения работы цикла

    Например, если нужно узнать о количестве повторений цикла:

    Private Sub

    Dim i As Integer

    i = 0

    Do Until i >= 100

    i = i + 1

    Loop

    MsgBox "Число повторений: " &i

    EndSub

    Do (делать)   ̶  ключевое слово, означающее начало цикла;

    Until (до)   ̶  ключевое слово, означающее наличие условия;

    i > = 100  ̶  условие, при соблюдении которого, будет выполняться эта инструкция;

    Loop(цикл)   ̶  ключевое слово, означающее конец цикла;

    MsgBox   ̶  сообщение о количестве повторений.

    1. УПРАВЛЯЮЩАЯИНСТРУКЦИЯEND SELECT …

    Эта инструкция в зависимости от результатов значения переменной или выражения выполняет один из нескольких фрагментов кода.

    Конструкция:

    SelectCase [переменные]

    Case [первое значение переменной]

    <список операторов 1>

    Case [второе значение переменной]

    <список операторов 2>

    Case [N-ое значение переменной]

    <список операторовN>

    CaseElse

    <список операторовN+1>

    EndSelect

    Пример по строкам программного кода:

    1. Select Case a
    2. Case 5
    3. Действие 1
    4. Case 7To 9
    5. Действие 2
    6. Case Else
    7. Действие3
    8. End Select

    Private Sub

    a = Val(InputBox("Введите число"))

    1. Select Case a
    2. Case 5:
    3. MsgBox "a=5"
    4. Case 7 To 9:
    5. MsgBox "a между 7и 9"
    6. Case Else:
    7. MsgBox "aне подходит"
    8. End Select

    End Sub

    Select Case а (select – выбрать;case – случай)  ̶  ключевые слова конструкции, после которых идет переменная "а" которую необходимо проверить. Тип переменной может быть, целым, вещественным, строковым, символьным, логическим;

    Case   ̶  ключевое слово, после которого указываются варианты условия;

    Case 7 To 9   ̶  проверяет, входит ли "а" в диапазон от 7 до 9;

    Case Else  ̶  если "а" не подходит ни под одно условие, то выполняется иначе. Эту строку можно и не использовать;

    End Select   ̶  ключевые слова означающие завершение конструкции Select.

    1. ИНСТРУКЦИОННАЯ КАРТА

    Задание 1. Создать приложение, которое сравнивает два вещественных числа, при создании использовать управляющую структуруIfThenElse… .

    Рисунок

    1. Размещаем элементы управленияCommand на форме(рис.1).

    Рисунок

    1. Меняем свойстваCommand1,Command2.

    Для этого требуется зайти в окно свойств: щелчок правой клавишей мыши на элементе управления Параметры (Свойства) откроется окно свойств(рис.2).

    Меняем свойства(рис.2):

    • Command1Caption (название) Сравнить два числа;
    • Command2 Caption (название) Выход;
    • Command1BackColor (заливка) &H00C0E0FF&;
    • Command2BackColor (заливка)&H00C0E0FF&;
    • Command1Style(стиль)Graphical;
    • Command2Style (стиль) Graphical;
    • Command1Font(шрифт) начертание полужирный;
    • Command2