- •1 Некоторые сведения о программировании на vba
- •1.1 Вызов редактора Visual Basic.
- •1.2 Состав проекта
- •1.3 Элементы управления
- •1.4 Некоторые свойства и события элементов управления
- •1.5 Типы данных в vba
- •1.6 Некоторые встроенные функции vba
- •Функция InputBox
- •Процедура MsgBox
- •1.7 Процедуры и функции
- •1.8 Основные объекты vba
- •Свойства и методы объектов семейства Worksheets
- •Объекты Cells, Range и Selection
- •Свойства и методы объекта Range
- •1.9 Основные операторы vba
- •Оператор присваивания
- •Условный оператор
- •If условие then инструкции 1 else инструкции 2
- •If условие then
- •If условие1 then
- •If условие then инструкции 1
- •Оператор выбора
- •Оператор с заданным количеством повторений.
- •Оператор цикла по множеству
- •Операторы цикла Do … Loop
- •Оператор цикла While … Wend
- •2 Варианты заданий Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •3 Образец выполнения работы
- •3.1 Задание
- •3.2 Создание исходных таблиц
- •3.3 Создание формы UserForm1
- •3.4 Создание формы UserForm2
- •3.5 Создание функции пользователя
- •3.4 Создание формы UserForm3
- •Список литературы
Оператор с заданным количеством повторений.
Синтаксис оператора:
For переменная = значение1 To значение2 Step шаг
Инструкции тела цикла
Next
Сначала переменной присваивается значение1 и выполняются Инструкции тела цикла. Затем к переменной прибавляется шаг, и, если новое значение переменной попадает в интервал от значения1 до значения2, то продолжают выполняться Инструкции тела цикла.
Как только значение переменной выходит за границы указанного интервала, управление передается оператору, следующему за Next. Если шаг = 1, то его можно не указывать и даже не писать слово Step.
Для досрочного выхода из цикла используется оператор Exit For. Обычно он записывается в каком-то из условных операторов.
Пример
6. Для
значений
переменной х
из интервала
[ 0; 3 ] , изменяющейся с шагом 0.5, составить
таблицу значений функции
.
Записать результаты на Лист Excel.
Sub табулирование ( )
Dim x As Single, y As Single, i As Integer
Range("A1") . Value = "табулирование функции"
Range("A2") . Value = "X"
Range("B2") . Value = "Y"
i = 3 ' i - номер строки
For x = 0 To 3 Step 0.5
y = Sin(x) + Cos(x)
Cells(i, 1) . Value = x
Cells(i, 2) . Value = y
i = i + 1
Next
End Sub
Рисунок 1.9 – Результаты работы программы "табулирование "
Оператор цикла по множеству
Синтаксис оператора:
For элемент IN группа
Инструкции тела цикла
Next
Оператор применяется для выполнения одного и того же набора операторов для нескольких объектов. Чаще всего в качестве элемента рассматривается ячейка, а множеством является диапазон. Тогда элемент должен быть описан как объект типа Range. Досрочный выход из цикла осуществляет оператор Exit For.
Пример 7. В диапазоне А3:D25 находятся числа. Проверить есть ли среди них числа, равные 1.5. Вывести соответствующее сообщение.
Sub задача7( )
Dim r As Range
For Each r In Range ( "A3 : D25" )
If r . Value = 1.5 Then
r . Select
MsgBox "Есть число = 1.5"
Exit Sub
' Как только встречается нужное число,
' происходит досрочный выход из процедуры
End If
Next
MsgBox "Нет чисел = 1.5"
' Эта часть программы работает только, если таких значений нет
End Sub
Операторы цикла Do … Loop
Эти операторы тоже выполняют повторяющиеся вычисления, но прекращают свою работу в зависимости от логических условий. Существует два типа условий: While и Until.
Оператор цикла с условием While выполняет операторы тела цикла до тех пор, пока условие истинно. Оператор цикла с условием Until работает до тех пор, пока условие ложно. Как только условие Until станет истинным, оператор заканчивает свою работу.
Условия могут быть записаны в заголовке цикла рядом со словом Do или в последней строке цикла после слова Loop.
Для досрочного выхода из цикла используется оператор Exit Do.
Возможные варианты синтаксиса оператора:
Do while условие Do until условие
операторы или операторы
Loop Loop
или
Do Do
операторы или операторы
Loop while условие Loop until условие
Операторы цикла, у которых условие записано после слова Do, сначала проверяют условие. И если условие не выполняется в самый первый раз, то такой оператор не будет работать ни разу. Операторы, у которых условие записано после слова Loop в любом случае проработают хотя бы один раз.
Пример 8. В ячейке D2 находится число Х. Подсчитать все степени числа X, которые меньше 1000. Записать их на Лист Excel в два столбца: в одном столбце - показатель степени, в другом - ее значение
Sub задача8( )
Dim x As Single, st As Single
Dim i As Integer, k As Integer
' i - номер строки, k - показатель степени
Range("A1") . Value = "k"
Range("B1") . Value = "x^k"
Range("D1") . Value = "x"
x = Range("D2") . Value
st = x ' st - х в степени k
i = 2: k = 1
Do
Cells(i, 1) . Value = k
Cells(i, 2) . Value = st
Cells(i, 2) . NumberFormat = "0 . 0000"
i = i + 1
st = st * x
k = k + 1
Loop While st < 1000
End Sub
Рисунок 1.10 – Результаты работы программы "задача8"
