5
(2)

(Если картинка для вас слишком маленькая и на ней ничего не разобрать кликните по ней)


Для того чтобы сделать тест в MS PowerPoint нам необходимо для начала набрать вопросы теста таким образом что-бы все вопросы были на отдельных слайдах (это для простоты написания кода проверки теста). Затем если не подключена вкладка «Разработчик» ее нужно включить. Для этого необходимо перейти по следующему пути «Файл/Параметры/Настройка ленты» и в правом окошке поставить галочку напротив «Разработчик», при необходимости это можно сделать в любом приложении пакета MS Office 2010.

vba powerpoint

И появится такая вкладка на ней будут дополнительные элементы управления, которые управляются программно через макросы, необходимые для создания теста.

vba powerpoint
Панель управления разработчик

Немного по элементам управления:

vba powerpoint
Элементы управления VBA

Тут уже сами выбирайте необходимые для вас элементы управления, но мы рассмотрим следующие элементы управления и взаимодействие с ними: Подпись (Label), Текстовое поле (TextBox), Кнопка (CommandButton), Флажок (CheckBox), Переключатель (OptionButton).

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

Для удобства лучше кнопки делать одинаково размера и располагать в одном месте на всех слайдах. Делать нужно так чтобы элементы управления не перекрывали друг друга потому что может произойти неправильная отработка элемента, что может привести к неправильному ответу. Слишком маленькими их делать тоже не стоит потому что будет сложно выбрать нужный ответ.

Наш тест будем делать таким образом чтобы наши вопросы перемешивались поэтому делать нумерацию ответов ненужно. Приблизительный вид слайда с вариантами ответов приведен ниже на рисунке.

тест в презентации powerpoint
Пример слайда теста

На этом слайде были использованы элементы управления такие как переключатель (OptionButton) и кнопка (CommandButton). Сам вопрос был написан на слайде в поле «Заголовок». Ответы на вопросы были написаны в элементе управления переключатель (OptionButton) по умолчанию шрифт и размер шрифта отличается от необходимого нам, для того чтобы его сделать для нашей презентации необходимо выделить нужный элемент управления щелкнуть по нему правой кнопкой мыши (ПКМ) и выбрать пункт свойства. Выйдет окно свойств элемента управления (Properties) в нем отображены основные параметры настройки элемента управления.

vba в powerpoint

(Name) отвечает за имя и порядковый номер объекта (номер при наличии) они используются при обращении к этому элементу управления из программы;

BackStyle отвечает за фон элемента управления может принимать несколько значений 1-fmBackStyleOpaque (устанавливает цвет фона элемента указанного в пункте BackColor) и 0-fmBackStyleTransparent (устанавливает прозрачный фон у элемента управления);

Caption отвечает за подпись объекта (текст который будет отображаться на слайде);

Enabled отвечает за активность элемента (может принимать только два значения True и False, True элемент активен и его можно использовать, False элемент не активен и становится серым при этом при нажатии на него ничего не происходит);

Font отвечает за шрифт написания текста в элементе управления, при нажатии на него в конце выбора параметров появляется кнопочка с многоточием при нажатии на нее появляется окошко, в котором можно выбрать шрифт, его стиль написания и размер;

ForeColor отвечает за цвет шрифта также предоставляет выбрать цвет из имеющейся палитры или любой из системных цветов;

Height отвечает за высоту объекта;

Left отвечает за положение элемента относительно левого края презентации (по оси X);

Picture отвечает за картинку которая будет находиться в элементе управления (по умолчанию ее нет);

Top отвечает за положение элемента относительно верхнего края слайда (по оси Y)

Value отвечает за включение и выключение элемента (т.е. стоит точка «галочка» в элементе или нет) может принимать значения True и False;

Visible отвечает за видимость элемента на слайде презентации также может иметь только два положения True и False;

Width отвечает за ширину элемента управления.

Использовать несколько видов проверки правильности ответов возможна, но при этом усложняется сам код проверки, который обычно вписывается в действия по нажатию на кнопку (CommandButton) «Далее», «Следующий вопрос» или как вы там ее назовете. Поэтому для простоты написания будем придерживаться правила один вопрос – один слайд и все элементы управления для проверки правильности ответов однотипные т.е. используем только переключатели или только флажки и т.п.

