Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vba.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.8 Mб
Скачать

Однострочный if.

Простейшая структура однострочного IF:

If <логическое выражение> then <действие>

Вся информация размещается в одной строке. Если <логическое выражение> принимает значение «истина», то выполняем <действие> и переходим на следующую строку кода. Если <логическое выражение> принимает значение «ложь», то сразу , не выполняя <действия> переходим на следующую строку кода.

Пример.

y=5

If x>3 then y=2

Z=4+y

В данном примере, если x>3 то переменной Z будет присвоено значение 6 (4+2), а иначе, т.е. когда x<=3, значение 9 (4+5).

Отметим, что в VBA допускается в одной строке записывать несколько операторов, разделённых символом «:». Например, x=x+3: t=x*y : z= x/(x-y).

Полная структура однострочного IF:

If <логическое выражение> then <действие1> else <действие2>

Данный оператор действует также, как функция ЕСЛИ в EXCEL:

если <логическое выражение> > принимает значение «истина», то выполняем <действие1> и переходим на следующую строку кода. Если <логическое выражение> принимает значение «ложь», то выполняем <действие2> и переходим на следующую строку кода.

Пример.

If x>3 then y=x+4: z= z+3 else y = x-4: z= z-3

Если в данном примере z =2 и х=5, то y=9, а z =5. а если х=0, то y=-4, а z= -1.

Блочный if.

Блочный оператор IF есть смысл использовать, когда <действие1> или <действие2> достаточно громоздки и состоят из большого числа операторов.

Простейшая структура блочного IF:

If <логическое выражение> then

<действие>

end if

По сути та же, что и в однострочном IF, с теми отличиями, что

а) после слова THEN не стоит ничего ( кроме, быть может комментария)

б) оператор заканчивается словами end if.

Аналогична и структура вида:

If <логическое выражение> then

<действие1>

else

<действие2>

end if

пример.

If x<7 then

y=y+4

t=t-8

x=x-y/5

else

y=y-7

t=t+x-z

end if

Оператор if может иметь и более сложную структуру, а именно:

If <логическое выражение1> then

<действие1>

elseif <логическое выражение2> then

<действие2>

elseif <логическое выражение3> then

<действие3>

.................................................................

else

<действия группы else>

end if

В этом случае проверяется <логическое выражение1>. Если оно истинно, то выполняются <действия 1> и мы выходим из оператора.

Если <логическое выражение1> ложно, то проверяется <логическое выражение2>. Если оно истинно, то выполняются <действия 2> и мы выходим из оператора, и т. д.

Если ни одно из логических выражений не принимает значение «истина», то выполняются действия группы “ELSE”. Отметим, что в квадратных скобках стоят не обязательные для блочного оператора if операторы.

Пример.

If x<3 then

x=x-3

elseif x<5 then ‘ на эту ветвь попадем, когда 3 x<5

x=x-4

elseif x<8 then ‘ на эту ветвь попадем, когда 5 x<8

x=x*7

elseif (x<18 and x>30) then ‘ подумайте, когда попадем на эту ветвь

x=x/7

else‘ подумайте, когда попадем на эту ветвь

x=x/2

end if

Комментарии в программе начинаются с символа «‘» и никакого влияния на программу не имеют.

Оператор выбора select case

Если необходимо проверить несколько условий, которым удовлетворяет некоторая переменная, можно использовать оператор select case.

Синтаксис:

select case

[case СписокВыражений_1]

[Инструкция _1]

. . .

[case СписокВыражений _n]

[Инструкция _n]

[case else]

[Инструкция _else]

end select

- СписокВыражений - список, который состоит из одной или нескольких форм следующего вида:

Выражение, Выражение То Выражение, Is Оператор Сравнения Выражение,

где Выражение – это любое числовое или строковое выражение. Ключевое слово То задаёт диапазон значений. При использовании ключевого слова То перед ним должно находится меньшее значение, после большее. Ключевое слово Is с операторами сравнения задаёт диапазон значений. Если ключевое слово Is не указано, оно устанавливается по умолчанию..

- Инструкции – это одна или несколько инструкций, которые исполняются в том случае, если выражение совпадает с некоторым значением из списка от СписокВыражений-1 до СписокВыражений-n.

Инструкции_Else – одна или несколько инструкций, которые выполняются в том случае, когда выражение не совпадает ни с одним из предложений Case

При попадании на некоторую ветвь оператора select case и выполнения инструкций мы выходим из данного оператора, не осуществляя остальных проверок.

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

x = InputBox("Введите целое число")

Select Case x

Case 1

MsgBox "Число равно 1"

Case 2, 3

MsgBox "Число равно 2 или 3"

Case 4 To 6

MsgBox "Число от 4 до 6"

Case 7 To 8, 9 To 10

MsgBox "Число от 7 до 8 или от 9 до 10 "

Case Is >= 17, Is <= -15

MsgBox "Число не меньше 17 или не больше -15"

Case Else

MsgBox «число не удовлетворяет ни одному условию отбора»

End Select

Макросы

В офисных приложениях существует специальное средство позволяющее записать код действий, которые выполняются пользователем. Данное средство называется макрорекордером.

Для того чтобы изучить действие макрорекордер рассмотрим следующий пример: предположим

мы хотим строить график функции которая протабулирована на рабочем листе EXCEL в диапазоне А1:В22.

A

B

1

аргумент

функция

2

0

0.7

3

0.1

0.5

.

.............

.............

22

2

7.6

Для запуска макрорекордера мы выполняем команду:”сервис”=>”макрос”=>”начать запись”,после чего выводится окно:

После выбора имени макроса (по умолчанию имя макроса «Макрос1», но вы можете его изменить по вашему усмотрению) и нажатия ОК, мы стандартным образом, используя мастер диаграмм в EXCEL, строим график нашей функции. Во время записи макрорекордер записывает все наши действия на языке VBA, без нашего участия. Обращаем внимание на то, что во время записи макроса на рабочем месте появляется кнопка “остановить запись.” Для того чтобы остановить запись, мы нажимаем на кнопку “остановить запись” или выбираем команду сервис-макрос- остановить запись

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

Удалим график с рабочего листа. Выбрав команду “сервис”=>”макрос”=>”макросы”(ALT+F8) увидим имена всех макрокоманд, которые записаны в рабочей книге.

Выбираем из перечня имеющихся макросов “ макрос1” и нажимаем клавишу “Выполнить”.

Рядом с имеющимися данными появляется график нужной нам функции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]