Чтение онлайн

на главную

Жанры

Офисное программирование
Шрифт:

If MsgBox («Начинать?», vbYesNo)= vbYes then

Операторы на действие этой кнопки

Else

Операторы на действие другой кнопки

End if

Пример 35. Создать программу таким образом, чтобы при запуске формы, вводе имени в текстовое поле и нажатии на кнопку «Вывод текста» появлялось диалоговое окно, запрашивающее разрешение вывести текст (рис. 76).

Рис. 76. Форма примера 35 в режиме конструктора

Листинг работы формы

Private Sub CommandButton1_Click

If MsgBox(«Вывести

текст?», vbYesNo) = vbYes Then

If Documents.Count = 0 Then Documents.Add Selection.Text = «Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, „+ TextBox1.Text + «, и отвечает запросам всех программистов!“

Selection.Font.Color = wdColorBlue

Selection.Font.Bold = wdToggle

Selection.Font.Italic = wdToggle

Else

Unload Me

End If

End Sub

В результате запуска приложения (рис. 77) в документе Word появится предложение:

Изучение работы с текстом в документе Word является важной составной частью умения программировать в VBA, Света, и отвечает запросам всех программистов!

Рис. 77. Форма примера 35 в рабочем режиме

Задачи на закрепление материала

Пример 36. Создать форму, имитирующую простейшую игру в орла и решку (рис. 78). Игрок выставляет флажок вместо подбрасывания монеты, а компьютер после нажатия кнопки Бросание монеты запускает случайное число, соответствующее орлу или решке. При совпадении выигрывает компьютер, при несовпадении – игрок. Все действия сопровождаются всплывающими диалоговыми окнами.

Технология выполнения

1. Создайте форму для реализации этой игры.

2. Описание процедур.

Кнопка Бросание монеты

Private Sub CommandButton1_Click

Randomize

монета = Int(2 * Rnd)

If OptionButton1.Value = True Then

If монета = 0 Then MsgBox «не везет. Займись-ка лучше изучением VBA»

If монета = 1 Then MsgBox «везунчик. Поздравляю, ты выиграл»

End If

If OptionButton2.Value = True Then

Рис. 78. Разработанная форма примера 36 в рабочем состоянии и диалоговое окно, реагирующее на результат игры

If монета = 1 Then MsgBox «не везет. Займись-ка лучше изучением VBA»

If монета = 0 Then MsgBox «везунчик. Поздравляю, ты выиграл»

End If End Sub

Кнопка Выход из игры

Private Sub CommandButton2_Click

Dim ima As String

intA = MsgBox(« Нажмите кнопку!», vbYesNoCancel +

vbExclamation + vbDefaultButton3, «VBA для чайников!»)

If MsgBox(«начинать?», vbYesNoCancel) = vbYes Then

ima = InputBox(«введите Ваше имя», «Пример окна ввода»)

If ima <> "" Then

MsgBox «Привет,» & ima, vbInformation, «Пример окна сообщения»

Else

MsgBox «невежа, ты забыл ввести свое имя» & ima, vbExclamation, «еще один пример окна сообщения» End If

Else

If MsgBox(«ты точно подумал?», vbYesNoCancel) = vbNo Then

MsgBox («ха-ха»)

Else: MsgBox « Ну наконец-таки!»

Unload Me

End If

End If End Sub

Пример 37. В разработанном игровом приложении предусмотреть создание окна «Банк», в котором будет выводиться результат очков игрока при остановке игры. Правила игры: при выигрыше игрока добавляется единица к сумме, лежащей в банке, при проигрыше – добавляется компьютеру (отнимается из суммы, лежащей в

банке).

Предусмотреть все необходимые диалоговые окна.

Пример 38. [4] Смоделировать полную игру в орел и решку. Игрок вносит в банк определенную сумму денег. Во время игры нельзя добавлять деньги в банк. Игра состоит из последовательности шагов, априори конечных. На очередном шаге игрок загадывает либо орел, либо решку. Компьютер «бросает» монету. Если «монета падает той же стороной», которую задал игрок, то банк увеличивается на единицу, в противном случае – уменьшается на единицу. Игра заканчивается либо по желанию игрока, либо когда величина банка становится нулем или больше 10 000 руб. (определенная сумма). Игрок забирает себе содержимое банка. Можно предусмотреть максимальные и минимальные суммы, которые были в банке в течение всей игры.

4

Гарнаев А. Самоучитель VBA. СПб.: БХВ-Петербург, 2004.

Примечание. Можно смоделировать бросание игральной кости, используя функцию Int(6* Rnd)+1. Правила меняются: выиграл тот, кто больше бросил.

Технология выполнения

Рассмотрим один из вариантов решения данной задачи. Усложним эту задачу тем, что каждое последующее окно вызывается соответствующим действием.

1. Пусть при запуске приложения появляется первое диалоговое окно (рис. 79). При нажатии на кнопку «Начать игру» появляются диалоговые окна, запрашивающие имя игрока и подтверждение начать игру (см. рис. 80). После чего появляется форма ввода ставок (см. рис. 81).

Private Sub CommandButton1_Click

imya = InputBox(«введите ваше имя», «Регистрация», «????»)

If MsgBox(«Начинать?», vbYesNo, «Вы не передумали?») =

vbYes Then

UserForm2.Show

Else

UserForm4.Show

End If

End Sub

Данная форма производит начальный выбор ставки и запускает главную форму примера 38.

Рис. 79. Диалоговое окно запуска игры примера 38

< image l:href="#"/>

Рис. 80. Диалоговые окна начала игры

Рис. 81. Диалоговое окно выбора ставки

Кнопка Бросок имитирует подбрасывание монеты игроком, производит расчет выигрыша и проигрыша игрока, выводя соответствующие значения в текстовые окна с сообщением счета игры (рис. 82).

Рис. 82. Главная форма примера 38, имитирующая игру в орел и решку

Кнопка Бросок

Private Sub CommandButton1_Click

TextBox1.Value = TextBox1.Value + 1

If b = Fix(Rnd * 2 + 1) Then

TextBox4.Value = TextBox4.Value + 1

TextBox5.Value = TextBox5.Value + 1

Else

TextBox4.Value = TextBox4.Value – 1

TextBox6.Value = TextBox6.Value + 1

If TextBox4.Value < 1 Then

MsgBox («Вы проиграли!!!»)

UserForm4.Show

End If

End If

If Val(TextBox2.Text) < Val(TextBox4.Text) Then

TextBox2.Value = Val(TextBox4.Text)

Else

If Val(TextBox3.Text) > Val(TextBox4.Text) Then

TextBox3.Value = Val(TextBox4.Text)

End If

End If

OptionButton1.Value = False

OptionButton2.Value = False

CommandButton1.Enabled = False

End Sub

Поделиться:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6