Программирование функций пользователя на vba
Задание:
Задать функции из предыдущего задания в VBA №1 и №2.
Выполнение:
Нажали Alt+F11
Выбрали Insert → Module
В появившемся окне написали текст программы
Перешли на лист Excel и в ячейках P2, Q2 и R2 написали названия искомых функций
На первом шаге надо выбрать y(x) в категории «Функции определенные пользователем», на втором шаге в качестве аргумента x указать ячейку F2. В результате в ячейке P3 будет записана формула =y(L3). Эту формулу протащить на весь диапазон P3:P21, аналогично с Q3 и R3.
Табуляция
Задание:
Сделать программу в VBA для функции
Выполнение:
Открыли файл Excel с графиками функций, чтобы использовать «живую» функцию
Вызвали VBA (Alt + F11)
Создали новый Modul
Записали программу
Sub tabul()
Dim x0 As Single, xk As Single, h As Single
Dim x As Single, n As Integer
x0 = -2: xk = 1.8: h = 0.2: n = 1
Cells(n, 1) = "x": Cells(n, 2) = "g"
For x = x0 To xk Step h
n = n + 1
Cells(n, 1) = x: Cells(n, 2) = g(x): Next
End Sub
С помощью Разработчик - Режим Конструктора поставили кнопку и назвали ее «Табуляция»
Вышли из режима Конструктор и запустили кнопку
Форма 1
Задание:
Задать форму в VBA
Выполнение:
Создали новый документ Excel
Создали новый модуль VBA ( Alt+F11→Insert Modul)
Следуя инструкциям, создали программу VBA
Private Sub CommandButton1_Click()
Dim s As Double
Dim s1 As Double
Dim x As Double
s1 = 1: s = 0
If CheckBox1 Then
For x = -1.8 To 1.81 Step 0.2
s = s + x * x
Next
TextBox1 = s
End If
If CheckBox2 Then
For x = -1.8 To 1.81 Step 0.2
s = s * x * x
Next
TextBox2 = s1
End If
End Sub
Создадим кнопку «кнопка»
Затем создали с помощью Разработчика кнопку «Показать форму»
Запустили программу
Форма 2
Задание:
Задать форму в VBA
Выполнение:
Создали новый документ Excel
Создали новый модуль VBA ( Alt+F11→Insert Modul)
Следуя инструкциям, создали программу VBA
Private Sub CommandButton1_Click()
Static icount As Long
Dim i As Integer
While icount < 10
icount = icount + 1
ListBox1.AddItem CStr(Cells(1 + icount, 1)) & (" " + CStr(icount))
Wend
End Sub
Private Sub CommandButton2_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
With ListBox1
.RemoveItem ListBox1.ListIndex
End With
End Sub
Private Sub CommandButton3_Click()
ListBox1.Clear
End Sub
Private Sub CommandButton4_Click()
Cells(5, 5) = ListBox1.Text
End Sub
Создадим кнопки «add»-прибавлять «remove»-перемещать «сlear» -очистить «come back»- вернуться
Вернувшись на лист Exel, в первом столбце записали 10 фамилий
Затем создали с помощью Разработчика кнопку «Показать форму»
Запустили программу
Форма 3
Задание:
Задать форму в VBA
Выполнение:
• Создали новый документ Excel
• Создали новый модуль VBA ( Alt+F11→Insert Modul)
• Следуя инструкциям, создали программу VBA
Sub CommandButton1_Click()
Dim a As Double, b As Double
Dim h As Double, x As Double
Dim i As Long, n As Integer
Dim S As Double
a = CDbl(TextBox1.Text)
b = CDbl(TextBox2.Text)
h = CDbl(TextBox3.Text)
If b < a Then Exit Sub
ListBox1.Clear: i = 0
For x = a To b Step h
f = Sin(x)
f = Format(f, "0.000")
ListBox1.AddItem x
ListBox1.List(i, 1) = f
i = i + 1
Next x
n = 4
Cells(n, 6) = "x": Cells(n, 7) = "y=f(x)": Cells(n, 8) = "сумма"
For i = 0 To 10
n = n + 1
Cells(n, 6) = ListBox1.List(i, 0)
Cells(n, 7) = CDbl(ListBox1.List(i, 1))
Next i
Cells(5, 8) = "=Sum(g5:g15)"
TextBox4 = CStr(Cells(5, 8))
Cells(5, 9) = "=average(g5:g15)"
End Sub
Sub UserForm_initialize()
With ListBox1
.ColumnCount = 2
.ColumnWidths = "40;60"
End With
End Sub
• Вернувшись на лист Excel, создали с помощью Разработчика кнопку «Показать форму»
Затем в VBA запустили программму
Ввели некоторые цифры
Теперь мы можем сосчитать Сумму
