EXCEL VBA İLE ÇOKTAN SEÇMELİ SORU OLUŞTURMA

 



Adım 1: UserForm Oluşturma

  1. Excel'de Alt + F11 tuşlarına basarak VBA düzenleyicisini açın.

  2. Insert menüsünden UserForm seçeneğini seçin ve yeni bir UserForm ekleyin.

Adım 2: UserForm Tasarımı

  • UserForm üzerine birkaç Label, OptionButton, ve CommandButton ekleyin.

  • Örneğin:

    • Bir Label ile soruyu göstermek için.

    • Dört OptionButton ile çoktan seçmeli seçenekleri göstermek için.

    • Bir CommandButton ile cevabı kontrol etmek için.

Adım 3: Kod Ekleme

UserForm'unuzun kod kısmına aşağıdaki VBA kodlarını ekleyin:

Dim sorular As Variant
Dim cevaplar As Variant
Dim secenekler As Variant
Dim soruIndex As Integer
Dim dogruSayisi As Integer

Private Sub UserForm_Initialize()
    ' Soruları ve cevapları tanımla
    sorular = Array("Türkiye'nin başkenti neresidir?", "Dünya'nın en büyük okyanusu hangisidir?", "Pi sayısı yaklaşık olarak kaçtır?")
    secenekler = Array( _
        Array("İstanbul", "Ankara", "İzmir", "Bursa"), _
        Array("Atlantik", "Hint", "Pasifik", "Arktik"), _
        Array("2.71", "3.14", "1.62", "1.41"))
    cevaplar = Array("Ankara", "Pasifik", "3.14")

    soruIndex = 0
    dogruSayisi = 0

    ' İlk soruyu göster
    GosterSoru
End Sub

Private Sub CommandButton1_Click()
    Dim kullaniciCevap As String

    ' Kullanıcının seçimini kontrol et
    If OptionButton1.Value Then
        kullaniciCevap = OptionButton1.Caption
    ElseIf OptionButton2.Value Then
        kullaniciCevap = OptionButton2.Caption
    ElseIf OptionButton3.Value Then
        kullaniciCevap = OptionButton3.Caption
    ElseIf OptionButton4.Value Then
        kullaniciCevap = OptionButton4.Caption
    End If

    ' Cevabı kontrol et
    If kullaniciCevap = cevaplar(soruIndex) Then
        MsgBox "Doğru!", vbInformation
        dogruSayisi = dogruSayisi + 1
    Else
        MsgBox "Yanlış. Doğru cevap: " & cevaplar(soruIndex), vbExclamation
    End If

    ' Bir sonraki soruya geç
    soruIndex = soruIndex + 1

    If soruIndex < UBound(sorular) + 1 Then
        GosterSoru
    Else
        MsgBox "Test tamamlandı! Toplam doğru cevap sayınız: " & dogruSayisi, vbInformation
        Unload Me
    End If
End Sub

Private Sub GosterSoru()
    ' Soruyu ve seçenekleri göster
    Label1.Caption = sorular(soruIndex)
    OptionButton1.Caption = secenekler(soruIndex)(0)
    OptionButton2.Caption = secenekler(soruIndex)(1)
    OptionButton3.Caption = secenekler(soruIndex)(2)
    OptionButton4.Caption = secenekler(soruIndex)(3)
    OptionButton1.Value = False
    OptionButton2.Value = False
    OptionButton3.Value = False
    OptionButton4.Value = False
End Sub


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...