VBA TürüAdı

Bu makale, VBA TypeName İşlevinin kullanımını gösterecektir.

VBA TipAdı İşlev, bir hücrede depolanan verilerin türünü veya seçilen bir nesnenin türünü (örneğin, bir çalışma sayfası, aralık veya hücre veya bir form üzerindeki bir denetim) belirlemede kullanılır.

Hücredeki Veri Türünü Belirleme

Bir hücrede veri türünün olup olmadığını belirlemek için TypeName işlevini Cells Özelliği ile kullanabiliriz.

123 Alt TestCellDataType()MsgBox "" & Cells(3, 2).Address & " içindeki veri türü " & TypeName(Cells(3, 2).Value)Alt Bitiş

Yukarıdaki kodu aşağıdaki çalışma sayfası ile çalıştırırsak, mesaj kutusu bize hücrede ne tür veri olduğunu söyleyecektir.

Seçilen Nesnenin Tipinin Belirlenmesi

Bir çalışma sayfasında ne tür bir Nesnenin seçildiğini belirlemek için TypeName'i de kullanabiliriz - örneğin bir Aralık veya Grafik.

123 Alt TestSeçimi()MsgBox "Bir "Seçtiniz" & TypeName(Seçim)Alt Bitiş

Veya bir grafik seçersek:

Daha da derine inebilir ve grafikteki nesneleri seçebiliriz ve makro, seçtiklerimizi döndürecektir.

Tüm bunlar, kodun akışını kontrol etmek veya doğru nesne türünün seçildiğinden veya bir hücreye doğru veri türünün girildiğinden emin olmak için test ederek hataların oluşmasını önlemek için VBA projemizi oluştururken en yararlı olabilir. .

Form Denetimlerinde TypeName kullanma

VBA, kullanıcının doldurabileceği ve çeşitli şekillerde kullanılmak üzere verileri koda döndürebileceği etkileşimli formlar oluşturmamızı sağlar. Bir formda kullanılan denetimlerin türünü belirlemek için TypeName operatörünü kullanabiliriz.

Aşağıdaki örnekte, üzerinde çeşitli kontroller bulunan bir kullanıcı formu oluşturdum - birkaç Metin Kutusu, bir Birleşik Kutu, 2 seçenek düğmesi, 2 onay kutusu ve 3 komut düğmesi.

Aşağıdaki kodu kullanarak, formdaki tüm kontroller arasında döngü yaparak formda ne tür kontrollerin olduğunu belirleyebilirim. Ne tür bir kontrolün seçildiğini kontrol etmek için bir VBA IF Deyimi ile kontrol tipine sahip bir mesaj döndürmek için TypeName işlevini kullandım.

123456 Alt WhatControlType()Nesne Olarak Dim ctlİçimdeki Her ctl için.KontrollerMsgBox "Kontrol bir " & TypeName(ctl)Sonraki ctlAlt Bitiş

Bu tür bir kod, kontrolleri etkinleştirmek veya devre dışı bırakmak istiyorsak çok yararlı olabilir. Aşağıdaki kodda form ilk açıldığında seçenek butonları ve onay kutuları devre dışı bırakılmıştır.

123456789101112 Özel Alt UserForm_Initialize()Nesne Olarak Dim ctlİçimdeki Her ctl için.KontrollerTypeName(ctl) = "CheckBox" isectl.Enabled = YanlışElseIf TypeName(ctl) = "OptionButton" Sonractl.Enabled = YanlışBaşkactl.Etkin = DoğruBitirSonraki ctlAlt Bitiş

Seçenek düğmelerini ve onay kutularını etkinleştirmek için, Kontrolleri Etkinleştir düğmesinin arkasına biraz daha kod yazdım.

12345678910 Özel Alt cmdEnable_Click()Nesne Olarak Dim ctlİçimdeki Her ctl için.KontrollerTypeName(ctl) = "CheckBox" isectl.Enabled = ctl.Etkin değilElseIf TypeName(ctl) = "OptionButton" Sonractl.Enabled = ctl.Etkin değilBitirSonraki ctlAlt Bitiş

Bu koddaki işlevsellik, VBA TypeOf Operator kullanılarak da oluşturulabilir.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave