EXCEL VBA'DA USEFORM KAPATMA

 


Excel VBA'da, bir UserForm, kullanıcıların girdi sağlayarak veya seçimler yaparak çalışma kitabıyla etkileşim kurmasını sağlayan bir grafiksel kullanıcı arayüzü (GUI) aracıdır. VBA Close UserForm eylemi, amacına ulaştığında UserForm'u sonlandırmayı veya gizlemeyi ifade eder. VBA makronuzun yürütülmesi sırasında UserForm'un görünürlüğünü ve yaşam döngüsünü kontrol etmenizi sağlar.



VBA Close UserForm'un kullanımını incelemek için bir örneğe bakalım. Kullanıcıdan adını girmesini isteyen basit bir UserForm'dur.

VBA UserForm Örneği Kapatma - 1

Bir butona tıklandığında, UserForm bize istediğimiz ismi girme olanağı sunacak ve girilen isim kullanılarak kişiselleştirilmiş bir karşılama mesajı oluşturulacaktır.

VBA UserForm Örneği Kapatma - 2
VBA UserForm Örneği Kapatma - 3
VBA UserForm Örneği Kapatma - 4

Burada Rahul ismini girip komut butonuna tıkladığımızda “Merhaba, Rahul!” yazısını gösteren bir mesaj kutusu görebiliriz.


ÖNEMLİ NOKTALAR

  • Excel'de VBA Close UserForm'u kapatmak, amacına ulaştıktan sonra UserForm'u sonlandırmak veya gizlemek anlamına gelir.
  • “Unload Me” ifadesi UserForm’u bellekten kaldırırken, “Hide” metodu onu görünmez yapar ancak bellekte tutar.
  • Unload, UserForm'u sonlandırır, denetimleri ve değişkenleri sıfırlar ve yeniden erişmek için yeniden yüklemeyi gerektirir
  • .
  • Birden fazla “Kullanıcı Formu”, Kullanıcı Formu adını belirtmeyi veya “Ben” anahtar sözcüğünü kullanmayı gerektirebilir.
  • UserForm'u kapatmadan önce ek görevler gerçekleştirmek için Terminate olayını kullanın.

Excel VBA'da UserForm Nasıl Kapatılır?

VBA Close UserForm'u kapatmak için istenen davranışa bağlı olarak birden fazla seçeneğiniz var. İşte üç yaygın yöntem:

  • Yöntem 1: Unload Me

“Unload Me” ifadesi UserForm'u kapatır ve bellekten kaldırır. Bu yöntem UserForm'u tamamen boşaltır ve kaynaklarını serbest bırakır.

Örnek:

Public Sub CloseButton_Click()

    Unload Me

End Sub

Bu örnekte, CloseButton, VBA Close UserForm'daki bir CommandButton denetimidir. “CloseButton_Click” olay işleyicisi, düğmeye tıklandığında tetiklenir ve VBA Close UserForm, “Unload Me” kullanılarak boşaltılır.

  • Yöntem 2: Me.Hide

“Me.Hide” ifadesi, VBA Close UserForm'u bellekte tutarken gizlemek için kullanılır. Bu yöntem, durumunu veya verilerini kaybetmeden VBA Close UserForm'u tekrar göstermenize olanak tanır.

Örnek:

Public Sub CloseButton_Click()

    Me.Hide

End Sub

Bu örnekte yine butona tıklandığında “CloseButton_Click” olay işleyicisi tetikleniyor ve “Me.Hide” kullanılarak VBA Close UserForm gizleniyor.

  • Yöntem 3: Me.Visible = False

“Me.Visible = False” ifadesi, VBA Close UserForm'u bellekte tutarken gizlemenin başka bir yoludur. “Me.Hide” yöntemine benzer şekilde çalışır.

Örnek:

Public Sub CloseButton_Click()

    Me.Visible = False

End Sub

Butona tıklandığında “CloseButton_Click” olay işleyicisi tetiklenir ve “Me.Visible = False” kullanılarak VBA Close UserForm görünmez hale getirilir.


Örnekler

Örnek 1 – VBA'da “Unload Me” İfadesini Kullanarak Userform'u Kapatma

Bu örnek, girilen verilerle çalışma sayfasını güncellerken “Unload Me” ifadesi kullanılarak tıklandıktan sonra bir VBA Close UserForm’un nasıl kapatılacağını göstermektedir.

  • Adım 1: Alt+F11 tuşlarına basarak Visual Basic Düzenleyicisi'ni (VBE) açın.
