VBA'da Yapılar Nasıl Kullanılır? Kullanıcı Tanımlı Veri Tipleri

İçindekiler:

Anonim

Diyelim ki bir okul yönetim sistemi oluşturmaya çalışıyorsunuz. Burada öğrenci adı, öğrenci yoklama numarası, sınıf vb. gibi farklı değişkenlere sahip olacaksınız. Bir okulun da öğretmenleri vardır, dolayısıyla öğretmen adları, öğretmen konusu, sınıflar vb. gibi birçok başka nesne olacaktır. , kütüphaneci, sınıflar, prensip vs. Artık okulda her varlık için farklı değişkenlere sahip olmak dağınık bir iş olacak. Kendileriyle ilgili değerleri depolayan bir öğrenci, öğretmen, sınıf vb. veri türü oluşturmaya ne dersiniz? Bunun için tanımlanmış VBA veri türlerini kullanabiliriz.

Bu yazıda, VBA'da kendi veri türünüzü nasıl oluşturabileceğinizi öğreneceğiz. VBA'nın UDT'leri olarak adlandırılırlar.

Kullanıcı Tanımlı Veri Türü Tanımlama

VBA'da bir yapı veya UDT tanımlamak için Type___End Type bloğunu kullanırız. İşte bir UDT'nin sözdizimi.

Veri türü olarak Tname_Of_Data_Type var1 yazın 'veri türü herhangi bir şey, int, dizi olabilir, hatta veri türü olarak UDT var2 olabilir veri türü olarak Var3() --- veri türü olarak VarN() Bitiş Türü 

Bu nedenle, VBA'da özel bir veri türü tanımlamak için Type Keyword ile başlıyoruz. Ardından özel veri türümüzün adını yazıyoruz. Vba koleksiyonları ve UDT'ler arasında ayrım yapabilmeniz için T'yi Veri Türü Adından önce kullanmak gelenekseldir.

DataType'lar herhangi bir şey olabilir. Ve Tamsayı, Dize, Varyant, başka bir UDT, Diziler, koleksiyonlar, herhangi bir şey.

UDT'nizi programda kullanmak için, değişkenini diğer herhangi bir değişken gibi bildirin.

Sub UseUDT 'Kullanıcı tanımlı veri türünün değişkeni bildiriliyor Dim myVar1 as Tname_Of_Data_Type Dim myVar2 as Tname_Of_Data_Type End Sub 

Basit. Şimdi bu UDT içindeki değişkenleri kullanmak için nokta operatörünü kullanıyoruz. Veri türünün adını ve ardından bir nokta ve içindeki değişkenin adını kullanın.

Sub UseUDT 'Kullanıcı tanımlı veri türünün değişkeni bildiriliyor Dim myVar1 as Tname_Of_Data_Type olarak Dim myVar2 as Tname_Of_Data_Type myVar1.var1="Abcd" myVar2.Var2="xyvz" End Sub 

Teori bu kadar yeter, nasıl çalıştığını görmek için bir örneğe geçelim.

Öğrenciyle İlgili Bilgileri Depolayan Bir Öğrenci Değişkeni Oluşturun

Bu nedenle, öğrencilerle ilgili bilgileri depolayan kullanıcı tanımlı bir veri türü oluşturma görevimiz var.

Bir öğrencinin adı, soyadı, kütük numarası, doğum tarihi, sınıfı, bölümü, konuları vardır.

Öyleyse yaratalım.

'Genel Öğrenci Veri Türü Oluşturuldu Public Type Tstudent fName As String 'For First Name lName As String 'Soyadı için rNo As Integer 'Roll Number clss As string 'Sınıf bölümü için As String 'Bölüm Adı konuları için() As String ' Öğrenci Son Türü Konuları için 'Bu Tstudent türünü alt programda kullan Sub StudentsInfo() 'Öğrenci türü değişkeni oluşturma ve başlatma Dim öğrenci1 As Tstudent öğrenci1.fAd = "Manish" öğrenci1.lAd = "Singh" öğrenci1.rNo = 12334 öğrenci1.clss = 10 öğrenci1.section = "A" ReDim Student1.subjects(2) Student1.subjects(0) = "fizik" Student1.subjects(1) = "Matematik" 'Öğrenci ayrıntılarını yazdırma. Debug.Print (öğrenci1.fName) Debug.Print (öğrenci1.lName) Debug.Print (öğrenci1.rNo) Hata Ayıklama.Yazdır (öğrenci1.clss) Hata Ayıklama.Yazdır (öğrenci1.bölüm) Hata Ayıklama.Yazdır (öğrenci1.dersler(0) ) Debug.Print (student1.subjects(1)) End Sub 

