Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Оценка 4.8
Лабораторные работы
doc
информатика
9 кл—10 кл
28.01.2017
Кроссворд мы угадываем не по порядку - произвольно, поэтому могут быть такие случаи:
1) Слово «архимед» угадано – тогда его красим
2) Слово «архимед» не угадано – тогда, если слово герц и тесла до этого было угадано, то чистим все, кроме боксов 4 и 10 (там буквы от угаданных слов)
3) Слово «архимед» не угадано – тогда, если только слово тесла было до этого угадано, то чистим все, кроме бокса 10
4) Слово «архимед» не угадано – тогда, если только слово герц было до этого угадано, то чистим все, кроме бокса 4
5) Иначе ( ничего не угадано), то чистим все боксы 1,4,6,7,8,10,14
В этом случае код становится больше (больше вариантов)
Создание итерактивных кроссвордов в MS PPT (+VBA).doc
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Приступаем к написанию кода для кнопки ПРОВЕРИТЬ Начнем со слова «герц»
г
е
т
а
р ц
х
и
м
е
д
с
2
3
л
а
9
5
1
4
6
7
8
10 11 12 13
14
Оно занимает боксы 2, 3, 4, 5 и пересекается со словом «архимед»
Делаем двойной щелчок по кнопке ПРОВЕРИТЬ
'2 по горизонтали «герц»
If (TextBox2.Text = "г") And (TextBox3.Text = "е") And (TextBox4.Text = "р") And
(TextBox5.Text = "ц") Then
TextBox2.BackColor = RGB(0, 255, 255)
TextBox3.BackColor = RGB(0, 255, 255)
TextBox4.BackColor = RGB(0, 255, 255)
TextBox5.BackColor = RGB(0, 255, 255)
Else
If (TextBox1.Text = "а") Then
TextBox2.Text = ""
TextBox3.Text = ""
TextBox5.Text = ""
Else
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
End If
End If
Разъяснение кода:
If (TextBox2.Text = "г") And (TextBox3.Text = "е") And (TextBox4.Text = "р") And
(TextBox5.Text = "ц") Then
TextBox2.BackColor = RGB(0, 255, 255)
TextBox3.BackColor = RGB(0, 255, 255)
TextBox4.BackColor = RGB(0, 255, 255)
TextBox5.BackColor = RGB(0, 255, 255)
Это проверка всех боксов:
Если бокс2 содержит текст «г» И бокс3 – «е» И бокс4 – «р» И бокс5 – «ц» (т.е слово
угадано), то делаем цвет фона всех боксов голубым (TextBox2.BackColor = RGB(0, 255,
255)) ... Else
If (TextBox1.Text = "а") Then
TextBox2.Text = ""
TextBox3.Text = ""
TextBox5.Text = ""
Иначе, если слово «герц» не угадано и в боксе1 буква «а» (т.е слово «архимед» до этого
угадано), то очищаем боксы 2,3,5, а бокс 4 не трогаем – в нем буква «р» от слова
«архимед»
Else
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
Иначе (слово «герц» не угадано и слово «архимед» тоже не угадано), то чистим все боксы
2,3,4,5.
Здесь можно подумать, что это излишнее усложнение, но без рассмотрения всех этих
вариантов не будут отрабатываться всевозможные возникающие ситуации и все будет
стираться испытал при разработке алгоритма
Следующее слово «тесла», которое содержит тоже одно пересечение с другим словом
г
е
т
а
р
х
и
м
е
д
ц
с
л а
2
3
9
5
1
4
6
7
8
10 11 12 13
14
'3 по горизонтали «тесла»
If (TextBox9.Text = "т") And (TextBox10.Text = "е") And (TextBox11.Text = "с") And
(TextBox12.Text = "л") And (TextBox13.Text = "а") Then
TextBox9.BackColor = RGB(0, 255, 255)
TextBox10.BackColor = RGB(0, 255, 255)
TextBox11.BackColor = RGB(0, 255, 255)
TextBox12.BackColor = RGB(0, 255, 255)
TextBox13.BackColor = RGB(0, 255, 255)
Else
If (TextBox8.Text = "м") Then
TextBox9.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
Else
TextBox9.Text = ""
TextBox10.Text = ""
TextBox11.Text = ""
TextBox12.Text = ""
TextBox13.Text = ""
End If
End If
И, наконец слово «архимед»
Оно содержит два пересечения со словами герц и тесла г
е
т
а
р ц
х
и
м
е
д
с
л
а
2
3
9
5
1
4
6
7
8
10 11 12 13
14
Кроссворд мы угадываем не по порядку произвольно, поэтому могут быть такие случаи:
1) Слово «архимед» угадано – тогда его красим
2) Слово «архимед» не угадано – тогда, если слово герц и тесла до этого было угадано,
то чистим все, кроме боксов 4 и 10 (там буквы от угаданных слов)
3) Слово «архимед» не угадано – тогда, если только слово тесла было до этого
угадано, то чистим все, кроме бокса 10
4) Слово «архимед» не угадано – тогда, если только слово герц было до этого угадано,
то чистим все, кроме бокса 4
5) Иначе ( ничего не угадано), то чистим все боксы 1,4,6,7,8,10,14
В этом случае код становится больше (больше вариантов)
'1 по вертикали архимед
If (TextBox1.Text = "а") And (TextBox4.Text = "р") And (TextBox6.Text = "х") And
(TextBox7.Text = "и") And (TextBox8.Text = "м") And (TextBox10.Text = "е") And
(TextBox14.Text = "д") Then
TextBox1.BackColor = RGB(0, 255, 255)
TextBox4.BackColor = RGB(0, 255, 255)
TextBox6.BackColor = RGB(0, 255, 255)
TextBox7.BackColor = RGB(0, 255, 255)
TextBox8.BackColor = RGB(0, 255, 255)
TextBox10.BackColor = RGB(0, 255, 255)
TextBox14.BackColor = RGB(0, 255, 255)
Else
If (TextBox5.Text = "ц") And (TextBox11.Text = "с") Then
TextBox1.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox14.Text = ""
Else
If (TextBox5.Text = "ц") Then
TextBox1.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox10.Text = ""
TextBox14.Text = ""
Else
If (TextBox11.Text = "с") Then
TextBox1.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
TextBox7.Text = "" TextBox8.Text = ""
TextBox14.Text = ""
Else
TextBox1.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox10.Text = ""
TextBox14.Text = ""
End If
End If
End If
End If
Разъяснение кода:
If (TextBox1.Text = "а") And (TextBox4.Text = "р") And (TextBox6.Text = "х") And
(TextBox7.Text = "и") And (TextBox8.Text = "м") And (TextBox10.Text = "е") And
(TextBox14.Text = "д") Then
TextBox1.BackColor = RGB(0, 255, 255)
TextBox4.BackColor = RGB(0, 255, 255)
TextBox6.BackColor = RGB(0, 255, 255)
TextBox7.BackColor = RGB(0, 255, 255)
TextBox8.BackColor = RGB(0, 255, 255)
TextBox10.BackColor = RGB(0, 255, 255)
TextBox14.BackColor = RGB(0, 255, 255)
Если слово архимед угадано, то меняем цвет фона боксов
Else
If (TextBox5.Text = "ц") And (TextBox11.Text = "с") Then
TextBox1.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox14.Text = ""
Иначе (слово архимед не угадано, но до этого угаданы слова герц и тесла) – то чистим
боксы 1,6,7,8,14, а 4 и 10 не трогаем – там буквы от угаданных слов герц и тесла
Else
If (TextBox5.Text = "ц") Then
TextBox1.Text = "" TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox10.Text = ""
TextBox14.Text = ""
Иначе (слово архимед не угадано, но до этого угадано слово герц ) – то чистим боксы
1,6,7,8,10,14, а 4 не трогаем – там буквы от угаданного слова герц
If (TextBox11.Text = "с") Then
TextBox1.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox14.Text = ""
Иначе (слово архимед не угадано, но до этого угадано слово тесла ) – то чистим боксы
1,4,6,7,8,,14, а 10 не трогаем – там буквы от угаданного слова тесла
TextBox1.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
TextBox10.Text = ""
TextBox14.Text = ""
End If
End If
End If
End If
Иначе (слово архимед не угадано, слова герц и тесла тоже не угаданы) – чистим все боксы
Заметьте:
Если слово пересекается с одним словом – то надо описывать 2 варианта кода (21=2)
Если с двумя – 4 варианта (22=4)
Если в тремя – 8 вариантов (23=8)
Если в четырьмя – 16 вариантов (24=16)
и так далее
В своих кроссвордах я стараюсь не делать пересечения более, чем с тремя словами – будет
уйма кода (пусть и case – технологии) и замедление работы программы – оно и так уже
присутствует описание кода для кнопки ОЧИСТИТЬ
При нажатии на эту кнопку все боксы должны перекраситься в исходный цвет (белый
RGB(255,255,255) и содержимое боксов очиститься (TextBox1.Text = "")
Делаем двойной щелчок по кнопке ОЧИСТИТЬ и пишем код:
Private Sub CommandButton2_Click()
TextBox1.BackColor = RGB(255, 255, 255)
TextBox1.Text = ""
TextBox2.BackColor = RGB(255, 255, 255)
TextBox2.Text = ""
TextBox3.BackColor = RGB(255, 255, 255)
TextBox3.Text = ""
TextBox4.BackColor = RGB(255, 255, 255)
TextBox4.Text = ""
TextBox5.BackColor = RGB(255, 255, 255)
TextBox5.Text = ""
TextBox6.BackColor = RGB(255, 255, 255)
TextBox6.Text = ""
TextBox7.BackColor = RGB(255, 255, 255)
TextBox7.Text = ""
TextBox8.BackColor = RGB(255, 255, 255)
TextBox8.Text = ""
TextBox9.BackColor = RGB(255, 255, 255)
TextBox9.Text = ""
TextBox10.BackColor = RGB(255, 255, 255)
TextBox10.Text = ""
TextBox11.BackColor = RGB(255, 255, 255)
TextBox11.Text = ""
TextBox12.BackColor = RGB(255, 255, 255)
TextBox12.Text = ""
TextBox13.BackColor = RGB(255, 255, 255)
TextBox13.Text = ""
TextBox14.BackColor = RGB(255, 255, 255)
TextBox14.Text = ""
End Sub
Наконец напишем код для кнопки ВЫХОД:
Private Sub CommandButton3_Click()
Application.Quit
End Sub
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Создание интерактивных кроссвордов в MS Power Point с использованием VBA
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.