Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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




Для программирования циклических алгоритмов используются операторы циклов. В VBA таких операторов несколько. Наиболее распространенными являются операторы While…Wend и For…Next. С их помощью можно запрограммировать циклические алгоритмы с предусловием. Принцип их работы:

1. Переменной цикла присваивается начальное значение.

2. Проверяется условие входа в цикл. Условие – это любое логическое выражение, операндом которого является переменная цикла. Если условие истинно, то выполняются Повторяющиеся действия (тело цикла). В противном случае цикл завершается, управление передается оператору, следующему за оператором цикла.

3. Значение переменной цикла изменяется.

4. Повторяются действия с шага 2.

9.18. Оператор цикла While…Wend

Синтаксис:

While <условие>

<Повторяющиеся действия>

Wend

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

Синтаксисом оператора не предусмотрено

- присваивание начального значения переменной цикла;

- изменение значения переменной цикла после выполнения повторяющихся действий.

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

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

9.19. Оператор цикла For…Next

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

Синтаксис:

For <Счетчик>=<НачЗначение> То <КонЗначение> [Step <Приращение>]

<Повторяющиеся действия>

Next [<Счетчик>]

Элементы синтаксиса:

Счетчик –

Обязательный. Переменная числового типа. Указывается программистом.

НачЗначение

Обязательный. Определяет состояние переменной Счетчик, с которого начинается отсчет ее значения.

КонЗначение –

Обязательный. Определяет состояние переменной Счетчик, на котором отсчет ее значения прекращается.

Step Приращение –

Необязательный. Переменная числового типа. Позволяет изменять приращение счетчика (по умолчанию оно равно 1).

Не рекомендуется изменение значения переменной цикла внутри тела цикла, т.к. это приведет к ошибочным результатам.

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

В данном случае переменная цикла i изменяет свое значение от 1 до значения переменной p включительно с шагом 1. Шаг модификации значения переменной цикла i в данном случае в операторе цикла не указан, так как он равен 1 (по умолчанию). Т.е. будет получено p значений вычисляемой функции.

Значение Счетчика может изменяться в обратном направлении. Для этого следует задать начальное значение больше конечного и выбрать отрицательное приращение значения счетчика.

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

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

9.20. Процедуры и функции

Процедура, по существу, представляет собой элемент компьютерной программы, выполняющей определенное действие. Ниже приведен пример процедуры с именем Test: она вычисляет сумму, а затем отображает результат в окне сообщений:

Sub Test(a,b)

Sum = a + b

MsgBox "Ответ: " & Sum

End Sub

Кроме процедур Sub, в модуле VBA может использоваться второй тип процедур — функции. Процедура функции возвращает одно значение (или массив). Функция может быть вызвана из другой процедуры VBA или использоваться в формуле рабочего листа. Далее приведен пример функции с названием AddTwo:

Function AddTwo(argl, arg2) as single

AddTwo = argl + arg2

End Function

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

Классы объектов организованы в иерархическую структуру. Объекты могут быть контейнерами для других объектов. Например, Excel — это объект под названием Application, он содержит другие объекты, например, Workbook (Рабочая книга). Объект Workbook может состоять из других объектов, например, Worksheet (Рабочий лист) и Chart (Диаграмма). Объект Worksheet также содержит объекты, например, Range (Диапазон), Pivot Table (Сводная таблица) и т.д.

Организацию таких объектов называют объектной моделью Excel. Одинаковые объекты формируют коллекцию. Например, коллекция Worksheets состоит из всех рабочих листов конкретной рабочей книги, а коллекция CommandBars — из всех объектов CommandBar. Коллекции — это объекты в себе.

При ссылке на объект, вложенный в другой объект, положение в иерархической структуре объектной модели задается с помощью точки-разделителя. Например, на рабочую книгу с названием Книга1.хls в можно сослаться следующим образом:

Application.Workbooks("Kнига1.xls")

Это ссылка на рабочую книгу Kнига1.xls в коллекции Workbooks. Коллекция Workbooks находится в объекте Application. Переходя на следующий уровень, вы можете сослаться на лист Лист1 в книге Книга1.xls:

Application.Workbooks("Книга1.xls").Worksheets ("Листl")

Перейдите на один уровень ниже, после чего необходимо сослаться на отдельную ячейку:

Application.Workbooks("KHMral.xls").Worksheets("Лист1").Range("Al")

При опущенной ссылке на объект Excel по умолчанию используются активные объекты.

Если книга Лист1 — активная рабочая книга, то предыдущую ссылку можно упростить:

Worksheets("Лист!").Range("Al")

Если вы знаете, что лист Лист 1 — активный, то ссылку можно упростить еще больше:

Range("А1")

Объекты имеют свойства. Свойство можно считать параметром или настройкой объекта. Например, объект диапазона имеет такие свойства, как Value (Значение) и Name (Имя), Объект диаграммы обладает такими свойствами, как Title (Заголовок) и Туре (Тип). Вы вправе использовать VBA, чтобы задать свойства объектов и их изменить.

Свойства в программном коде отделяются от названия объекта точкой. Например, вы можете сослаться на значение в ячейке А1 листа Лист1 следующим образом:

Worksheets ("Лист!").Range ("Al").Value

Для запуска VBA откройте приложение MS Excel и выполните команду Редактор Visual Basic или нажать сочетание клавиш < Alt+F11 >.

На экране монитора появиться редактор Visual Basic.

Окно редактора Visual Basic

Рассмотрим основные элементы окна редактора Visual Basic.




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


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


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



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




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