Yukarıdaki sub'ı çalıştırdığınızda, sonucu aşağıda gösterildiği gibi yazdıracaktır:

erkeksi

Singh

12334

10

A

fizik

Matematik

UDT Dizisi Oluşturma ve Öğelere Erişme

Benzer şekilde, ihtiyacınız olan Tstudent türünde değişkenler oluşturabilirsiniz. Diğer veri türleri gibi bir Tstudent türü dizisi bile oluşturabilirsiniz.

Public Type Tstudent fName As String 'First Name As String As 'Soyadı için rNo As Integer' Roll Number için clss As string 'Sınıf bölümü için As String 'Bölüm Adı konuları için() As String 'Öğrencinin Konuları İçin Son Tipi' Tstudents türünde bir dizi oluşturma Sub SchoolInfo() Dim schoolName As String Dim öğrenciler() As Tstudent schoolName = "Senior School" ReDim öğrenciler(10) For i = 0 ila 9 arası öğrenci(i).fName = "name" & Str( i + 1) öğrenciler(i).rNo = i + 1 Sonraki i Debug.Print ("Ad : Roll No") için i = 0 ila 9 Debug.Print (students(i).fName & " : " & öğrenciler( i).rHayır) Sonraki i End Sub 

Bu kodu çalıştırdığınızda, bu hemen pencerede yazdırılacaktır.

İsim : Rulo No

isim 1: 1

isim 2: 2

isim 3: 3

isim 4 : 4

isim 5 : 5

isim 6 : 6

isim 7 : 7

isim 8 : 8

isim 9 : 9

isim 10 : 10

Yukarıdaki kodda, önce UDT yapısı ve alt tanımlı (nedenini daha sonra açıklayacağım). VBA'daki herhangi bir değişken için yaptığımız gibi dim anahtar sözcüğünü kullanarak bir dizi oluşturduk.

Sonra dizilerin boyutunu tanımlamak için Redim'i kullandık. Daha sonra diziyi başlatmak için bir for döngüsü kullanırız.

Yapının öğelerine erişmek için başka bir for döngüsü kullanırız. Bu kadar.

UDT'yi Neden Modülün Başında Bildirdik?

Bir UDT'yi önce bir modülde, herhangi bir alt program veya fonksiyonun dışında bildirirsek, çalışma kitabındaki tüm modüller tarafından kullanılabilir. Bu, bir modülde yüzlerce alt öğeniz ve işleviniz varsa, hepsinin kendi gövdelerinde Öğrenci tipi değişkenler bildirebileceği anlamına gelir.

UDT özel değilse, çalışma kitabındaki tüm modüller tarafından kullanılabilir olacaktır. Bir yapının (UDT) yalnızca içeren bir modül için kullanılabilir olmasını istiyorsanız, onu özel olarak bildirin.

Özel Tip Tstudent fName As String lName As String rNo As Integer clss As Integer bölümü As String konuları() As String End Type 

UDT'ye prosedürel düzeyde sahip olamazsınız. Bu, bir alt program veya fonksiyon içinde kullanıcı tanımlı bir veri tipi tanımlayamayacağınız anlamına gelir.

İç İçe Kullanıcı Tanımlı Türler

Diyelim ki UDT'ye araba denir. Arabanın kendi unsurları vardır. Benzer şekilde, kendi özelliklerine sahip olabilen bisiklet adı verilen bir UDT'niz var.

Şimdi diyelim ki araç adında bir veri tipine ihtiyacınız var. Araç, unsurları olarak bir araba ve bisiklete sahip olabilir. Bunu yapabiliriz? Evet bunu yapabiliriz. Aşağıdaki koda bakın

Özel Tip Araba koltukları Tamsayı ac As Boole tipi As Dizi rengi As Dizi üreticisi As Dizi Dop As Tarih rc_no As Dizi Sonu Tipi Özel Tip Tbike koltukları Tam Sayı tipi As Dizi rengi As Dizi Dop As Tarih rc_no As Dizi Sonu Türü Özel Tip Tvehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Yarış" myVehicles.car.seats = "4 Olarak myVehicles'ı Dim Tvehicles.number_of_Vehicle = "4 " myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Burada üç adet kullanıcı tanımlı veri tipi tanımladık. Birincisi, arabalarla ilgili bazı bilgileri içeren Tcar. İkincisi bisiklet, bisiklet hakkında da bazı bilgiler içeriyor.

