Навигация

  • Новости сайта

      Этим видео-уроком я хочу начать серию видео-уроков, которые будут посвящены основам работы в программе Microsoft Word.




    Наш опрос
    Какой из разделов материала Вас заинтересовал больше?

  • Основные операторы языка VBA
    Просмотров: 38 551 |
    Комментарии (0)
    17 февраль 2011 |

    3.1. Правила записи операторов

    При записи операторов необходимо придерживаться следующих правил:

    -       Каждый новый оператор записывается с новой строки.

    -       Чтобы записать несколько операторов на одной строке, их разделяют между собой двоеточием (:).

    -       Если оператор не помещается в одной строке, то необходимо поставить в конце строки пробел и знак подчеркивания ( _), а затем продолжить не поместившуюся часть на следующей строке.

    3.2. Оператор присваивания

    Оператор присваивания используется, если какой-то переменной нужно присвоить новое значение. Он имеет следующий синтаксис:

    ИМЯ_ПЕРЕМЕННОЙ = ВЫРАЖЕНИЕ

    Сначала вычисляется выражение в правой части, а затем результат присваивается переменной, стоящей в левой части.

    Например. Записать с помощью оператора присваивания следующее математическое выражение:     

    На VВА это выражение можно записать в виде следующего оператора:

    Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

    3.3. Операторы  ввода-вывода


    3.3.1. Оператор  и функция  MsgBox

    Оператор MsgBox осуществляет вывод информации в диалоговом окне и  устанавливает режим ожидания нажатия кнопки пользователем.

    Он имеет следующий синтаксис:

    MsgBox  Сообщение[,Кнопки][, Заголовок]

    Аргументы:

    Сообщение - обязательный аргумент, задающий в окне выводимое информационное сообщение. Может состоять из нескольких текстовых строк, объединенных знаком &. Использование в этом аргументе Chr(13) приводит к переходу на новую строку при выводе информации.

    Кнопки - значение этого аргумента определяет категории появляющихся в окне кнопок. От значения аргумента кнопки зависит также, появляется ли в окне какой-либо значок. Если не указано, какие кнопки необходимо отображать в окне сообщений, то используется значение по умолчанию, соответствующее кнопке ОК. В табл. 3.1 приведены возможные комбинации кнопок и значков в окне сообщений.

    Заголовок - задает заголовок окна.

    Функция MsgBox возвращает значение типа Integer, указывающее, какая кнопка была нажата в диалоговом окне.

    Таблица 3.1. Допустимые значения переменной кнопки

    Отображение

    Аргумент

    Кнопка ОК

    VbOKOnly

    Кнопки ОК и Отмена

    VbOKCancel

    Кнопки Да и Нет

    VbYesNo

    Кнопки Да, Нет и Отмена

    VbYesNoCancel

    Кнопки Прекратить, Повторить и Игнорировать

    VbAbortRetryIgnore

    Кнопки Повторить и Отмена.

    VbRetryCancel

    Информационный знак

    VbInformation

    Знак

    VbCritical

    Знак вопроса

    VbQuestion

    Знак восклицания

    VbExclamation

    Например. Вывести сообщение о текущей дате.

    Для этого можно использовать следующий оператор:

    MsgBox "Сегодня на календаре" & Date , , "Внимание"


    В результате будет выведено следующее окно (рис.3.1).

    Рис. 3.1

    После щелчка по кнопке ОК окно сообщения закроется, и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом MsgBox.

     

    3.3.2. Функция InputBox

    Функция InputBox осуществляет ввод значений переменных с помощью окна  ввода и имеет следующий синтаксис:

    Имя_Переменной = InputBox( Сообщение[, Заголовок])

    Аргументы:

    Сообщение - обязательный аргумент. Задает в окне информационное сообщение, обычно поясняющее смысл вводимой величины

    Заголовок - задает заголовок окна.

    Например, Ввести значение переменной N с клавиатуры, предусмотрев значение по умолчанию равное 10.

    Для этого можно использовать следующий оператор:

    N = InputBox("Введите N", "Ввод исходных данных",10)

    В результате будет выведено следующее окно для ввода значения переменной  N  (рис.3.2).

    Если значение по умолчанию подходит пользователю, то после щелчка кнопки ОК окно ввода закроется, переменной  N  присвоится значение 10 и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом InputBox.

    Если же значение по умолчанию не подходит пользователю, то перед щелчком по кнопке ОК необходимо ввести нужное значение переменной N.

     

    3.4. Условный оператор IF

    Для реализации разветвляющегося вычислительного процесса в VBA используется оператор If…Then…Else, который представляет собой простейшую форму проверки условий. Он имеет следующий синтаксис:

    If  УСЛОВИЕ   Then  ОПЕРАТОР_1  Else  ОПЕРАТОР_2

    ОПЕРАТОР_1  выполняется, если УСЛОВИЕ истинно, в противном случае выполняется ОПЕРАТОР_2. При этом оператор If…Then…Else записывается в одну строку.

    УСЛОВИЕ – это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 3.2.

    Таблица 3.2. Логические отношения

    Операция

    Название

    Выражение

    Результат

    =

    Равно

    A = В

    True, если А равно В

    <> 

    Не равно

    A<>В

    True, если А не равно В

    Больше

    А>B

    True, если А ,больше В

    Меньше

    A<B

    True, если А меньше В

    >=

    Больше или равно

    A>=B

    True, если А больше или равно В

    <=

    Меньше или равно

    A<=B

    True, если А меньше или равно В

    Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в табл. 3.3.

    Таблица 3.3. Логические операции

     

     

    Название

    Выражение

    А

    В

    Результат

    Not

    Логическое
    отрицание

    Not A

    False

    True

     

    True

    False

    And

    Логическое И

    A And B

    True

    True

    False

    False

    True

    False

    True

    False

    True

    False

    False

    False

    Or

    Логическое ИЛИ

    A Or B

    True

    True

    False

    False

    True

    False

    True

    False

    True

    True

    True

    False

    В условном операторе допустимо использование блока операторов вместо любого из операторов. В этом случае условный оператор имеет вид:

    If УСЛОВИЕ  Then

             БЛОК_ОПЕРАТОРОВ_1

    Else

             БЛОК_ОПЕРАТОРОВ_2

    End If 

    В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:

    If УСЛОВИЕ_1  Then

             БЛОК_ОПЕРАТОРОВ_1

    ElseIf УСЛОВИЕ_2  Then

               БЛОК_ОПЕРАТОРОВ_2

             Else           

                  ….

    End If 

    Пример 1. Написать часть программы для алгоритма на рис. 3.3.

     

     

    Пример 2. Написать часть программы для алгоритма на рис. 3.4.

     

     

    3.5. Оператор выбора  Select Case 

    Оператор Select Case удобно использовать, когда в зависимости от значения некоторого выражения, имеющего конечное множество допустимых значений, необходимо выполнить разные действия. Он также относится к условным операторам, но имеет другой вид:

    Select Case  ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ

               Case  ЗНАЧЕНИЯ_1

                         ОПЕРАТОРЫ_1

               Case  ЗНАЧЕНИЯ_2 

                        ОПЕРАТОРЫ_2

               .  .  .

               Case  ЗНАЧЕНИЯ_N

                        ОПЕРАТОРЫ_N

               [Case Else 

                        ИНАЧЕ_ОПЕРАТОРЫ]

    End Select

    ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ может иметь любой скалярный тип, кроме вещественного. ЗНАЧЕНИЯ состоят из произвольного количества значений или диапазонов, отделенных друг от друга запятыми.

    Тип ЗНАЧЕНИЙ должен совпадать с типом ПРОВЕРЯЕМОГО_ВЫРАЖЕНИЯ.

    Сначала вычисляется ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ. Если его значение совпадает с одним из значений ЗНАЧЕНИЯ_I, то выполнятся ОПЕРАТОРЫ_I и управление передается оператору, стоящему после End Select. Если его значение не совпадает ни с одним из значений ЗНАЧЕНИЯ_I, то выполнятся ИНАЧЕ_ОПЕРАТОРЫ и управление передается оператору, стоящему после End Select

    Например. Написать часть программы для алгоритма на рис. 3.5, определяющего значение переменной S в зависимости от значения переменной n.

     

     

    3.6. Операторы цикла

    Для реализации циклического вычислительного процесса, т. е. многократного выполнения одного или нескольких операторов, служит оператор цикла For…Next, который имеет следующий синтаксис:

    For СЧЕТЧИК=НАЧ_ЗНАЧЕНИЕ Тo КОН_ЗНАЧЕНИЕ Step ШАГ 

         БЛОК_ОПЕРАТОРОВ

         [Exit For]

         БЛОК_ОПЕРАТОРОВ

    Next СЧЕТЧИК 

    Цикл For…Next перебирает значения переменной СЧЕТЧИК, которая является параметром цикла, от начального до конечного значения с указанным шагом изменения. При этом обеспечивается выполнение блока операторов тела цикла при каждом новом значении счетчика. Если Step ШАГ в конструкции отсутствует, то по умолчанию считается, что шаг равен 1. По оператору  Exit For можно выйти из оператора цикла до того, как СЧЕТЧИК достигнет последнего значения.*

    Для перебора объектов из группы подобных объектов, например, ячеек из диапазона или элементов массива, удобно использовать оператор цикла For… Each…Next.

    For Each Элемент In Группа 

          БЛОК_ОПЕРАТОРОВ 

          [Exit For]

          БЛОК_ОПЕРАТОРОВ

    Next Элемент 

    В VBA для организации циклов с неизвестным заранее числом повторений используются и другие операторы цикла:

    циклы с предусловием –       Do WhileLoop,    

    Do UntilLoop;

    циклы с постусловием –       DoLoop While,      

    DoLoop Until.

    Ниже приведен синтаксис этих операторов цикла:

    ' Цикл с предусловием    Do WhileLoop 

    Do While УСЛОВИЕ 

          БЛОК_ОПЕРАТОРОВ

          [Exit Do]

          БЛОК_ОПЕРАТОРОВ

    Loop

     

    Примечание. Не рекомендуется принудительно изменять значения параметра цикла, его начального и конечного значения в теле цикла For…Next.

     

    ' Цикл с предусловием    Do Until Loop 

    Do Until УСЛОВИЕ 

          БЛОК_ОПЕРАТОРОВ

          [Exit Do]

          БЛОК_ОПЕРАТОРОВ

    Loop

    ' Цикл с постусловием    DoLoop While

    Do

          БЛОК_ОПЕРАТОРОВ 

          [Exit Do]

          БЛОК_ОПЕРАТОРОВ

    Loop While УСЛОВИЕ 

    ' Цикл с постусловием    DoLoop Until

    Do

          БЛОК_ОПЕРАТОРОВ 

          [Exit For]

          БЛОК_ОПЕРАТОРОВ

    Loop Until УСЛОВИЕ 

    Оператор Do While…Loop обеспечивает многократное повторение блока операторов до тех пор, пока УСЛОВИЕ соблюдается, а оператор Do Until…Loop пока УСЛОВИЕ не соблюдается. Операторы Do…Loop While, Do…Loop Until  отличаются от перечисленных выше операторов тем, что сначала блок операторов выполняется по крайней мере один раз, а потом проверяется УСЛОВИЕ.

    Для избежания зацикливания в теле цикла должен быть хотя бы один оператор, который изменяет значения переменных, стоящих в УСЛОВИИ.

    Оператор Exit Do обеспечивает досрочный выход из оператора цикла.

    Пример 1. Составить фрагмент программы для алгоритма на рис. 3.6.
    Пример 2. Составить фрагмент программы для алгоритма на рис. 3.7.
    Пример 3. Составить фрагмент программы, соответствующей алгоритму

     


    Вернуться назад



    Другие новости по теме:

      Информация
      Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

      Друзья сайта
      Календарь

      Можно ли получить высшее образование, не потратив денег? Всем известно, что поступить на бесплатное обучение довольно сложно. И если вам это не удалось, то можно существенно сократить свои расходы, выбрав контрактную форму обучения.



      Интернет-технологии – особый вид технологий создания, а также поддержки различного рода информационных ресурсов в сети Интернет. К этим ресурсам относятся форумы, чаты, сайты блоги, энциклопедии, а также электронные библиотеки.



      На сегодняшний день практически каждая компания, организация или фирма имеет свой корпоративный сайт в сети, что позволяет осуществлять различные действия через интернет. Безусловно, для нормального функционирования любого ресурса, он должен быть максимально качественно разработан, дополнен различными полезными деталями и материалами. Информационное наполнение сайтов может быть создано несколькими способами.



      По данным статистики подростки школьного возраста проводят за экранами телевизоров около четырех часов в день, и это не считая времени проводимого за компьютерными играми. Дети часто играют в игры, причем, даже не замечая времени, которое они тратят не на уроки, а на игры, многие даже пропускают школьные занятия, если нет контроля родителей. По исследованиям ученых компьютерные игры стимулируют у детей лишь ограниченный участок головного мозга, а ведь детям необходимо читать, писать и считать.



      Наука является основной движущей силой, которая развивает очень многие сферы в человеческой жизни. Но ученые тоже люди и могут допускать разные ошибки. Я думаю, что не всегда можно доверять науке. Она всегда является спорным вопросом. Некоторые ученые как - бы не от мира сего, их никто и ничто не волнует кроме своей работы,