Перед тем как писать сам код проверок и подведения итогов давайте рассмотрим окно Visual Basic for Application (VBA) перейти в него можно двумя способами это на панели разработчика нажать на кнопку Visual Basic или сделать двойное нажатие на элемент управления.

vba в powerpoint

Объявление общих переменных и подпрограмм для всей презентации

Теперь перейдем к написанию самого макроса для теста то есть программ к нашим кнопкам рассмотрим несколько вариантов это использование переключателей и флажков.

В первую очередь нам необходимо объявить переменные которые будут считать сколько всего правильных ответов сделал тестируемый это будет переменная Prav и сколько всего было задано вопросов для того чтобы не заморачиваться их количеством это переменная Vsego. Ну и для того чтобы у нас ответы менялись местами будем использовать неопределенный массив заданный переменной а(). Эти переменные будут использоваться во всей презентации поэтому мы их добавим в так называемый модуль. Для этого в редакторе VBA щелкнем ПКМ по VBAProject, расположенному с левом окошке, в появившемся контекстном меню выберем Insert/Module. Появится окно модуля в нем напишем следующий код

Public a() As Integer, Prav As Integer, Vsego As Integer

Из этого можно понять что для всей презентации (Public) объявляются переменные: a(), Prav и Vsego при этом все эти переменные могут принимать только целочисленные значения (Integer).

И т.к. мы собрались менять местами наши ответы то тут же напишем следующий код, который будет определять порядок наших ответов.

Public Sub Rend_vop(i As Integer) ‘подпрограмма для случайного расположения вопросов при этом i это число ответов будет задаваться при использовании этой подпрограммы в коде проверки наших вопросов
Dim q As Integer, j As Integer ‘объявляем переменные на уровне подпрограммы
Randomize ‘ запускаем генератор случайных чисел
ReDim a(i) ‘определяем наш массив
For q = 1 To i ‘запускаем цикл по записи значений в массив а()
a(q) = Int(Round(Rnd() * i * 10, 1) / 10) ‘записываем случайное значение в элемент массива а()
If a(q) = 0 Then a(q) = i ‘проверка на нулевое значение если 0 то значение массиву изменяется на i
For j = 1 To q ‘Цикл на проверку массива на повторяющиеся значения
Do While a(j) = a(q) ‘повторяем смену значений пока выполняется равенство
If q = j Then Exit Do ‘если происходит проверка одного и того же значения то завершаем эту проверку
a(q) = Int(Round(Rnd() * i * 10, 1) / 10)
If a(q) = 0 Then a(q) = i
Loop ‘завершение цикла Do
Next j ‘завершение цикла j
Next q ‘завершение цикла q
End Sub

Проверка ответов на слайде

Использование переключателя (OptionButton)

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

  1. If OptionButton3.Value = True Then  ‘тут указываем правильный ответ т.е. вместо цифры 3 должен стоять номер переключателя с правильным ответом
  2. Prav = Prav + 1             ‘если указали правильный ответ то мы увеличиваем количество правильных ответов на 1
  3. End If
  4. OptionButton1.Value = False     ‘очистка всех ответов делаем не активными все наши переключатели
  5. OptionButton2.Value = False
  6. OptionButton3.Value = False
  7. OptionButton4.Value = False
  8. OptionButton5.Value = False
  9. Vsego = Vsego + 1                   ‘увеличиваем число заданных вопросов на 1
  10. Dim j As Integer ‘объявляем вспомогательную переменную для перемешивания ответов
  11. i = 4 ‘количество ответов на следующем слайде
  12. k = 500 ‘нижняя граница слайда для расположения ответов
  13. h = 55 ‘шаг на котором будут располагаться ответы друг относительно друга по оси Y
  14. Rend_vop (i) ‘запускаем нашу подпрограмму которую писали выше
  15. For j = 1 To i
  16. For q = 1 To i
  17. Do While a(j) = a(q) ‘Дополнительная проверка повторов в нашем массиве
  18. If q = j Then Exit Do ‘
  19. Rend_vop (i) ‘перезапуск нашего генератора случайного расположения ответов
  20. j = 1: q = 1
  21. Loop
  22. Next q
  23. Next j
  24. Slide3.OptionButton1.Top = k — h * a(1) ‘меняем расположение ответов на следующем слайде (в нашем варианте на 3-ем слайде)
  25. Slide3.OptionButton2.Top = k — h * a(2)
  26. Slide3.OptionButton3.Top = k — h * a(3)
  27. SlideShowWindows(1).View.Next       ‘переходим на следующий слайд