VBA UserForm'u Kapatma - Örnek 1 - Adım 1
  • Adım 2: Bir UserForm ekleyin. VBE'de, "Ekle" menüsüne gidin ve projenize yeni bir UserForm eklemek için "UserForm"u seçin. UserForm, VBE'nin sol tarafındaki Proje Gezgini penceresinde görünecektir.
Örnek 1 - Adım 2
  • Adım 3: UserForm'u tasarlayın. Kod modülünü açmak için Proje Gezgini'ndeki UserForm'a çift tıklayın.
VBA UserForm'u Kapatma - Örnek 1 - Adım 3

İhtiyaç duyduğunuz TextBox, Label ve CommandButton gibi kontrolleri ekleyerek UserForm'u tasarlayın.

Bu örnekte, UserForm'da “TextBox1” adında bir TextBox denetiminiz ve “CommandButton1” adında bir CommandButton denetiminiz olduğundan emin olun.

  • Adım 4: Şimdi Userform'a sağ tıklayın ve "Kodu Görüntüle"yi seçerek "UserForm" kod penceresini açın.

Aşağıdaki kodu Sub ve End Sub arasına ekleyin. VBE'de yapılan değişiklikleri uygulamak için çalışma kitabınızı kaydedin ve kapatın.

Private Sub CommandButton1_Click()
'TextBox'tan girilen verileri al
Dim data As String
data = TextBox1.Value
'Çalışma sayfasını girilen verilerle güncelle
Sheet1.Range(“A1”).Value = data
'UserForm'u kapat
Unload Me
End Sub

Public Sub UserForm_Click()

End Sub

Örnek 1 - Adım 4
  • Adım 5 : UserForm’u görüntülemek için Excel çalışma kitabınıza gidin ve “Geliştirici” seçeneğini seçin.
Örnek 1 - Adım 5a

“Geliştirici” menüsünden Ekle’ye gidin ve Düğme (Form Kontrolü)’nü seçin.

Örnek 1 - Adım 5b

Excel çalışma sayfasının herhangi bir yerine “Düğme”yi ekleyin.

Örnek 1 - Adım 5c
  • Adım 6: Şimdi, makroyu bu butona atayın ve UserForm ile ilişkili makroyu seçin. Bunu yapmak için, butona sağ tıklayın, “Assign Macro”yu seçin ve iletişim kutusu görünecektir.
Örnek 1 - Adım 6
  • Adım 7: “Makro Ata” iletişim kutusunda “Yeni” düğmesine tıklayın. Visual Basic Editor (VBE) penceresi, makro şablonunu içeren yeni bir modülle açılacaktır. UserForm'u görüntülemek için makro kodunu modüle yazın. Örneğin:
  • Adım 8: Şimdi butona tıkladığınızda makro çalıştırılacak ve UserForm (bu örnekte “UserForm1″ olarak adlandırılmıştır) görüntülenecektir.
VBA UserForm'u Kapat - Örnek 1 - Adım 8
  • Adım 9: Görüntülenen VBA Close UserForm'da, TextBox denetimine istenen verileri girin. Çalışma sayfasını girilen verilerle güncellemek ve UserForm'u kapatmak için CommandButton'a tıklayın.
Örnek 1 - Adım 9a

Şimdi, VBA Close UserForm after click'in kapatıldığını ve girilen verilerin A1 hücresine doldurulduğunu göreceksiniz.

Örnek 1 - Adım 9b
  • Adım 10: Button 1'e tekrar tıklarsanız, UserForm'un sıfırlandığını ve hiçbir veriyi saklamadığını göreceksiniz. Bunun nedeni, kodda kullanılan ve UserForm'u boşaltan ve içeriğini temizleyen "Unload Me" ifadesidir.
VBA UserForm'u Kapatma - Örnek 1 - Adım 10

Örnek 2 – Excel VBA'da Gizle Yöntemini Kullanarak UserForm'u Kapatma

  • Adım 1: Visual Basic Düzenleyicisini açın.
  • Adım 2: Bir UserForm ekleyin

Bir UserForm oluşturmak için önceki örnekte belirtilen adımları izleyin.

  • Adım 3: UserForm'a Kod Ekleyin

