
- •Федеральное государственное бюджетное образовательное учреждение
- •Оглавление
- •§ 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. Графика
- •Ксения Владимировна Григорьева Информатика Введение в объектно-ориентированное программирование
4. Табулирование функций в объектах ListBox
При решении задач табулирования функций в объектах ListBox создаваемые объекты ListBox можно размещать, как на специально созданных объектах UserForm, так и на листах Excel, используя при этом для вызова и табуляции кнопки (объекты CommandButton).
Создание пользовательской формы c объектом ListBox организуется следующим образом:
Войти в VBA – Alt-F11;
Выбрать Insert (вставка);
Выбрать UserForm.
Затем на появившуюся “платформу” объекта UserForm с панели Toolbox, последовательно переместить:
один объект ListBox;
три объекта Label;
три объекта TextBox;
три объекта OptionButton;
два объекта CommandButton,
расположив их, как показано на рис. 1.10.
Рис. 1.10.
Далее войти в VBA (Alt-F11), выбрать объект UserForm.
Затем, выбрав, объект CommandButton1, написать соответствующую программу, обеспечивающую табуляцию функций в объекте ListBox1.
2.2 Программа Табулирование функций в объекте ListBox
Private Sub CommandButton1_Click()
Dim i As Integer
Dim x As Double
Dim XN As Double
Dim XK As Double
Dim DX As Double
Dim S() As String
If Not IsNumeric(TextBox1) Or Not IsNumeric(TextBox2) Or Not IsNumeric(TextBox3) Then
MsgBox "неверные данные"
Exit Sub
End If
XN = CDbl(TextBox1)
XK = CDbl(TextBox2)
DX = CDbl(TextBox3)
If OptionButton1 = True Then
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 3) As String
i = 0
S(i, 1) = "N": S(i, 2) = "x": S(i, 3) = "y"
i = i + 1
x = XN
Do While x <= XK
y = (2 + (Sin(x)) ^ 2) / (1 + x ^ 2) ' функция 1 семестра
S(i, 1) = i: S(i, 2) = Format(x, "0.0"): S(i, 3) = Format(y, "0.0")
x = x + DX: i = i + 1
Loop
End If
If OptionButton2 = True Then
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 4) As String
i = 0
S(i, 1) = "N": S(i, 2) = "x": S(i, 3) = "g1": S(i, 4) = "g2"
i = i + 1
x = XN
Do While x <= XK
y = g(x) ' функция 1 семестра
S(i, 1) = i: S(i, 2) = Format(x, "0.0")
If x <= 0 Then S(i, 3) = Format(y, "0.0000") Else S(i, 4) = Format(y, "0.0000")
x = x + DX: i = i + 1
Loop
End If
If OptionButton3 = True Then
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 5) As String
i = 0
S(i, 1) = "N": S(i, 2) = "x": S(i, 3) = "z1": S(i, 4) = "z2": S(i, 5) = "z3"
i = i + 1
x = XN
Do While x <= XK
y = z(x) ' функция 1 семестра
S(i, 1) = i: S(i, 2) = Format(x, "0.0")
If x < 0 Then S(i, 3) = Format(y, "0.0000")
If (x >= 0) And (x <= 1) Then S(i, 4) = Format(y, "0.0000")
If x > 1 Then S(i, 5) = Format(y, "0.0000")
x = x + DX: i = i + 1
Loop
End If
With ListBox1
.ColumnCount = 5
.List = S
End With
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Function g(x)
If x <= 0 Then g = (3 * x ^ 2) / (1 + x ^ 2) Else g = Sqr(1 + 2 * x / (1 + x ^ 2))
End Function
Function z(x)
If x < 0 Then z = 3 * x + Sqr(1 + x ^ 2)
If (x >= 0) And (x <= 1) Then z = 2 * Cos(x) * Exp(-2 * x)
If x > 1 Then z = 2 * Sin(3 * x)
End Function
Некоторые комментарии к программе:
– В модуле Private Sub CommandButton1_Click(), программно поддерживающем объект CommandButton1, используется функция IsNumeric(TextBox1), проверяющая являются ли данные, помещенные в объекте TextBox1 или TextBox2 цифровыми;
– В программе также используется функция CDbl(TextBox), обеспечивающая преобразование данных объектов TextBox1 и TextBox2 в цифровые;
– В модуле используется динамическое объявление массива
Dim S() As String,
с последующим уточнением мерности массива;
– Если включен объект OptionButton1, то табулируется функция y=f(x), вычисленные значения которой и отображаются в объекте ListBox1, рис. 10.10, предварительно уточняется мерность массива S, оператором
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 3) As String,
который можно размещать в любом месте программы. Диапазон изменения индексов по первому измерению от 0 до величины вычисленного результата арифметического выражения
Round(Abs(XK - XN) / DX) + 1 – (+ 1, для того, чтобы увеличить количество элементов массива с учетом “шапки таблицы”), по второму измерению – от 1 до 3;
– Если включен объект OptionButton2, то табулируется функция g=f(x), вычисленные значения которой и отображаются в объекте ListBox1, рис. 10.11, предварительно уточняется мерность массива S, оператором
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 3) As String,
который можно размещать в любом месте программы. Диапазон изменения индексов по первому измерению от 0 до величины вычисленного результата арифметического выражения
Round(Abs(XK - XN) / DX) + 1 – (+ 1, для того, чтобы увеличить количество элементов массива с учетом “шапки таблицы”), по второму измерению – от 1 до 4;
Рис. 1.11
– Если включен объект OptionButton3, то табулируется функция z=f(x), вычисленные значения которой и отображаются в объекте ListBox1, рис. 1.12, предварительно уточняется мерность массива S, оператором
ReDim S(Round(Abs(XK - XN) / DX) + 1, 1 To 3) As String,
который можно размещать в любом месте программы. Диапазон изменения индексов по первому измерению от 0 до величины вычисленного результата арифметического выражения
Round(Abs(XK - XN) / DX) + 1 – (+ 1, для того, чтобы увеличить количество элементов массива с учетом “шапки таблицы”), по второму измерению – от 1 до 5;
Рис. 1.12.
– Формулы функций g=f(x) и z=f(x) оформлены в виде модулей пользовательских функций Function g(x) и Function z(x);
– Объекту ListBox1 сообщается свойство .ColumnCount, в соответствии с которым в объекте ListBox1 устанавливается значение числа колонок = 5, максимальное из возможных вариантов количества столбцов при табулировании функций y=f(x), g=f(x) и z=f(x);