EXCEL VBA KULLANICI FORMU

 


Excel VBA UserForm Nedir?

Excel VBA (Uygulamalar için Visual Basic), bir metin dizesindeki belirli bir dizenin oluşumlarını değiştirmenize olanak tanıyan bir Değiştir işlevi sağlar. VBA Değiştir dizesini bir metin dosyasında uygulamak mümkündür.

Aşağıdaki örneği ele alalım:

VBA UserForm Tanım Örneği - 1

VBA UserForm Tanım Örneği - 2

VBA kodu, butona tıkladığımızda “Label1”deki başlığı “Button Clicked” olarak değiştirir. VBA kodunu çalıştırırsak, aşağıda gösterilen çıktıyı alırız:

VBA UserForm Tanım Örneği - 3

UserForm Nasıl Oluşturulur?

VBA UserForm oluşturmak için aşağıdaki adımları inceleyelim:

  1. Araç çubuğundaki “Geliştirici” bölümüne gidin ve “Visual Basic” seçeneğine tıklayın. Şimdi, işlevler ve alt prosedürler eklemek için VBA Düzenleyicisi açılır. Yeni bir UserForm veya boş sayfa oluşturmak için “Ekle” ve “Kullanıcı Formu” düğmelerine tıklayın.


    VBA UserForm Nasıl Oluşturulur - Adım 1a

  1. UserForm’u tercihlerinize göre özelleştirin.


    VBA UserForm Nasıl Oluşturulur - Adım 2a

    VBA UserForm, özelleştirebileceğiniz bir ToolBox sağlar.


    Burada, yukarıdaki kullanıcı formu için üç etiket, üç metin kutusu ve bir Komut Düğmesi seçtik ve kullanıcı girdisini kabul etmek için bunları yukarıda gösterildiği gibi aralıklı yerleştirdik.
  1. Etiket'i sürükleyip bırakırsanız, yalnızca Etiket1'i elde edersiniz. Etiket adını değiştirmek için, sağ tıklayıp verilen etiketin "Özellikler"ini seçiyoruz.


    VBA UserForm Nasıl Oluşturulur - Adım 3a

    Burada “Başlık” seçeneğini seçip Özellikler kısmından ismi düzenleyerek etiketin ismini değiştirebiliriz.



    Benzer şekilde diğer elemanların etiket değerlerini de değiştirin.

  2. UserForm'umuzu oluşturduğumuzda, "Gönder" düğmesinin parametresini tanımlamak için bir alt rutin tanımlamalıyız. Düğmenin özelliklerini tanımlamak için öğeye çift tıklayın, bu otomatik olarak bir alt rutin tanımlayacaktır.


    VBA UserForm Nasıl Oluşturulur - Adım 4

  3. İsim, yaş ve cinsiyet değerlerini kabul etmek için üç değişken tanımlayın.


    VBA Kullanıcı Formu Nasıl Oluşturulur - Adım 5

  4. Kullanıcının verdiği değerleri, kullanıcının sağladığı textbox'lar ile VBA'in okumasını sağlayalım.


    VBA UserForm Nasıl Oluşturulur - Adım 6

    TextBox1.Text komutuyla TextBox'tan değerleri alabiliriz, burada TextBox1 belirli textbox öğesinin adıdır.

    Textbox'taki tüm veri tipleri VBA String olarak verildiğinden age'i bir tam sayıya dönüştürüyoruz.

  5. Değerleri bir mesaj kutusuna yazdırın ve vbCrLf fonksiyonunu kullanarak Ad, Yaş ve Cinsiyet'i farklı satırlarda tanımlayın.


    VBA UserForm Nasıl Oluşturulur - Adım 7

  1. Private Sub CommandButton1_Click()
    Dim name As String
    Dim age As Integer
    Dim gender As String
    name = TextBox1.Text
    age = Val(TextBox2.Text)
    gender = TextBox3.Text
    MsgBox “Name: ” & name & vbCrLf & “Age: ” & age & vbCrLf & “Cinsiyet: ” & gender, vbInformation, “User Information”
    End Sub

  2. VBA kodunu çalıştırın. UserForm'u çalıştıracaktır.


    VBA UserForm Nasıl Oluşturulur - Adım 8a

    Ayrıntıları girin ve “Gönder”e tıklayın.


UserForm'u Biçimlendirme

Excel VBA'da bir UserForm'u biçimlendirmek için, Özellikler penceresini kullanarak formun ve denetimlerinin görünümünü ve davranışını değiştirebilirsiniz. Bunu yapmak için, UserForm Oluştur düğmesine tıklayın.

VBA UserForm'u Biçimlendirme - 1

Yepyeni bir kullanıcı formu yaratacaktır. Kullanıcı formunu sürükleyerek boyutunu ayarlayabilirsiniz. Öğeyi seçip sağ tıklayarak özelliklerini görüntüleyin.

VBA UserForm'u Biçimlendirme - 2

Bununla birlikte özellikler penceresini düzenleyerek penceredeki isimleri değiştirebiliriz.

VBA UserForm'u Biçimlendirme - 3

UserForm’un rengini değiştirmek için UserForm “BackColor” özelliğini seçin.

VBA UserForm'u Biçimlendirme - 4
VBA UserForm'u Biçimlendirme - 5

Gördüğünüz gibi UserForm rengi değişti. Benzer şekilde, elemanların rengini değiştirmek için elemanın özelliklerini seçin ve rengini değiştirin.

Yazı tipini değiştirmek için özellikler penceresine gidin ve yazı tipi seçeneğini seçin.

VBA UserForm'u Biçimlendirme - 6

Yazı tipini, boyutunu (kalın, italik vb.) ve harfin boyutunu değiştirebileceğiniz yeni bir pencere açılacaktır.

VBA UserForm'u Biçimlendirme - 7

UserForm'un ne kadar dinamik ve özelleştirilebilir olduğunu gösterir. Şimdi VBA UserForm'larını biçimlendirmenin ve kullanmanın bazı yollarına bakalım.

Örnek 1

Diyelim ki, kullanıcı adı ve parolayı girdi olarak kabul eden bir oturum açma UserForm'u oluşturmak istiyorsunuz. Doğruysa, "Oturum Açma Başarılı" döndürür. Aksi takdirde, erişimi reddeder.

  • Adım 1: Yeni bir UserForm oluşturun.
Örnek 1 - Adım 1
  • Adım 2: Gerekli öğeleri ekleyin. Bir VBA UserForm etiketi ve bir VBA UserForm TextBox oluşturuyoruz.
Örnek 1 - Adım 2a
Örnek 1 - Adım 2b
  • Adım 3: UserForm'un ve elemanlarının Özellikler bölümünü düzenleyerek metin kutularını ve Etiket adlarını özelleştirin.
Örnek 1 - Adım 3a

Aşağıdaki sonucu elde edeceksiniz.

Örnek 1 - Adım 3b

Not: Bu sadece bir örnektir. Excel VBA projenizde kullanıcı formunuzu istediğiniz gibi özelleştirebilirsiniz.

  • Adım 4: Kullanıcı formunun oturum açmayı kabul etmesi veya reddetmesi için parametreleri tanımlayacak bir alt rutin oluşturmak üzere “Gönder” düğmesine çift tıklayın.
Örnek 1 - Adım 4
  • Adım 5: Doğru kullanıcı adı ve parolayı kaydetmek için iki dize değerini başlatın.
Örnek 1 - Adım 5
  • Adım 6: Kullanıcının verdiği değerleri kabul etmek için başka bir dize kümesi başlatın.
Örnek 1 - Adım 6

Kullanıcının UserForm textbox'ında verdiği kullanıcı adı ve şifre değerlerini alır.

  • Adım 7: Girilen kullanıcı adı ve parolanın veritabanında saklanan kullanıcı adıyla eşleşip eşleşmediğini kontrol etmek için bir If-Else ifadesi başlatın. İstek günlüğünü kabul eder veya reddeder.
Örnek 1 - Adım 7a

vbExclamation, “Oturum Açma Durumu” başlıklı ünlem işareti simgesine sahip bir Mesaj Kutusu sağlar.

Örnek 1 - Adım 7b

Doğru olduğunda “Oturum Açma Durumu” başlığı ve kullanıcı adı olan bir Mesaj Kutusu döndürür. vbInformation yaygın olarak kullanılan bilgi simgesini sağlar.

Örnek 1 - Adım 7c

Kod:

Private Sub CommandButton1_Click()
Dim correctUsername As String
Dim correctPassword As String
correctUsername = “user”
correctPassword = “XXXXX”
Dim enteredUsername As String
Dim enteredPassword As String
enteredUsername = TextBox1.Text
enteredPassword = TextBox2.Text
Eğer enteredUsername = correctUsername Ve enteredPassword = correctPassword Then
MsgBox “Giriş başarılı! Hoş geldiniz, ” & correctUsername & “!”, vbInformation, “Giriş Durumu”
Else
MsgBox “Giriş başarısız. Yanlış kullanıcı adı veya parola.”, vbExclamation, “Giriş Durumu”
End If
End Sub

  • Adım 8: Kullanıcı formunu çalıştırın.
Örnek 1 - Adım 8a

"Gönder" butonuna tıkladıktan sonra şunu alıyoruz

Örnek 1 - Adım 8b

Örnek 2

Diyelim ki kişilerin adlarını içeren bir tablonuz var ve VBA Arama işlevini uygulamak istiyorsunuz. Bir adın listede kaç kez göründüğünü yazdırabilirsiniz ve ad yoksa listede ad yok iletisini döndürebilirsiniz.

Örnek 2 - Veri

UserForm'a bir arama fonksiyonu yerleştirerek uygulanabilir. Aşağıda bunu nasıl yapabileceğimizi görelim.

  • Adım 1: Yeni bir UserForm oluşturun.
Örnek 2 - Adım 1
  • Adım 2: Gerekli öğeleri ekleyin. Burada bir VBA UserForm etiketi, bir VBA UserForm ListBox ve bir VBA UserForm TextBox oluşturuyoruz.
Örnek 2 - Adım 2a
Örnek 2 - Adım 2b
Örnek 2 - Adım 2c

Ortaya çıkan UserForm aşağıdaki gibi olacaktır:

Örnek 2 - Adım 2d
  • Adım 3: Özellikler sekmesine giderek UserForm'u tercihlerinize göre biçimlendirin.
Örnek 2 - Adım 3

Öğeleri seçtikten sonra, özellikler penceresinde renk, yazı tipi boyutu ve yazı tipi görünümünü seçerek tüm öğeleri özelleştirebilirsiniz.

  • Adım 4: Özelleştirmeden sonra UserForm aşağıdaki gibi görünecektir.
Örnek 2 - Adım 4
  • Adım 5: Editörü açmak ve arama fonksiyonunu uygulamak için UserForm'a çift tıklayın.
Örnek 2 - Adım 5
  • Adım 6: Listbox’ta nelerin görüntülenmesini istediğinizi tanımlayın.
Örnek 2 - Adım 6
  •  Adım 7: Metin girildiğinde Arama alt rutinini çağıracak olan TextBox fonksiyonunu tanımlayın.
Örnek 2 - Adım 7
  • Adım 8: Excel'de belirli bir tabloda arama yapmak için PerformSearch alt rutinini başlatın.
Örnek 2 - Adım 8
  • Adım 9: Önceki ListBox değerlerini temizleyin ve tablonun boyutunu tutacak bir aralık değeri tanımlayın.
Örnek 2 - Adım 9
  • Adım 10: Tablonun aralığını bulmak için Sayfa adı ve aralık değerini seçip "A" sütunundaki son boş olmayan satırı xlUp fonksiyonu ile bulun.
Örnek 2 - Adım 10
  • Adım 11: Metin kutusu girişindeki dize değerini aramak için bir For döngüsü başlatın.
