- •Федеральное государственное бюджетное образовательное учреждение
- •Оглавление
- •§ 2. Объекты, методы, свойства
- •2.1. Объекты (Objects)
- •2.2. Классы объектов (Classes Objects)
- •2.3. Свойства объекты (Properties)
- •2.4. Методы объекты (Methods)
- •Объект.Метод (арг1, арг2) § 3 Объекты: Application, Range, Selection, Cells, их методы и свойства
- •3.1. Объект Application (приложение)
- •3.1.1. Свойства объекта Application
- •3.1.2. Методы объекта Application
- •3.2. Объект Range
- •3.2.1. Свойства объекта Range
- •Объект. Cells ( номер_строки, номер_столбца).
- •3.2.2. Методы Объекта Range
- •3.3. Объект Selection
- •3.3.1. Свойства Объекта Selection
- •3.3.2. Методы Объекта Selection
- •§ 4 Семейство UserForms, их методы и свойства
- •4.1. Свойства пользовательской формы
- •4.2. Методы пользовательской формы
- •§ 5 Элементы управления
- •5.1. Свойства элементов управления
- •5.2. Label – метка (надпись, статический текст)
- •5.3. TextBox – поле ввода (окно редактирования)
- •5.4. CommandButton – командная кнопка
- •5.5. OptionButton – кнопка-переключатель
- •5.6. ListBox – список
- •5.7. CheckBox – флажок (кнопка выбора)
- •5.8. ScrollBar – полоса прокрутки
- •5.9. Frame – рамка (группы)
- •§ 6 Создание пользовательских форм
- •Лабораторный практикум № 1. Заполнение ListBox.
- •1. Заполнение объектов ListBox, расположенных на одном объекте UserForm.
- •Программа Заполнение объектов ListBox, расположенных на одном объекте UserForm.
- •2. Заполнение объектов ListBox, расположенных на разных объектах UserForm.
- •2.1 Заполнение списка поэлементно, если список состоит из одной колонки
- •2.2 Заполнение списка массивом, если список состоит из одной колонки
- •2.3 Заполнение списка из диапазона, в который предварительно введены элементы списка
- •2.4 Заполнение списка поэлементно, если список состоит из нескольких колонок
- •2.5 Заполнение списка массивом, если список состоит из нескольких колонок
- •3. Заполнение объектов ListBox, расположенных на листе Excel
- •Программа Заполнение объектов ListBox, расположенных на листе Excel
- •Лекция 2. Виды алгоритмов. Операторы цикла
- •§ 1. Алгоритмы последовательные, разветвляющиеся и циклические с заданным числом итераций и с неизвестным числом итераций
- •1.1. Алгоритмы линейной структуры
- •1.2. Алгоритмы разветвляющейся структуры
- •If [условие] Then
- •1.3. Алгоритмы циклической структуры
- •§ 2. Операторы цикла в Excel и vba
- •2.1. Операторы цикла vba
- •Операторы
- •Операторы
- •Do While [условие] операторы
- •Операторы
- •2.3. Выход из структур управления
- •2.4. Оператор цикла с предусловием While…Do
- •While Условие Do Оператор.
- •2.5. Оператор цикла с постусловием Repeat…Until
- •2.3 Оператор цикла с параметром for
- •2.4 Оператор цикла с параметром With
- •Лабораторный практикум № 2. Табулирование функции
- •Программа табулирование разветвляющейся функции вVва
- •Функции, разветвляющейся больше, чем один раз
- •Программа табулирования двух функций вVва
- •2. Табулирование функции
- •2.1 Программа табулирования функции в vва
- •4. Табулирование функций в объектах ListBox
- •2.2 Программа Табулирование функций в объекте ListBox
- •Лекция 3. Файлы
- •Чтение из файла.
- •Чтение из файла
- •Лабораторный практикум № 3.
- •Часть 1
- •Часть 2
- •Часть 3
- •Лекция 4. Массивы
- •Лабораторный практикум № 4
- •Лекция 5. Графика
- •Ксения Владимировна Григорьева Информатика Введение в объектно-ориентированное программирование
Do While [условие] операторы
Loop
Выполняя этот цикл, VBA сначала проверяет условие. Если условие ложно (False), он пропускает все операторы цикла. Если оно истинно (True), VBA выполняет операторы цикла, снова возвращается к оператору Do While и снова проверяет условие.
Следовательно, цикл, представленный данной конструкцией, может выполняться любое число раз, пока значением условия является не нуль или True (Истина). Отметим, что операторы тела цикла не выполняются ни разу, если при первой проверке условия оно оказывается ложным (False).
Пример. Вычислить сумму ряда с заданной точностью.
Sub пример4()
Dim e As Single, x As Single, s As Single
Dim m As Single, p As Single, i As Single
Call read("a1", x) : Call read("b1", e)
s = 0: i = 1: m = 1: p = -1
Call out("a2", "i") : Call out("b2", "m") : Call out("c2", "s")
Do While Abs(m) >= e
p = -p * x
m = p / i
s = s + m
Call out("a" & (2 + i), i) : Call out("b" & (2 + i), Abs(m)) : Call out("c" & (2 + i), s)
i = i + 1
Loop
End Sub
Другая разновидность конструкции Do…Loop сначала выполняет операторы тела цикла, а затем проверяет условие после каждого выполнения. Эта разновидность гарантирует, что операторы тела цикла выполнятся по крайней мере один раз:
Do
Операторы
Loop
While [условие]
Две другие разновидности конструкции цикла аналогичны предыдущим, за исключением того, что цикл выполняется, пока условие ложно (False):
1) цикл не выполняется вообще или выполняется много раз:
Do Until [условие]
Операторы
Loop
2) цикл выполняется по крайней мере один раз:
Do
операторы
Loop Until [условие]
2.2. Вложенные циклы VBA
Можно помещать структуры управления внутрь других структур управления (например, блок If…Then внутрь цикла For…Next). Говорят, что структура управления, помещенная внутрь другой структуры управления, является вложенной.
Глубина вложения управляющих структур в VBA не ограничена. Для улучшения читаемости кода принята практика смещения тела конструкции принятия решения или цикла в программе в случае использования вложенных структур управления.
При вложении в цикл одного или несколько других циклов говорят о вложенных циклах, в которых различают внешние (охватывающие) и внутренние (вложенные) циклы.
Пример суммирования элементов Aij матрицы A(n,m) построчно.
Sub пример5()
Dim a() As Single, s() As Single
Dim n As Integer, m As Integer
Dim i As Integer, j As Integer
Call read("a1", n): Call read("b1", m)
ReDim a(1 To n, 1 To m), s(1 To n)
'Чтение матрицы
For i = 1 To n
For j = 1 To m
Call readcell(i + 1, j, a(i, j))
Next j
Next i
'Вычисление
For i = 1 To n
s(i) = 0
For j = 1 To m
s(i) = s(i) + a(i, j)
Next j
Call outcell(i + 1, m + 1, s(i))
Next i
End Sub
Заметим, что первый оператор Next закрывает внутренний цикл For, а последний оператор Next закрывает внешний цикл For. Точно так же и для вложенных операторов If, операторы End If автоматически применяются для закрытия ближайшего к нему оператора If. Вложенные структуры Do…Loop работают подобным же образом: самый дальний оператор Loop соответствует самому дальнему оператору Do.
При вводе/выводе элементов двумерного массива на рабочий лист Microsoft Excel удобно применять пользовательские процедуры ввода/вывода:
Sub readcell(i As Integer, j As Integer, val As Variant)
val = Лист1.Cells(i, j).Value
End Sub
Sub outcell(i As Integer, j As Integer, val As Variant)
Лист1.Cells(i, j).Value = val
End Sub
где i - номер строки, j - номер столбца рабочего листа.