Şimdi Userform'a sağ tıklayın ve "Kodu Görüntüle"yi seçerek "UserForm" kod penceresini açın.

Aşağıdaki kodu Sub ve End Sub satırlarının arasına ekleyin.

Private Sub CommandButton1_Click()
'TextBox'tan girilen verileri al
Dim data As String
data = TextBox1.Value
'Çalışma sayfasını girilen verilerle güncelle
Sheet2.Range(“A1”).Value = data
'UserForm
Me.Hide
End Sub

Public Sub UserForm_Click()

End Sub

Excel VBA UserForm'u Kapatma - Örnek 2 - Adım 3
  • Adım 4: VBE'yi Kaydedin ve Kapatın. VBE'de yapılan değişiklikleri uygulamak için çalışma kitabınızı kaydedin.
  • Adım 5: UserForm’u görüntülemek için, önceki örnekte belirtilen adımları izleyin: “UserForm’u Görüntüle.”

UserForm'u sergilemek için Modülü oluşturduğunuzda, kod düğmeye atanır. Şekle veya düğmeye tıkladığınızda, UserForm ekranda gösterilecektir.

Örnek 2 - Adım 5
  • Adım 6: Görüntülenen UserForm'da, TextBox denetimine istediğiniz verileri girin.
Örnek 2 - Adım 6
  • Adım 7: Girilen verilerle çalışma sayfasını güncellemek için CommandButton'a tıklayın.

TextBox'taki veriler belirtilen çalışma sayfası ve hücre referansına yazılacak , bu durumda bu hücre A1 olacaktır.

Örnek 2 - Adım 7
  • Adım 8: Çalışma sayfasındaki veriler güncellendikten sonra, UserForm Me.Hide ifadesi kullanılarak gizlenecektir. UserForm, çalışma sayfasındaki güncellenmiş verileri korurken ekrandan kaybolacaktır.

Komut düğmesine tekrar tıkladığınızda, girilen verilerin hala metin kutusunda kaldığını göreceksiniz. Bu davranış, UserForm'u gizleyen ancak verilerini ve durumunu koruyan VBA kodunda "Me.Hide" ifadesinin kullanılmasının bir sonucudur.

Excel VBA UserForm'u Kapatma - Örnek 2 - Adım 8

Excel VBA'da Boşalt ve Gizle Arasındaki Fark

Excel VBA'da Unload ve Hide arasındaki temel fark, UserForm'u nasıl işlediklerinde yatmaktadır:

  • Unload: Unload ifadesi UserForm'u bellekten kaldırarak sistem kaynaklarını serbest bırakır. UserForm'u etkin bir şekilde sonlandırır ve tüm denetimlerini ve değişkenlerini sıfırlar. Bir kez boşaltıldıktan sonra, UserForm'a yalnızca yeniden yüklerseniz yeniden erişebilirsiniz.
  • Gizle: Gizle yöntemi UserForm'u bellekte tutar ancak görünmez hale getirir. Kontrollerin ve değişkenlerin durumunu korur ve Show yöntemini kullanarak gerektiğinde UserForm'u tekrar göstermenize olanak tanır. UserForm'u gizlemek, onu görünümden kaldırırken ancak verilerini geçici olarak korurken faydalıdır.

Dikkat Edilmesi Gereken Önemli Noktalar

  • “Unload Me” ifadesini kullanırken veya “Me.Hide” kullanarak UserForm’u gizlerken, UserForm’un otomatik olarak kapanmayacağını anlamak önemlidir. UserForm’un otomatik olarak kapanmasını sağlamak için, “Unload Me” ifadesini veya “Me.Hide”ı içeren kodu açıkça tetiklemeniz gerekir.
  • Belirli bir süreden sonra bir VBA Close UserForm'u kapatma işlevine gelince, belirli bir süreden sonra bir VBA Close UserForm'u otomatik olarak kapatmak için yerleşik bir özellik olmadığını belirtmek önemlidir. Zamanlayıcılar veya uygulama olayları kullanmak gibi ek kod mantığını dahil etmeniz gerekir.
  • VBA Close UserForm modülünü kapatmadan önce, istenen değeri global değişkenlerde veya özelliklerde saklayabilirsiniz. VBA kodunuzun diğer bölümlerinde saklanan değere erişmenizi ve onu kullanmanızı sağlar, böylece VBA close UserForm ve return value istenen sonuca ulaşır.

 

Yorum Gönder

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