/ / Excel VBA Kullanıcı Formu

Excel VBA Kullanıcı Formu

Denetimleri ekle | Kullanıcı formunu göster | Makroları Atama | Kullanıcı formunu test et

Bu bölüm, nasıl oluşturulacağını öğretir. Excel VBA Kullanıcı Formu. Oluşturulacak olan Userform aşağıdaki gibi görünür:

Excel VBA Kullanıcı Formu

Denetimleri ekle

Denetimleri Kullanıcı Formuna eklemek için aşağıdaki adımları yürütü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.

Excel VBA'da Kullanıcı Formu Ekranı Kurulumu

3. Aşağıdaki tabloda listelenen kontrolleri ekleyin. Bu tamamlandıktan sonra sonuç, daha önce gösterilen Kullanıcı Formunun resmi ile tutarlı olmalıdır. Örneğin, Toolbox'tan TextBox'a tıklayarak bir metin kutusu kontrolü oluşturun. Ardından, Userform'a bir metin kutusu sürükleyebilirsiniz. Araba çerçevesine vardığınızda, iki seçenek düğmeyi yerleştirmeden önce bu çerçeveyi çizmeyi unutmayın.

4. Aşağıdaki tabloya göre kontrollerin isimlerini ve başlıklarını değiştirin. Adlar Excel VBA kodunda kullanılır. Altyazılar, ekranınızda görünenlerdir. Kontrollerin isimlerini değiştirmek iyi bir uygulamadır. Bu kodunuzun okunmasını kolaylaştıracaktır. Denetimlerin adlarını ve altyazılarını değiştirmek için Görünüm, Özellikler Penceresi'ni tıklatın ve her bir denetimi tıklatın.

Kontrol isim altyazı
userform DinnerPlannerUserForm Akşam yemeği planlayıcısı
Metin kutusu NameTextBox
Metin kutusu PhoneTextBox
Liste kutusu CityListBox
Açılan kutu DinnerComboBox
Onay kutusu DateCheckBox1 13 Haziran
Onay kutusu DateCheckBox2 20 Haziran
Onay kutusu DateCheckBox3 27 Haziran
çerçeve CarFrame araba
Seçenek tuşu CarOptionButton1 Evet
Seçenek tuşu CarOptionButton2 Yok hayır
Metin kutusu MoneyTextBox
Sıkma Düğmesi MoneySpinButton
Komut Düğmesi Butonuna tamam
Komut Düğmesi ClearButton Açık
Komut Düğmesi CancelButton İptal etmek
7 Etiketler Değişime gerek yok İsim :, Telefon Numarası: vb.

Not: açılan kutu, kullanıcının bir öğeyi seçebileceği veya kendi seçimini doldurabileceği bir açılır listedir. Seçenek düğmelerinden sadece biri seçilebilir.

Kullanıcı formunu göster

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:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.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.

1. Visual Basic Düzenleyicisi'ni açın.

2. Proje Gezgini'nde, DinnerPlannerUserForm'a sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

3. Soldaki açılır listeden Userform'u seçin. Sağdaki açılır listeden Sıfırla'yı seçin.

4. Aşağıdaki kod satırlarını ekleyin:

Private Sub UserForm_Initialize()

"Empty NameTextBox
NameTextBox.Value = ""

"Empty PhoneTextBox
PhoneTextBox.Value = ""

"Empty CityListBox
CityListBox.Clear

"Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

"Empty DinnerComboBox
DinnerComboBox.Clear

"Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

"Uncheck DataCheckBoxes

DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

"Set no car as default
CarOptionButton2.Value = True

"Empty MoneyTextBox
MoneyTextBox.Value = ""

"Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

Açıklama: Metin kutuları boşaltılır, liste kutuları ve açılan kutular doldurulur, onay kutuları işaretlenmemiş, vb.

Makroları Atama

Şimdi, Userform'un ilk bölümünü oluşturduk. Zaten düzgün görünüyor olsa da, Kullanıcı Formu'ndaki komut düğmelerini tıkladığınızda henüz bir şey olmayacak.

1. Visual Basic Düzenleyicisi'ni açın.

2. Proje Gezgini'nde, DinnerPlannerUserForm üzerine çift tıklayın.

3. Para çevirme düğmesine çift tıklayın.

4. Aşağıdaki kod satırını ekleyin:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Açıklama: Bu kod satırı, döndürme düğmesini kullandığınızda metin kutusunu güncelleştirir.

5. Tamam düğmesine çift tıklayın.

6. Aşağıdaki kod satırlarını ekleyin:

Private Sub OKButton_Click()

Dim emptyRow As Long

"Make Sheet1 active
Sheet1.Activate

"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

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. Son olarak, bilgileri Userform'dan boşRow'un belirli sütunlarına aktarıyoruz.

7. Temizle düğmesine çift tıklayın.

8. Aşağıdaki kod satırını ekleyin:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Açıklama: Bu kod satırı, Temizle düğmesine tıkladığınızda Sub UserForm_Initialize çağırır.

9. İptal düğmesine çift tıklayın.

10. Aşağıdaki kod satırını ekleyin:

Private Sub CancelButton_Click()

Unload Me

End Sub

Açıklama: Bu kod satırı, İptal düğmesine tıkladığınızda Kullanıcı formunu kapatır.

Kullanıcı formunu test et

Visual Basic Düzenleyicisi'nden çıkın, aşağıda gösterilen etiketleri 1. satıra girin ve Userform'u test edin.

Sonuç:

Kullanıcı formunu test et

Ayrıca oku: