Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Циклы с условием




End If

Else

Количество операторов End If должно совпадать с количеством операторов If.

End If

End If

Else

End If

End Sub

End Sub

Операторы ветвления

В языке VBA имеются два основных типа операторов выбора: операторы условия (линейный и блочный) и переключатели.

1) линейный оператор условия используется для выполнения одного оператора, в зависимости от условия. Формат:

IF<Условие>Then<Оператор1>[Else<Оператор2>]

Конструкция [Else<Оператор2>] может отсутствовать.

Пример1 (альтернативная форма):

Sub Условие()

If Sheets("товар2").Cells(4,1) = "монитор" _

Then Cells(4,2).Value = 1500 Else Cells(4,2).Value = 500

‘ если значение ячейки А4 листа Товар2 имеет значение Монитор, то в ячейку В4 поместить число 1500, иначе в ячейку В4 поместить число 500.

 

Пример2 (безальтернативная форма):

Sub Условие1()

If Sheets("товар2").Cells(4,1) = "монитор" Then Cells(4,2).Value = 1500

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

 

2) Блочный оператор используется, когда в случае истинности условия необходимо выполнить несколько программных операторов.

IF<Условие>Then

<Группа операторов1>

[Else< Группа операторов2>]

Где End If- указывает на окончание блока оператора If.

Операторы If могут быть вложенные друг в друга. Такое вложение операторов необходимо, если нужно проверить какое-либо условие при другом условии, которое является истинным. Синтаксис программы:

IF<Условие1>Then

IF<Условие2> Then

<Оператор1>

<Оператор2>

Например:

Sub программа()

Dim Name, Rang As String

If Name = «Петров» Then

If Rang = «Торговый агент»

Then

Range("A10") = Name & Rang

Else

Range("A10") = "Агента с указанной фамилией в списке нет"

End If

End If

End Sub

 

Условия можно записывать с помощью логических операторов, например:

Sub месяц1()

If Range("A1") = 6 Or Range("A1") = 7 Or Range("A1") = 8 Then

Range("A2") = "каникулы"

Else

Range("A2") = "учебный год"

End If

End Sub

Языком VBA также предусмотрена конструкция для работы с несколькими операторами If. Она применяется в тех случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция If……Then……ElseIf. В отличии от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие имеет значение ложь.

Синтаксис программы:

IF<Условие1>Then

<Оператор1>

ElseIF<Условие2> Then

<Оператор2>

<Оператор3>

 

Пример:

Sub месяц_СПО()

Sheets("месяц").Select

If Range("A1") = 12 Then

Range("A2") = "декабрь"

ElseIf Range("A1") = 1 Then

Range("A2") = "январь"

ElseIf Range("A1").Value = 2 Then

Range("A2") = "февраль"

ElseIf Range("A1") = 3 Then

Range("A2") = "март"

ElseIf Range("A1") = 4 Then

Range("A2") = "апрель"

ElseIf Range("A1") = 5 Then

Range("A2") = "май"

Else

Range("A2") = "лето или осень"

End If

End Sub

 

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

В) Операторы циклов

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

Цикл со счетчиком:

FOR СчетчикЦикла=НачальноеЗначение TO Конечное значение

[ STEP Шаг]

NEXT [Счетчик цикла]

Где ключевые слова:

FOR – начало цикла

TO – разделяющее НачальноеЗначение и КонечноеЗначение

STEP – задание шага цикла

NEXT – конец цикла

 

Пример:

Sub Цикл_пример()

Dim Sum As Integer

Dim I As Integer

Sum = 0

For I = 1 To 4

Sum = Sum + 2

Next I

Range("A5") = Sum

End Sub

Этот цикл эквивалентен

четырем операторам Sum=Sum+2 (Sum=8)

Пример2:

Sub Цикл_пример2()

Dim Sum, I As Integer

Sum = 0

For I = 1 To 4

Sum = Sum + I

Next I

Range("A5") = Sum

End Sub

В данном примере сумма будет равна 10 (0+1+2+3+4)

Пример3:

Sub Цикл_пример2()

Dim Sum, I As Integer

Sum = 0

For I = 1 To 4 Step 2

Sum = Sum + I

Next I

Range("A5") = Sum

End Sub

В данном примере сумма будет равна 16 (0+1+3+5+7)

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

Цикл с предусловием: Цикл с постусловием

Do While | Until <условие> Do

<Операторы> <Операторы>

[Exit Do] [Exit Do]

Loop Loop While | Until <условие>

Где:

Do, Loop – ключевые слова, определяющие начало и окончание цикла;

While и Until – ключевые слова, определяющие тип цикла;

Цикл Do While выполняется до тех пор, пока, пока условие имеет значение True;

Цикл Do Until выполняется до тех пор, пока, пока условие имеет значение False;

Exit Do – принудительный выход из цикла.

Примеры:

Sub Предусловие()

Sum = 2

Do While Sum < 10

Sum = Sum + J

J = J + 1

Loop

Sheets("Алгоритм").Range("A20").Value = Sum

End Sub

 

Sub Предусловие() ‘С окнами сообщений

Sum = 2

Do While Sum < 10

Sum = Sum + J

MsgBox ("J=") & J

J = J + 1

MsgBox ("Сумма") & Sum

Loop

Sheets("Алгоритм").Range("A20").Value = Sum

End Sub

 

Sub Предусловие1()

Dim Sum As Integer

Dim J As Integer

Sum = 2

Do Until Sum > 9

Sum = Sum + J

J = J + 1

Loop

Sheets("Алгоритм").Range("A19").Value = Sum

End Sub

 

Sub Постусловие1()

Sum = 2

Do

Sum = Sum + J

J = J + 1

Loop While Sum < 10

Sheets("Алгоритм").Range("A21").Value = Sum

End Sub

 

7. Основы создания интерфейса пользователя

Встроенные диалоговые окна

Встроенные диалоговые окна представляют собой операторы или функции языка. Диалоговые окна бывают двух видов: окна сообщений и окна ввода.

1. Окна сообщений- MsgBox

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

MsgBox<выражение>[, <Кнопки>] [, <Заголовок окна>]

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

Например, MsgBox «Пример окна сообщений»

MsgBox "Пример окна сообщений", 0 + 48, "Окно сообщений"

MsgBox "Содержимое ячейки составляет " & Range("B4"),, "Окно сообщений"

Табл.1 Встроенные константы для определения результата

Константа Значение Кнопка
vbOK   ОК
VbCancel   Отмена
VbAbort   Прервать
VbRetry   Повторить
VbIgnore   Пропустить
VbYes   Да
vbNo   Нет

 

Табл.2 Встроенные константы для определения параметра кнопки

Константа Значение Наборы кнопок в окне диалога
vbOKOnly   Только кнопка ОК
vbOKCancel   Кнопки ОК и Отмена
VbAbortRetryIgnore   Прервать, Повторить, Пропустить
VbYesNoCancel   Да, Нет, Отмена
VbYesNo   Да, Нет
VbRetryCancel   Повторить, Отмена

 

Табл.3 Пиктограммы диалогового окна

Константа Значение Пиктограмма
VbCritical    
VbQuestion    
VbExclamation    
VbInformation    

 

Табл.4 Кнопка по умолчанию

Константа Значение Номер кнопки
VbDefaultButton1   Первая
VbDefaultButton2   Вторая
VbDefaultButton3   Третья

 

 

2. Окно ввода - InputBox

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

Формат функции:

Stroka=InputBox(<сообщение>[, <Заголовок>]),

Где Stroka – переменная, в которую помещается введенная информация,

Сообщение – текст сообщения в кавычках,

Заголовок – заголовок окна в кавычках

 

Range("A10") = InputBox("Введите данные в ячейку А10", "Пример окна ввода")

Функция InBox() может использоваться в качестве условного выражения в операторах If – Then. Через окно ввода можно заполнять столбцы и строки таблицы.

Пример1 (заполнение столбца А названиями товара):

Sub окно_ввода()

Dim I, NS As Integer

NS = 4

Sheets("товар2").Select

For I = 1 To 6

Cells(NS, 2) = InputBox("Введите название товара")

NS = NS + 1

Next I

End Sub

 

Sub окно_ввода1()

Dim I As Integer

For I = 1 To 6

Sheets("товар2").Cells(1, 2) = InputBox("Введите название товара")

Next I

End Sub

 

Пример2

Sub окно_ввода_c_условием() ‘Начало программы

Dim NS% ‘объявляются переменная NS как Целое число

Dim A$ ‘объявление текстовой переменной

NS = 4 ‘присваиваются начальные значения переменным

A = ""

Sheets("товар2").Select ‘Выбор листа Товар2

Do Until A = "Закончить" ‘Начало цикла с предусловием (выполняется пока условие имеет значение False);

A = InputBox("Введите название товара, для завершения наберите Закончить") ‘значение функции InputBox помещается в значение переменной A

If A = "Закончить" Then Exit Do ’Цикл прерывается

Cells(NS, NC) = A ‘в ячейку А4 помещается введенное в окно ввода слово

NS = NS + 1 ‘следующая строка

Loop ‘конец цикла

End Sub ‘конец программы

 




Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.