Üçüncü UDT, Tvehicle'dır. Araç sayısını depolamak için bir değişken ve Tcar ve Tbike tipinde iki değişken içerir.

Özel Tip Araç

tamsayı olarak number_of_Vehicle

bisiklet olarak Tbike

araba olarak Tcar

Bitiş Türü

Tcar ve Tbike değişkenlerine erişmek için Tvehicle veri türünü kullanabiliriz. Altta, myVehicles olarak Tvehicle türünde sadece bir değişken tanımladık. Bu değişkeni oluşturduğumuzda VBA, Tcar ve Tbike değişkenlerini de oluşturur.

Tcar ve Tcar değişkenlerini başlatmak ve bunlara erişmek için myVehicle değişkenini kullanabiliriz. Kodda gördüğünüz gibi.

myVehicles.number_of_Vehicle = 2

myVehicles.bike.seats = 1

myVehicles.bike.typ = "Yarış"

myVehicles.car.seats = "4"

myVehicles.car.ac = Doğru

Sub'ı çalıştırdığımızda sonuç bu şekilde oluyor.

Bu özellik, VBA programlamanın gücünü gerçekten katlanarak artırır. Veri türünüzü gerçek dünya varlıkları gibi yapılandırabilirsiniz. Büyük bir projede faydalı olabilecek veri türleri arasında ilişkiler oluşturabilirsiniz.

Evet arkadaşlar, VBA'da kullanıcı tanımlı bir veri türü veya yapısı bu şekilde oluşturup kullanabilirsiniz. Umarım anlatabilmişimdir. Bu makaleyle veya VBA ile ilgili diğer sorularınızla ilgili herhangi bir sorunuz varsa, aşağıdaki yorumlar bölümünde bana sorun. Sizden haber almaktan gerçekten mutlu olacağım.

Excel'de VBA değişkenleri| VBA, Visual Basic for Applications anlamına gelir. Microsoft'tan bir programlama dilidir. MSExcel, MS-Word ve MS-Access gibi Microsoft Office uygulamalarıyla kullanılırken VBA değişkenleri belirli anahtar kelimelerdir.

Excel VBA Değişken Kapsamı| Tüm programlama dillerinde, tanımlanmış bir değişkene nereden erişilebileceğini tanımlayan değişken erişim belirteçlerine sahibiz. Excel VBA İstisna değildir. VBA'nın da kapsam belirleyicileri vardır.

ByRef ve ByVal Argümanları | Bir argüman farklı bir alt veya fonksiyona ByRef argümanı olarak iletildiğinde, gerçek değişkenin referansı gönderilir. Değişkenin kopyasında yapılan herhangi bir değişiklik orijinal argümana yansır.

Microsoft Excel'de VBA kullanarak onay istemleri olmadan sayfaları silin | VBA kullanarak sayfaları sildiğiniz için ne yaptığınızı biliyorsunuz. Excel'e bu uyarıyı göstermemesini ve lanet olası sayfayı silmesini söylemek istersiniz.

Microsoft Excel 2016'da VBA Kullanarak Yeni Çalışma Kitabı Ekleme ve Kaydetme| Bu kodda, önce bir çalışma kitabı nesnesine bir başvuru oluşturduk. Sonra onu yeni bir çalışma kitabı nesnesiyle başlattık. Bu yaklaşımın yararı, bu yeni çalışma kitabında işlemleri kolayca yapabilmenizdir. Kaydetme, kapatma, silme vb.

Excel VBA Durum Çubuğunda Bir Mesaj Görüntüle| Excel'deki durum çubuğu, kod izleyicisi olarak kullanılabilir. VBA kodunuz uzun olduğunda ve VBA'yı kullanarak birkaç görev yaptığınızda, ekranın titrediğini görmemek için genellikle ekran güncellemesini devre dışı bırakırsınız.

Microsoft Excel 2016'da VBA Kullanarak Uyarı Mesajlarını Kapatın| Bu kod yalnızca VBA uyarılarını devre dışı bırakmakla kalmaz, aynı zamanda kodun zaman verimliliğini de artırır. Nasıl olduğunu görelim.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli değerleri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.