Создание программы,тестирующую знания по литературе
Для создание программ-теста по литературе создадим форму. Для этого нужно:
- Запускаем 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
End Sub
Результат:
Рис 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
End Sub
Результат:
Рис 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
End Sub
Результат:
Рис 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
End Sub
Результат:
Рис 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
Для более удобной работы с макросами и чтобы не удалять данные вручную, следует создать кнопки очистки данных,назовем их «Сброс».
- Запускаем Excel.
- В разработчике открываем VisualBasic (VBA)
- Там же в разработчике через вставку создаем кнопку (для удобства)
- Записываем в VBA программный код:
- Для листа Excel 1:
Private Sub CommandButton1_Click()
Sheets(1).Cells.ClearContents
EndSub
Результат:
Рис 30
- Для листа Excel 2:
Private Sub CommandButton2_Click()
Sheets(2).Cells.ClearContents
EndSub
Результат:
Рис 31
- Длялиста Excel 3:
Private Sub CommandButton3_Click()
Sheets(3).Cells.ClearContents
EndSub
Результат:
Рис 32
Заключение
На этой практике я повторила языки программирования HTML иCSS, вспомнила как работать с обычными таблицами в MSExcel. Также смогла закрепить полученные знания по программированию в VBA, подтянула знания и навыки по программированию одномерных массивов научилась создавать двухмерные массивы и экранные формы, а также программировать их.
В ходе практики мне было довольно просто создать web-страницу при помощи HTMLи CSS. Относительно легко было работать с экранными формами и программировать их. Тяжелее всего дались некоторые одномерные массивы, например такие как в задании 5 и 6.4, где нужно было сделать расчет в отдельных столбцах, и над этим надо будет еще поработать. Также было непросто создать электронный тест на «Мотивацию к успеху или к неудаче».
Список литературы
Основная учеба
1. Слепцова Л. Д. Программирование на VBA в MicrosoftOffice 2010 [электронный ресурс] – М.: ООО «И. Д. Вильямс», 2010. – 432с.
Дополнительные источники
2. Гарбер, Г. З. Основны программирования на VisualBasic иVBA в Excel 2007: учебное пособие / Г. З. Гарбер. – М.: СОЛОН_ПРЕСС, 2008. – 191с.: ил. – (Библиотека студента). – ISBN 978-5-91359-003-9; То же [Электронный ресурс]. – URL: http://biblioclub.ru/index/php?page=book&id=117795
3. Колисниченко Д. Н. Самоучитель РНР 5. – СПб.: Наука и Техника, 2007. – 640с.
Интернет-ресурсы:
4. Профессия «Оператор электронно-вычислительных машин». Государственный образовательный стандарт начального профессионального образования. Сайт:http://winpow.edu.ru/resource/702/51702