Создание программы,тестирующую знания по литературе.
Для создание программ-теста по литературе создадим форму. Для этого нужно:
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
- Кодкнопкидлявызоваформы(Рис. 9)
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Option Explicit
Private Sub CommandButton1_Click()
‘ПушкинА. С.
If Push.Value = True Then
If Gr.Value = True AndTr.Value = True And Lena.Value = True Then
Label2.BackColor = RGB(255, 221, 191)
Label2 = "Молодец! Пушкин гордился бы твоими познаниями!"
Else
Label2.BackColor = RGB(255, 221, 191)
Label2 = "Где-тоошибка."
End If
End If
‘ГогольН. В.
If Gog.Value = True Then
If Man.Value = True AndChich.Value = True And Sob.Value = True Then
Label2.BackColor = RGB(255, 221, 191)
Label2 = "Молодец! Гоголь гордился бы твоими познаниями "
Else
Label2.BackColor = RGB(255, 221, 191)
Label2 = "Где-тоошибка."
End If
End If
‘ТолстойЛ. Н.
If Tol.Value = True Then
If Bez.Value = True AndTush.Value = True And Vr.Value = True And Dol.Value = True Then
Label2.BackColor = RGB(255, 221, 191)
Label2 = " Молодец! Толстой гордился бы твоими познаниями!"
Else
Label2.BackColor = RGB(255, 221, 191)
Label2 = "Где-тоошибка."
End If
End If
End Sub (Рис. 11, Рис. 12, Рис. 13)
- Код для кнопки очистки формы (Рис. 13)
Private Sub CommandButton2_Click()
Push = 0
Gog = 0
Tol = 0
Gr = 0
Man = 0
Bez = 0
Tush = 0
Chich = 0
Sob = 0
Vr = 0
Dol = 0
Tr = 0
Lena = 0
Label2.BackColor = RGB(255, 255, 196)
Label2 = ""
UserForm1.BackColor = RGB(255, 255, 196)
Frame1.BackColor = RGB(255, 255, 196)
Push.BackColor = RGB(255, 255, 196)
Gog.BackColor = RGB(255, 255, 196)
Tol.BackColor = RGB(255, 255, 196)
Gr.BackColor = RGB(255, 255, 196)
Man.BackColor = RGB(255, 255, 196)
Bez.BackColor = RGB(255, 255, 196)
Tush.BackColor = RGB(255, 255, 196)
Chich.BackColor = RGB(255, 255, 196)
Sob.BackColor = RGB(255, 255, 196)
Vr.BackColor = RGB(255, 255, 196)
Dol.BackColor = RGB(255, 255, 196)
Tr.BackColor = RGB(255, 255, 196)
Lena.BackColor = RGB(255, 255, 196)
Label1.BackColor = RGB(255, 221, 191)
Label1.ForeColor = RGB(0, 0, 0)
Label1.Font.Italic = False
CommandButton1.BackColor = RGB(255, 183, 183)
CommandButton1.ForeColor = RGB(0, 0, 0)
CommandButton2.BackColor = RGB(255, 183, 183)
CommandButton2.ForeColor = RGB(0, 0, 0)
CommandButton3.BackColor = RGB(255, 183, 183)
CommandButton3.ForeColor = RGB(0, 0, 0)
EndSub
- Коддлякнопкизакрытияформы
Private Sub CommandButton3_Click()
Push = 0
Gog = 0
Tol = 0
Gr = 0
Man = 0
Bez = 0
Tush = 0
Chich = 0
Sob = 0
Vr = 0
Dol = 0
Tr = 0
Lena = 0
Label2.BackColor = RGB(255, 255, 196)
Label2 = ""
UserForm1.BackColor = RGB(255, 255, 196)
Frame1.BackColor = RGB(255, 255, 196)
Push.BackColor = RGB(255, 255, 196)
Gog.BackColor = RGB(255, 255, 196)
Tol.BackColor = RGB(255, 255, 196)
Gr.BackColor = RGB(255, 255, 196)
Man.BackColor = RGB(255, 255, 196)
Bez.BackColor = RGB(255, 255, 196)
Tush.BackColor = RGB(255, 255, 196)
Chich.BackColor = RGB(255, 255, 196)
Sob.BackColor = RGB(255, 255, 196)
Vr.BackColor = RGB(255, 255, 196)
Dol.BackColor = RGB(255, 255, 196)
Tr.BackColor = RGB(255, 255, 196)
Lena.BackColor = RGB(255, 255, 196)
Label1.BackColor = RGB(255, 221, 191)
Label1.ForeColor = RGB(0, 0, 0)
Label1.Font.Italic = False
CommandButton1.BackColor = RGB(255, 183, 183)
CommandButton1.ForeColor = RGB(0, 0, 0)
CommandButton2.BackColor = RGB(255, 183, 183)
CommandButton2.ForeColor = RGB(0, 0, 0)
CommandButton3.BackColor = RGB(255, 183, 183)
CommandButton3.ForeColor = RGB(0, 0, 0)
UserForm1.Hide
End Sub
Private Sub Label2_Click()
Label2.BackColor = RGB(88, 39, 88)
Label2.ForeColor = RGB(255, 255, 128)
Label2.Font.Italic = True
EndSub
- Код для изменения цветов формы(Рис. 14, Рис. 15,Рис. 16)
PrivateSubUserForm_Click()
UserForm1.BackColor = RGB(187, 252, 255)
Frame1.BackColor = RGB(187, 252, 255)
Push.BackColor = RGB(187, 252, 255)
Gog.BackColor = RGB(187, 252, 255)
Tol.BackColor = RGB(187, 252, 255)
Gr.BackColor = RGB(187, 252, 255)
Man.BackColor = RGB(187, 252, 255)
Bez.BackColor = RGB(187, 252, 255)
Tush.BackColor = RGB(187, 252, 255)
Chich.BackColor = RGB(187, 252, 255)
Sob.BackColor = RGB(187, 252, 255)
Vr.BackColor = RGB(187, 252, 255)
Dol.BackColor = RGB(187, 252, 255)
Tr.BackColor = RGB(187, 252, 255)
Lena.BackColor = RGB(187, 252, 255)
Label2.BackColor = RGB(187, 252, 255)
Label2.ForeColor = RGB(0, 0, 0)
Label2.Font.Italic = False
Label1.BackColor = RGB(88, 39, 88)
Label1.ForeColor = RGB(255, 255, 128)
Label1.Font.Italic = True
CommandButton1.BackColor = RGB(88, 39, 88)
CommandButton1.ForeColor = RGB(255, 255, 128)
CommandButton2.BackColor = RGB(88, 39, 88)
CommandButton2.ForeColor = RGB(255, 255, 128)
CommandButton3.BackColor = RGB(88, 39, 88)
CommandButton3.ForeColor = RGB(255, 255, 128)
End Sub
Результат:
Рис. 10
Рис. 11
Рис. 12
Рис. 13
Рис. 14
Рис.15
Рис. 16
Индивидуальное задание по созданию одномерного и двухмерного массива.
Задание №1:
Программой создать одномерный массив из n целых случайных чисел в диапазоне -45 до 73 и записать на Лист1Excel. Значение n задается в сообщении. Создать новые массивы:
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Option Explicit
Sub z1()
Dim A() As Integer
Dim j, i, n As Integer
n = InputBox("Введите значение числаn:", "Значениеn")
ReDimA(n)
Randomize
For j = 0 To n
A(j) = Rnd() * (n - (-n) + 1) - n
Sheets(1).Cells(j + 1, 1) = A(j)
Next j
EndSub
Результат:
Рис 20
Задание №1.1:
Найти положительные элементы. Полученный массив и номера элементов записать на Лист2Excel и CSV–файл.
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Sub z1_1()
Dim A(10) As Integer
Dim n, j As Integer
Open "\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\ind_z.csv" For Output As #1.1
For j = 0 To 10
A(n) = Sheets(1).Cells(j + 1, 1)
If A(n) > 0 Then
Print #1.1, A(n)
Sheets(2).Cells(j + 1, 1) = A(n)
Else: Sheets(2).Cells(j + 1, 1) = 0
End If
Next j
Close #1.1
EndSub
Результат:
Рис 21
Рис 22
Задание №1.2:
Найти отрицательные элементы. Найти сумму отрицательных элементов. Полученный массив и сумму записать на Лист3 Excel и в текстовый файл.
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Sub z1_2()
Dim A(10) As Integer
Dim b, n, j As Integer
b = 0
Open "\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\ind_z.txt" For Output As #1.2
For j = 0 To 10
A(n) = Sheets(1).Cells(j + 1, 1)
If A(n) < 0 Then
b = b + A(n)
Print #1.2, b
Sheets(3).Cells(j + 1, 1) = b
Else: Sheets(3).Cells(j + 1, 1) = 0
End If
Next j
Close #1.2
EndSub
Результат:
Рис 23Рис 24
Задание №2:
Программой создать двухмерный массив из n х n целых чисел в диапазоне -25 до 53 и записать на Лист1Excel. Значение n задается в сообщении.
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства) (Рис 25, Рис 26, Рис 28)
- Записываем в VBA программный код:
Option Explicit
Sub z2()
Dim A() As Integer
Dim i, j, n As Integer
n = InputBox("Введите значение числаn:", "Значениеn")
ReDimA(n)
Randomize
For i = 1 To n
For j = 3 To n
A(j) = Rnd() * (n - (-n) + 1) - n
Sheets(1).Cells(i, j) = A(j)
Next j
Next i
EndSub
Результат:
Рис 25
Создать одномерный массив двумя способами:
Задание №2.1:
Найти сумму элементов из четных столбцов. Полученный массив записать на Лист2Excel и CSV -файл.
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства) (Рис 26, Рис 28)
- Записываем в VBA программный код:
Sub z2_1()
Dim A(5) As Integer
Dim b, i, j, n As Integer
b = 0
Open"\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\ind_z2.csv" For Output As #2.1
For i = 1 To 5
For j = 3 To 5
A(n) = Sheets(1).Cells(i, j)
If A(n) Mod 2 = 0 Then
b = b + A(n) * 2
Print #2.1, b
Sheets(2).Cells(i, j) = b
Else: Sheets(2).Cells(i, j) = 0
End If
Next j
Next i
Close #2.1
EndSub
Результат:
Рис 26
Рис 27
Задание №2.2:
Найти сумму элементов из нечетных столбцов. Полученный массив записать на Лист3 Excel и HTML файл.
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
Sub z2_2()
Dim A(5) As Integer
Dim b, i, j, n As Integer
b = 0
Open ""\\Fileserver\студенты\И-16-1\Клочихина_АМ\Учебная_практика-03.01\ind_z2.html" For Output As #2.2
For i = 1 To 5
For j = 3 To 5
A(n) = Sheets(1).Cells(i, j)
If A(n) Mod 2 = 1 Then
b = b + A(n) * 2
Print #2.1, b; ";"
Sheets(3).Cells(i, j) = b
Else: Sheets(3).Cells(i, j) = 0
End If
Next j
Next i
Close #2.2
EndSub
Результат:
Рис 28
Рис 29