Создание макросов на языке VBA в презентации MS PowerPoint

Разделы: Информатика, Конкурс «Презентация к уроку»


Презентации к уроку

Загрузить презентацию (2 МБ)

Загрузить презентацию (3 МБ)


Цель урока: закрепить практические навыки создания макросов на языке VBA

С помощью макросов, созданных на языке VBA, можно вставлять в презентацию программные коды для автоматизации различных задач (например, обучающие, контролирующие, игровые программы). Для этого будем использовать элементы управления и пользовательские формы.

Задание 1

Создать проект «Проверь себя», включающий задания для проверки навыков устного счёта и знания правил грамматики русского языка. Числа формируются случайные из заданного диапазона [1, n].  Программа должна подсчитывать количество решённых примеров и количество верных ответов.

Перед началом работы запустите программу Power Point и установите низкий уровень безопасности (СЕРВИС – Макрос – Безопасность).

1. Создайте титульный слайд № 1.

2. Создайте слайд № 2 – Меню, предназначенное для выбора предметной области: математика, русский язык. Настройте гиперссылки для перехода на соответствующие слайды № 3 (математика) и № 4 (русский язык) (Рисунок 1).

Рис. 1. Слайд № 2 «Меню»

3. Создайте слайд № 3 (Математика). Разместите на слайде 4 командные кнопки (CommandButton) с помощью панели Элементов управления (Вид – панели инструментов – элементы управления).

4. С помощью автофигур (панель Рисования) создайте на слайде кнопку «Выход», настройте её на завершение презентации. Для этого в контекстном меню кнопки выберите Настройка действия – По щелчку мыши – Перейти по гиперссылке – Завершить показ.

5. Установите свойства командных кнопок. В контекстном меню кнопки CommandButton1 нужно выбрать пункт Свойства и установить свойства в соответствии с таблицей. Аналогично установите свойства остальных кнопок.

Свойство

Пояснение

Значение

Caption заголовок Сложение
Font шрифт полужирный, размер 18
ForeColor Цвет шрифта произвольный
BackColor Цвет фона произвольный

Внешний вид слайда показан на Рисунке 2.

Рис. 2 Слайд № 3 «Математика»

6. Создайте программные коды каждой кнопки для вызова пользовательских форм (UserForm). Для этого в контекстном меню кнопки выбрать команду «Исходный текст» (или выполнить двойной щелчок по кнопке). Откроется окно программного кода. После заголовка процедуры нужно ввести команду для открытия соответствующей формы:

UserForm1.Show
Private Sub CommandButton1_Click() ‘Сложение 
 UserForm1.Show
End Sub
Private Sub CommandButton2_Click() ‘Вычитание 
 UserForm2.Show
End Sub
Private Sub CommandButton3_Click() ‘Умножение 
 UserForm3.Show
End Sub
Private Sub CommandButton4_Click() ‘Деление 
 UserForm4.Show
End Sub

7. Добавьте в проект 4 пользовательские формы командой Insert – UserForm.

8. Перейдите на форму UserForm1 и разместите на ней необходимые элементы управления. Вид формы показан на Рисунке 3. В таблице указаны только элементы управления, которые используются в программном коде. Остальные метки используются для поясняющих надписей на форме. Свойства элементов управления установите самостоятельно.

Элемент управления

Пояснение

Назначение

Label4 метка для вывода переменной а (1 слагаемое)
Label6 метка для вывода переменной b (2 слагаемое)
TextBox1 текстовое поле для вывода переменной S (сумма)
Label12 метка для вывода переменной k (количество примеров)
Label13 метка для вывода переменной n (количество верных ответов)
Label15 метка для вывода комментария («верно» или «неверно»)
Label2 метка для вывода переменной z (максимальная граница диапазона чисел)
CommandButton1 кнопка Далее (выдаёт следующий пример, проверяет введённый ответ)
CommandButton2 кнопка Результат (выводит результаты)
CommandButton3 кнопка Меню (для возврата назад в меню)

Рис. 3 Интерфейс формы UserForm1

9. Добавим в проект модуль (Insert – Module), в котором опишем глобальные переменные и их тип. Эти переменные будут доступны для всех пользовательских форм проекта.

a, b – переменные для хранения слагаемых, будут генерироваться с помощью функции случайного числа;
S – переменная для хранения суммы;
k –  количество примеров
n –  количество верных ответов
z – переменная для хранения максимального значения диапазона случайных чисел.

Global a, b, s, n, k As Integer, z As Integer

10. Создайте программные коды для формы UserForm1 «Сложение».

Private Sub CommandButton1_Click()  'Далее
    If Val(s) = Val(TextBox1) Then   'Проверка ответа 
        n = n + 1    'подсчёт количества верных ответов
        Label15.Caption = "Верно!"
    Else
        Label15.Caption = "Неверно!"
    End If
    k = k + 1    'подсчёт количества примеров
    Label12.Caption = ""
    Label13.Caption = ""
    TextBox1 = ""  'очистка текстового поля
    Randomize Timer
    a = Int(Rnd * z) + 1 'генерация случайных чисел
    b = Int(Rnd * z) + 1
    s = a + b   'сумма
    TextBox2 = Str(s)
    Label4.Caption = Str(a)
    Label6.Caption = Str(b)
    End Sub
