Birden Çok Sayfalı Excel VBA Kullanıcı Formu
Aşağıda, birden çok sayfa içeren bir Kullanıcı Formu oluşturan Excel VBA'da bir programa bakacağız. Bu kullanıcı formu ayrıca görüntüler içeriyor.
Multipage Kontrol iki sayfa içerir. Sayfa 1'de kullanıcı kendi kişisel bilgilerini doldurabilir. Sayfa 2'de, kullanıcı en çok hangi resimden hoşlandığını gösterebilir.


Bu Kullanıcı Formunu oluşturmak için aşağıdaki adımları uygulayın.
1. Visual Basic Düzenleyicisi'ni açın. Proje Gezgini görünmüyorsa, Görüntüle, Proje Gezgini'ni tıklatın.
2. Ekle, Kullanıcı formu'nu tıklayın. Araç Kutusu otomatik olarak görünmezse, Görünüm, Araç Kutusu'nu tıklatın. Ekranınız aşağıdaki gibi ayarlanmalıdır.

3. Multipage denetimini, etiketleri, metin kutularını (ilk önce üstte, ikincisinin ikincisini), çerçeveyi, seçenek düğmelerini (solda, ikincisi sağda), liste kutusunu, Görüntü denetimini ve komut düğmesini ekleyin. Bu tamamlandıktan sonra sonuç, daha önce gösterilen Kullanıcı Formunun boş sürümüyle tutarlı olmalıdır. Örneğin, araç kutusundan çoğaltma üzerine tıklayarak bir çoğaltma denetimi oluşturun. Ardından, Kullanıcı Formu'ndaki Çok sayfalı bir denetimi sürükleyebilirsiniz. Cinsiyet çerçevesine vardığınızda, iki seçenek düğmeyi yerleştirmeden önce bu çerçeveyi çizmeyi unutmayın.
4. Kontrollerin isimlerini ve başlıklarını değiştirebilirsiniz. Adlar Excel VBA kodunda kullanılır. Altyazılar, ekranınızda görünenlerdir. Kontrollerin isimlerini değiştirmek iyi bir uygulamadır, ancak burada gerekli değildir çünkü bu örnekte sadece birkaç kontrolümüz vardır. Kullanıcı formu, Çok sayfalı sekmeler, etiketler, çerçeve, seçenek düğmeleri ve komut düğmesinin altyazısını değiştirmek için Görünüm, Özellikler Penceresi'ni tıklayın ve her bir denetimi tıklayın.
5. Kullanıcı formunu göstermek için çalışma sayfanıza bir komut düğmesi yerleştirin ve aşağıdaki kod satırını ekleyin:
UserForm1.Show
End Sub
Şimdi Sub UserForm_Initialize oluşturacağız. Userform için Show yöntemini kullandığınızda, bu sub otomatik olarak yürütülür.
6. Visual Basic Düzenleyicisi'ni açın.
7. Proje Gezgini'nde, UserForm1'e sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.
8. Soldaki açılır listeden Userform'u seçin. Sağdaki açılır listeden Sıfırla'yı seçin.
9. Aşağıdaki kod satırlarını ekleyin:
With ListBox1
.AddItem "Mountains"
.AddItem "Sunset"
.AddItem "Beach"
.AddItem "Winter"
End With
End Sub
Açıklama: Sayfa 2'deki liste kutusu doldurulacaktır.
Şimdi, Userform'un ilk bölümünü oluşturduk. Zaten düzgün görünmesine rağmen, liste kutusundan bir öğe seçtiğimizde veya OK düğmesine tıkladığımızda hiçbir şey olmayacak.
10. Görüntüleri (bu sayfanın sağ tarafı) indirin ve bunları "C: test" e ekleyin.
11. Proje Gezgini'nde, UserForm1'e çift tıklayın.
12. Liste kutusuna çift tıklayın.
13. Aşağıdaki kod satırlarını ekleyin:
If ListBox1.ListIndex = 0 Then
Image1.Picture = LoadPicture("C:testMountains.jpg")
End If
If ListBox1.ListIndex = 1 Then
Image1.Picture = LoadPicture("C:testSunset.jpg")
End If
If ListBox1.ListIndex = 2 Then
Image1.Picture = LoadPicture("C:testBeach.jpg")
End If
If ListBox1.ListIndex = 3 Then
Image1.Picture = LoadPicture("C:testWinter.jpg")
End If
End Sub
Açıklama: Bu kod satırları, liste kutusundaki seçilen öğeye bağlı olarak bir resim yükler.
14. Tamam düğmesine çift tıklayın.
15. Aşağıdaki kod satırlarını ekleyin:
Dim emptyRow As Long
"Make Sheet1 active
Sheet1.Activate
"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
"Transfer information
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
If OptionButton1.Value = True Then
Cells(emptyRow, 3).Value = "Male"
Else
Cells(emptyRow, 3).Value = "Female"
End If
Cells(emptyRow, 4).Value = ListBox1.Value
"Close Userform
Unload Me
End Sub
Açıklama: İlk olarak, Sheet1'i etkinleştiriyoruz. Ardından boşRow belirliyoruz. EmptyRow değişkeni ilk boş satırdır ve her kayıt eklendiğinde artar. Ardından, bilgileri Userform'dan boşRow'un belirli sütunlarına aktarıyoruz. Son olarak, Userform'u kapatıyoruz.
16. Visual Basic Editor'den çıkın, aşağıda gösterilen etiketleri 1. satıra girin ve Userform'u test edin.
Sonuç:
