Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Моя курсовая работа.docx
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
755 Кб
Скачать
☆

Программирование функций пользователя на 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 запустили программму

  • Ввели некоторые цифры

  • Теперь мы можем сосчитать Сумму