Örnek 2 - Adım 11

Burada,

If InStr(1, cell.Value, searchTerm, vbTextCompare) > 0 Then
ListBox1.AddItem cell.Value

Harf değerlerini kontrol etmek için InStr fonksiyonunu kullanarak 0'dan büyük bir değer döndürüp döndürmediğini kontrol ediyoruz ve bu değeri AddItem kullanarak VBA UserForm ListBox'a ekliyoruz.

Listedeki harflerle eşleşen harf yoksa, "Eşleşen sonuç bulunamadı." mesajı döndürülür.   

Private Sub TextBox1_Change()
PerformSearch TextBox1.Text
End Sub

Private Sub UserForm_Click()
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = “20”
ListBox1.List = Array(“Search results will appear here.”)
End Sub

Private Sub PerformSearch(ByVal searchTerm As String)
ListBox1.Clear
Dim dataRange As Range
Set dataRange = ThisWorkbook.Sheets(“Sheet1”).Range(“A1:A10” & ThisWorkbook.Sheets(“Sheet1”).Cells(Rows.count, “A”).End(xlUp).row)
Dim cell As Range
For Each cell In dataRange
If InStr(1, cell.Value, searchTerm, vbTextCompare) > 0 Then
ListBox1.AddItem cell.Value
End If
Next cell
If ListBox1.ListCount = 0 Then
ListBox1.AddItem “No matching results found.”
End If
End Sub


  • Adım 12: UserForm'u çalıştırın ve çıktıyı görüntüleyin.
Örnek 2 - Adım 12

VBA Kodu

Benzer şekilde UserForm'un biçimlendirmesi VBA kodunu şu ek ile düzenleyerek yapılabilir:

Me.propertyname


Burada propertyname seçili öğenin özelliğidir ve “Me” UserForm'u tanımlamak için kullanılır.

İsteğe bağlı olarak UserForm'un arka plan rengini seçtiğimiz renge değiştirebildiğimiz bir örneği ele alalım.

VBA Kod Örneği - 1

VBA Kodu şu şekilde düzenlenebilir:

VBA Kod Örneği - 2

Burada UserForm'un rengini değiştirmek için VBA kodunda Me.BackColor özelliğini seçiyoruz ve Switch-Case konseptinin yardımıyla bunu değiştirmek için birden fazla seçenek sunuyoruz.

VBA kodunu çalıştırdığımızda aşağıdaki sonucu elde ederiz:

VBA Kod Örneği - 3
VBA Kod Örneği - 4
VBA Kod Örneği - 5

Bu şekilde UserForm'u biçimlendirmek için VBA kodunun nasıl kullanılacağını gösterebiliriz .

1. Excel VBA'da UserForm nasıl çağrılır?

VBA UserForm Show işlemini gerçekleştirmek için şu komutu kullanırız

: • UserForm1.Show

“UserForm1”i VBA UserForm'unuzda uyguladığınız özel isimle değiştirebilirsiniz.

2. VBA'da UserForm nasıl kapatılır?

VBA UserForm Close işlemini gerçekleştirmek için aşağıdaki kodu kullanırız.

 Unload Me

Bir VBA UserForm Close fonksiyonunu boşaltır veya tetikler.

3. VBA UserForm.Show neden çalışmıyor?

 UserForm, VBA düzenleyicisinde düzgün bir şekilde oluşturulmamış veya adlandırılmamış.
 UserForm, yanlış ayarlar nedeniyle gizli veya görünür değil.
 UserForm'u gösteren kod yürütülmemiş veya doğru zamanda çağrılmamış.
 UserForm adında veya kodun kendisinde bir yazım hatası veya hata var.
 UserForm.Show ifadesinden önceki kodda bir hata olabilir.

4. Bir kullanıcı UserForm'u kapattığında hangi olay tetiklenir?

VBA UserForm Close tetiklendiğinde, “UserForm_QueryClose” olayı tetiklenir.


Yorum Gönder

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