Перейти к содержимому

VBA Excel. Создание простого тестового задания

Создание простого тестового задания средствами VBA Excel на конкретном примере. Загрузка вопросов и ответов с помощью массивов. Выставление оценки за тест.

  1. Описание тестового задания
  2. Форма и элементы управления
  3. Загрузка вопросов и ответов
  4. Выставление оценки за тест

Описание тестового задания

Простое тестовое задание состоит из пяти вопросов с пятью вариантами ответов на каждый. Оценивается пройденный тест от 0 до 5 баллов в зависимости от количества правильных ответов.

Пользователь выбирает на каждый вопрос один ответ из пяти предложенных и нажимает кнопку «Оценить». Результат выполнения тестового задания выводится в информационном окне MsgBox.

Форма и элементы управления

На пользовательской форме VBA Excel расположены пять элементов управления Frame (рамка) для размещения вопросов. В каждой рамке расположены по пять элементов OptionButton (переключатель) для размещения и выбора вариантов ответа.

Рамки нужны для объединения переключателей в группы, в которых только один элемент OptionButton из группы может иметь значение True. Это облегчает пользователю перевыбор ответа.

Форма тестового задания

Кнопка CommandButton1 используется для запуска процедуры расчета оценки за пройденный тест.

Загрузка вопросов и ответов

Вопросы и варианты ответов присваиваются массивам непосредственно в коде VBA Excel. Из массивов информация передается на пользовательскую форму элементам управления Frame и OptionButton.

Private Sub UserForm_Initialize()
Dim arr1 As Variant, arr2 As Variant, i As Byte

'Присваиваем список вопросов массиву arr1
arr1 = Array("Сколько лапок у мухи?", "На что меняют шило?", _
"5! - это сколько?", "Кто может стать мужем лосихи?", _
"Что в списке цветов лишнее?")

'Присваиваем вопросы заголовкам рамок
'из массива arr1
For i = 1 To 5
  Controls("Frame" & i).Caption = arr1(i - 1)
Next

'Присваиваем варианты ответов массиву arr2
arr2 = Array("2", "4", "6", "8", "10", "на вилы", "на мыло", _
"на силу", "на рыло", "на рынду", "24", "48", "60", "120", _
"240", "Вепрь", "Упырь", "Бугай", "Мизгирь", "Сохатый", _
"Сенполия", "Физалия", "Циния", "Пеларгония", "Аквилегия")

'Присваиваем варианты ответов надписям
'переключателей из массива arr2
For i = 1 To 25
  Controls("OptionButton" & i).Caption = arr2(i - 1)
Next

CommandButton1.Caption = "Оценка"
Me.Caption = "Тестовое задание"
End Sub

Пример тестового задания

Выставление оценки за тест

Для расчета оценки за пройденный тест используется свойство Value элемента управления OptionButton, которое равно True, если переключатель выбран. В тексте процедуры свойство Value не указано, так как оно является для OptionButton свойством по умолчанию.

Private Sub CommandButton1_Click()
Dim arr3 As Variant, n As Byte, i As Byte

'Присваиваем порядковые номера правильных
'ответов массиву arr3
arr3 = Array("3", "7", "14", "20", "22")

'Считаем количество правильных ответов
For i = 1 To 5
  If Controls("OptionButton" & arr3(i - 1)) Then
    n = n + 1
  End If
Next

'Выводим результат в MsgBox
MsgBox "Ваша оценка: " & n
End Sub

MsgBox с оценкой за пройденный тест

Предложенное здесь простое тестовое задание в VBA Excel можно усовершенствовать, организовав загрузку вопросов и ответов в массивы с активного рабочего листа. Тогда на разных листах можно будет создать различные варианты тестов и запускать их одной программой, выбрав нужный лист.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].