Private Sub CommandButton2_Click() 'Результат
    Label12.Caption = Str(k)
    Label13.Caption = Str(n)
End Sub
Private Sub UserForm_Activate()  'Загрузка формы 
    n = 0  'очистка счётчика верных ответов
    k = 1  ‘количество верных ответов
    z = Val(InputBox("Введите максимальную границу диапазона чисел от 10 до 1000))
    Label2.Caption = Label2.Caption & Str(z)
    Randomize Timer
    a = Int(Rnd * 10)  'генерация случайных чисел для первого примера
    b = Int(Rnd * 10)
    s = a + b
    Label4.Caption = Str(a)  ‘вывод результатов
    Label6.Caption = Str(b)
End Sub
Private Sub CommandButton3_Click()  'Назад
    End
End Sub

11. Сохраните работу и проверьте работоспособность всех кнопок.

12. Аналогично создайте программные коды для форм «Вычитание» (UserForm2), «Умножение» (UserForm2), «Деление» (UserForm2).

13. Для вычитания введём проверку логического условия, чтобы из большего числа вычитать меньшее:

20: a = Int(Rnd * z) + 1 'формирование случайных чисел
b = Int(Rnd * z) + 1
If a < b Then GoTo 20 

14. Для деления введём проверку на кратность чисел, чтобы числа делились нацело:

30: a = Int(Rnd * z) + 1 'формирование случайных чисел
b = Int(Rnd * z) + 1
If (a < b) OR (a mod b<>0) Then GoTo 30

15. Создайте слайд № 4 (Русский язык). Разместите на слайде 4 командные кнопки (CommandButton) с помощью панели Элементов управления. Свойства кнопок настройте аналогично слайду № 3. В названиях кнопок укажите правила русского языка (выберите их самостоятельно). Например: «НН и Н», «ЖИ и ШИ» и т.д.

16. Добавьте в проект ещё 4 пользовательские формы, по одной на каждое правило.

17. Перейдите на форму UserForm5 и разместите на ней необходимые элементы управления. Вид формы показан на Рисунке 4. В таблице указаны только элементы управления, которые используются в программном коде.

Элемент управления

Пояснение

Назначение

Label6 метка для вывода надписи «Количество верных ответов»
TextBox1-8 текстовые поля для ввода пропущенных букв
Label15 метка для вывода надписи «Ошибки выделены красным цветом»
Label14 метка для вывода переменной n (количество верных ответов)
CommandButton1 кнопка Проверка (проверяет ответы и выдаёт результат)
CommandButton3 кнопка Назад (для возврата назад в меню)
CommandButton2 кнопка Далее (переход к следующей форме с заданиями)

Рис. 4 Интерфейс формы UserForm5

18. Создайте программный код для кнопки «Проверка».

Private Sub CommandButton1_Click() 'Проверка
    k = 0        ‘количество верных ответов
    If TextBox1 = "жи" Then
    k = k + 1   ‘подсчёт количества верных ответов
    TextBox1.ForeColor = vbGreen  ‘выделение верного ответа зелёным цветом
    Else
    TextBox1.ForeColor = vbRed   ‘выделение неверного ответа красным цветом
    End If
    If TextBox2 = "жи" Then
    k = k + 1
    TextBox2.ForeColor = vbGreen
    Else
    TextBox2.ForeColor = vbRed
    End If
    If TextBox3 = "ши" Then
    k = k + 1
    TextBox3.ForeColor = vbGreen
    Else
    TextBox3.ForeColor = vbRed
    End If
    If TextBox4 = "жи" Then
    k = k + 1
    TextBox4.ForeColor = vbGreen
    Else
    TextBox4.ForeColor = vbRed
    End If
    If TextBox5 = "жи" Then
    k = k + 1
    TextBox5.ForeColor = vbGreen
    Else
    TextBox5.ForeColor = vbRed
    End If
    If TextBox6 = "жи" Then
    k = k + 1
    TextBox6.ForeColor = vbGreen
    Else
    TextBox6.ForeColor = vbRed
    End If
    If TextBox7 = "и" Then
    k = k + 1
    TextBox7.ForeColor = vbGreen
    Else
    TextBox7.ForeColor = vbRed
    End If
    If TextBox8 = "и" Then
    k = k + 1
    TextBox8.ForeColor = vbGreen
    Else
    TextBox8.ForeColor = vbRed
    End If
    Label14.Caption = Str(k)
    Label15.Caption = "Ошибки выделены красным цветом"
End Sub
Private Sub CommandButton2_Click()  'Далее
    UserForm6.Show  ‘переход к форме следующего задания
End Sub
Private Sub UserForm_Activate()  ‘Загрузка формы
    k = 0
End Sub 

19. Аналогично создайте программные коды для остальных форм и сохраните проект.

Задания для самостоятельной работы

  1. Придумайте задания для проверки знаний по информатике и добавьте их в проект.
  2. Подготовьте ребусы на любые темы и добавьте их в проект. Создайте соответствующие слайды «Информатика» и «Ребусы», пользовательские формы и программные коды.