И так повторяем на каждом слайде где используются переключатели только будьте внимательны если на следующем слайде будут использоваться флажки то при смене расположения ответов нужно будет заменить OptionButton на CheckBox с соответствующими номерами и не забывайте про номера слайдов, а если текстовое поле то оно используется в единственном экземпляре и ничего местами не меняется.

Использование флажка (CheckBox)

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

Допустим у нас имеется 4 варианта ответов среди них 2 варианта правильных пусть будут первый и третий не важно, но примем так (можете делать столько сколько вам угодно и вариантов ответов и из них правильных) код соответственно будет выглядеть следующим образом.

  1. If CheckBox1.Value = True and CheckBox2.Value = False and CheckBox3.Value = True and CheckBox4.Value = False Then  ‘тут указываем какие флажки должны быть включены а какие нет
  2. Prav = Prav + 1             ‘если указали правильный ответ то мы увеличиваем количество правильных ответов на 1
  3. End If
  4. CheckBox1.Value = False     ‘очистка всех ответов делаем не активными все наши переключатели
  5. CheckBox2.Value = False
  6. CheckBox3.Value = False
  7. CheckBox4.Value = False

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

Использование текстового поля (TextBox)

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

If TextBox1.Text = “текст” Then  ‘тут указываем какие флажки должны быть включены а какие нет
Prav = Prav + 1             ‘если указали правильный ответ то мы увеличиваем количество правильных ответов на 1
End If
TextBox.Text = “ ”
Vsego = Vsego+1

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

Использование поля со списком (ComboBox)

При использовании поля со списком варианты ответов предоставлены в выпадающем списке. Этот список нужно создать заранее для этого на предыдущем слайде нам необходимо его заполнить вставив соответствующий код в кнопку «Далее» перед переходом на следующий слайд (пример составлен для использования нескольких полей со списком на втором слайде):


    ‘Внесение вариантов ответов в список соответствующего поля со списком
If Slide2.ComboBox1.ListCount < 3 Then
    Slide2.ComboBox1.AddItem «Вариант ответа»   ‘ListIndex = 0
    Slide2.ComboBox1.AddItem «Вариант ответа»   ‘ListIndex = 1
    Slide2.ComboBox1.AddItem «Вариант ответа»   ‘ListIndex = 2
    …
End If

If Slide2.ComboBox2.ListCount < 3 Then
    Slide2.ComboBox2.AddItem «Вариант ответа»   ‘ListIndex = 0
    Slide2.ComboBox2.AddItem «Вариант ответа»   ‘ListIndex = 1
    Slide2.ComboBox2.AddItem «Вариант ответа»   ‘ListIndex = 2
    …
End If

    ‘Использование раскрывающегося списка
Slide2.ComboBox1.Style = fmStyleDropDownList
Slide2.ComboBox2.Style = fmStyleDropDownList

    ‘значение Combo box — значение ListIndex
Slide2.ComboBox1.BoundColumn = 0
Slide2.ComboBox2.BoundColumn = 0

    ‘Отображение первой записи в поле со списком
Slide2.ComboBox1.ListIndex = 0
Slide2.ComboBox2.ListIndex = 0

После этого на слайде с вопросом, где используются поля со списком, для кнопки «Далее» вводим следующий код:

If ComboBox1.Value = 0 And ComboBox2.Value = 2 Then
    Prav = Prav + 1
End If
‘устанавливаем начальный вариант который будет показываться в поле
ComboBox1.ListIndex = 0
ComboBox2.ListIndex = 0
Vsego = Vsego + 1                   ‘увеличиваем число заданных вопросов на 1
SlideShowWindows(1).View.Next       ‘переходим на следующий слайд

Продолжение >>

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?