- •Диаграммы и графики
- •Создание диаграммы
- •Типы диаграмм
- •Исходные данные
- •Параметры диаграммы
- •Элементы диаграмм
- •Редактирование диаграммы
- •Интерактивная диаграмма
- •Прогнозирование с использованием линий тренда
- •Автоматизация работы в Excel при помощи макросов
- •Visual Basic for Application
- •Концепция VBA
- •Работа с объектами
- •Объекты Excel.
- •Формы и элементы управления.
- •Интерфейс среды Visual Basic for Application
- •Запуск и отладка программ на VBA
- •Язык Бейсик
- •Отличия Бейсика от Паскаля
- •Идентификаторы, переменные, массивы
- •Операции, выражения, операторы
- •Операторы ветвлений
- •Конструкция If . . . Then
- •Конструкция If . . . Then . . . Else
- •Циклы
- •Конструкция For . . . Next.
- •Конструкция Do...Loop
- •Примеры расчетов на VBA
- •Нахождение минимального элемента массива.
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Литература
вычисляет выражение-условие, чтобы определить момент выхода из цикла. Как и в случае конструкции If . . . Then условие должно быть величиной или выражением, принимающими значение False (нуль) или True (не нуль).
В следующей конструкции Do . . . Loop операторы выполняются до тех пор, пока значением условия является True (Истина):
Do While условие операторы
Loop
Выполняя этот цикл, VBA сначала проверяет условие. Если условие ложно (False), он пропускает все операторы цикла. Если оно истинно (True), VBA выполняет операторы цикла, снова возвращается к оператору Do While и снова проверяет условие.
Следовательно, цикл, представленный данной конструкцией, может выполняться любое число раз, пока значением условия является не нуль или True (Истина). Отметим, что операторы тела цикла не выполняются ни разу, если при первой проверке условия оно оказывается ложным (False).
4.7 Примеры расчетов на VBA
4.7.1 Нахождение минимального элемента массива.
Необходимо найти минимальный элемент в наборе ячеек. Ячейки перебираются, начиная с текущей до пустой. После просмотра всего набора минимальный элемент записывается в ячейке под текущей.
Sub MinElem()
Dim I, min As Integer Dim n, row, col As Integer n = ActiveCell
row = ActiveCell.row col = ActiveCell.Column
min = ActiveSheet.Cells(row, col + 1) I = 2
Do While ActiveSheet.Cells(row, col + I) <> "" If ActiveSheet.Cells(row, col + I) < min Then min = ActiveSheet.Cells(row, col + I)
End If
I = I + 1 Loop
ActiveSheet.Cells(row + 1, col) = min End Sub
