Angenommen, Sie versuchen, ein Schulverwaltungssystem zu erstellen. Hier haben Sie verschiedene Arten von Variablen wie Schülername, Schülerrollennummer, Klasse usw. Eine Schule hat auch Lehrer, daher gibt es Lehrernamen, Lehrerfach, Klassen usw. Ebenso gibt es viele andere Objekte wie , Bibliothekar, Klassen, Schulleiter usw. Jetzt wird es eine chaotische Arbeit sein, verschiedene Variablen für jede Einheit in der Schule zu haben. Wie wäre es mit dem Erstellen eines Datentyps für Schüler, Lehrer, Klassen usw., der Werte speichert, die sich auf sie beziehen. Dazu können wir definierte Datentypen von VBA verwenden.
In diesem Artikel erfahren Sie, wie Sie in VBA einen eigenen Datentyp erstellen können. Sie werden als UDTs von VBA bezeichnet.
Definieren eines benutzerdefinierten Datentyps
Um eine Struktur oder UDTs in VBA zu definieren, verwenden wir den Type___End Type Block. Hier ist die Syntax eines UDT.
Geben Sie Tname_Of_Data_Type var1 als Datentyp ein 'Datentyp kann alles sein, int, array oder sogar UDT var2 als Datentyp Var3() als Datentyp --- VarN() als Datentyp End Type
Um einen benutzerdefinierten Datentyp in VBA zu definieren, beginnen wir also mit dem Typschlüsselwort. Dann schreiben wir den Namen unseres benutzerdefinierten Datentyps. Es ist üblich, T vor dem Namen des Datentyps zu verwenden, damit Sie zwischen vba-Sammlungen und UDTs unterscheiden können.
Die DataTypes können alles sein. Und Integer, String, Variant, ein anderer UDT, Arrays, Sammlungen, alles.
Um Ihren UDT im Programm zu verwenden, deklarieren Sie seine Variable wie jede andere Variable.
Sub UseUDT 'Variable des benutzerdefinierten Datentyps Dim myVar1 als Tname_Of_Data_Type deklarieren Dim myVar2 als Tname_Of_Data_Type End Sub
Einfach. Um nun die Variablen in diesem UDT zu verwenden, verwenden wir den Punktoperator. Verwenden Sie den Namen des Datentyps gefolgt von einem Punkt und dem Namen der darin enthaltenen Variablen.
Sub UseUDT 'Variable des benutzerdefinierten Datentyps deklarieren Dim myVar1 als Tname_Of_Data_Type Dim myVar2 als Tname_Of_Data_Type myVar1.var1="Abcd" myVar2.Var2="xyvz" End Sub
Genug der Theorie, lassen Sie uns zu einem Beispiel springen, um zu sehen, wie es funktioniert.
Erstellen Sie eine Schülervariable, die Informationen zu Schüler speichert
Wir haben also die Aufgabe, einen benutzerdefinierten Datentyp zu erstellen, der Informationen zu Schülern speichert.
Ein Schüler hat einen Vornamen, Nachnamen, Rollennummer, Geburtsdatum, Klasse, Abschnitt, Fächer.
Also lass es uns erstellen.
'Public Student Datentyp erstellt Public Typ Tstudent fName As String 'Für Vorname lName As String 'Für Nachname rNo As Integer 'Für Rollennummer clss Als String 'Für Klassenabschnitt Als String 'Für Abschnittsname subject() As String ' Für Fächer von student End Type 'Diesen Tstudent-Typ in der Unterroutine verwenden Sub StudentsInfo() 'Schülertypvariable erstellen und initialisieren Dim student1 As Tstudent student1.fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 student1.section = "A" ReDim student1.subjects(2) student1.subjects(0) = "physik" student1.subjects(1) = "Mathe" 'Studentendetails drucken. Debug.Print (student1.fName) Debug.Print (student1.lName) Debug.Print (student1.rNo) Debug.Print (student1.clss) Debug.Print (student1.section) Debug.Print (student1.subjects(0) ) Debug.Print (student1.subjects(1)) End Sub
Wenn Sie das obige Sub ausführen, wird das Ergebnis wie unten gezeigt gedruckt:
Manish
Singh 12334 10 EIN Physik Mathematik |
Erstellen eines Arrays von UDTs und Zugreifen auf Elemente
Ebenso können Sie beliebig viele Variablen des Typs Tstudent erstellen. Sie können sogar ein Array vom Typ Tstudent wie jeden anderen Datentyp erstellen.
Public Typ Tstudent fName As String 'Für Vorname lName As String 'Für Nachname rNo As Integer 'Für Rollennummer clss Als String 'Für Klassenabschnitt Als String 'Für Abschnittsname subject() As String 'Für Fächer des Schülers Endtyp ' Erstellen eines Arrays von Tstudents type Sub SchoolInfo() Dim schoolName As String Dim Students() As Tstudent schoolName = "Senior School" ReDim Students(10) For i = 0 To 9 Students(i).fName = "name" & Str( i + 1) Students(i).rNo = i + 1 Next i Debug.Print ("Name : Roll No") For i = 0 To 9 Debug.Print (students(i).fName & " : " & Students( i).rNein) Weiter i End Sub
Wenn Sie diesen Code ausführen, wird dieser im unmittelbaren Fenster gedruckt.
Name: Rollennummer
Name 1 : 1 Name 2 : 2 Name 3: 3 Name 4: 4 Name 5 : 5 Name 6 : 6 Name 7 : 7 Name 8 : 8 Name 9 : 9 Name 10 : 10 |
Im obigen Code definierte zuerst die UDT-Struktur und das Sub (ich werde später erklären, warum). Wir haben gerade ein Array mit einem dim-Schlüsselwort erstellt, wie wir es für jede Variable in VBA tun.
Dann haben wir Redim verwendet, um die Größe von Arrays zu definieren. Danach verwenden wir eine for-Schleife, um das Array zu initialisieren.
Um auf die Elemente der Struktur zuzugreifen, verwenden wir eine weitere for-Schleife. Das ist es.
Warum haben wir UDT über dem Modul deklariert?
Wenn wir einen UDT zuerst in einem Modul außerhalb einer Unterroutine oder Funktion deklarieren, steht er allen Modulen in der Arbeitsmappe zur Verfügung. Das bedeutet, dass, wenn Sie hundert Subs und Funktionen in einem Modul haben, alle Variablen vom Typ Student in ihrem Körper deklarieren können.
Wenn der UDT nicht privat ist, steht er allen Modulen in der Arbeitsmappe zur Verfügung. Wenn eine Struktur (UDT) nur für ein enthaltendes Modul verfügbar sein soll, deklarieren Sie sie als privat.
Private Typ Tstudent fName As String lName As String rNo As Integer clss As Integer Abschnitt Als String subject() As String End Type
Sie können UDT nicht auf Verfahrensebene verwenden. Das bedeutet, dass Sie keinen benutzerdefinierten Datentyp innerhalb einer Unterroutine oder Funktion definieren können.
Verschachtelte benutzerdefinierte Typen
Nehmen wir an, Sie haben UDT ein Auto genannt. Auto hat seine eigenen Elemente. In ähnlicher Weise haben Sie einen UDT namens Fahrrad, der seine eigenen Eigenschaften haben kann.
Nehmen wir nun an, Sie benötigen einen Datentyp namens Fahrzeug. Das Fahrzeug kann ein Auto und ein Fahrrad als Elemente haben. Können wir das machen? Ja, wir können dies tun. Siehe den folgenden Code
Private Type Tcar Sitze Als Integer ac Als Boolescher Typ Als String Farbe Als String Hersteller Als String Dop Als Datum rc_no Als String End Type Private Typ Tbike Sitze Als Integer Typ Als String Farbe Als String Hersteller Als String Dop Als Datum rc_no Als String End Type Private Type Tvehicle number_of_Vehicle As Integer bike As Tbike car As Tcar End Type Sub VehicleVarification() Dim myVehicles As Tvehicle myVehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Racing" myVehicles = "4 .seats " myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub
Hier haben wir drei benutzerdefinierte Datentypen definiert. Das erste ist Tcar, das einige Informationen zu Autos enthält. Zweitens ist Fahrrad, es enthält auch einige Informationen zum Fahrrad.
Der dritte UDT ist Tvehicle. Es enthält eine Variable zum Speichern der Fahrzeuganzahl und zwei Variablen des Typs Tcar und Tbike.
Privater Typ Fernseher
number_of_Vehicle As Integer
Fahrrad als Tbike
Auto als Tcar
Endtyp
Um auf Variablen von Tcar und Tbike zuzugreifen, können wir den Datentyp Tvehicle verwenden. Im Sub haben wir nur eine Variable vom Typ Tvehicle als myVehicles definiert. Wenn wir diese Variable erstellen, erstellt VBA auch Variablen von Tcar und Tbike.
Um Variablen von Tcar und Tcar zu initialisieren und darauf zuzugreifen, können wir die Variable myVehicle verwenden. Wie Sie im Code sehen können.
myVehicles.number_of_Vehicle = 2
myVehicles.bike.seats = 1
myVehicles.bike.typ = "Racing"
myVehicles.car.seats = "4"
myVehicles.car.ac = True
Wenn wir das U-Boot ausführen, tritt das Ergebnis auf.
Diese Funktion erhöht die Leistung der VBA-Programmierung exponentiell. Sie können Ihren Datentyp wie reale Entitäten strukturieren. Sie können Beziehungen zwischen Datentypen erstellen, die in einem großen Projekt nützlich sein können.
Also ja, Leute, so können Sie einen benutzerdefinierten Datentyp oder eine benutzerdefinierte Struktur in VBA erstellen und verwenden. Ich hoffe, ich konnte es erklären. Wenn Sie Fragen zu diesem Artikel oder zu anderen VBA-bezogenen Fragen haben, fragen Sie mich im Kommentarbereich unten. Ich freue mich sehr, von Ihnen zu hören.
VBA-Variablen in Excel| VBA steht für Visual Basic für Applikationen. Es ist eine Programmiersprache von Microsoft. Es wird mit Microsoft Office-Anwendungen wie MSExcel, MS-Word und MS-Access verwendet, während VBA-Variablen spezifische Schlüsselwörter sind.
Gültigkeitsbereich von Excel-VBA-Variablen| In allen Programmiersprachen haben wir Variablenzugriffsspezifizierer, die definieren, von wo aus auf eine definierte Variable zugegriffen werden kann. Excel VBA ist keine Ausnahme. Auch VBA hat Bereichsspezifizierer.
ByRef- und ByVal-Argumente | Wenn ein Argument als ByRef-Argument an eine andere Unterfunktion oder Funktion übergeben wird, wird die Referenz der tatsächlichen Variablen gesendet. Alle Änderungen, die an der Kopie der Variablen vorgenommen werden, spiegeln sich im ursprünglichen Argument wider.
Löschen Sie Blätter ohne Bestätigungsaufforderung mit VBA in Microsoft Excel | Da Sie Blätter mit VBA löschen, wissen Sie, was Sie tun. Sie möchten Excel anweisen, diese Warnung nicht anzuzeigen und das verdammte Blatt zu löschen.
Hinzufügen und Speichern einer neuen Arbeitsmappe mit VBA in Microsoft Excel 2016| In diesem Code haben wir zuerst einen Verweis auf ein Arbeitsmappenobjekt erstellt. Und dann haben wir es mit einem neuen Arbeitsmappenobjekt initialisiert. Der Vorteil dieses Ansatzes besteht darin, dass Sie Vorgänge in dieser neuen Arbeitsmappe problemlos ausführen können. Wie Speichern, Schließen, Löschen usw.
Anzeigen einer Nachricht in der Excel VBA-Statusleiste| Die Statusleiste in Excel kann als Codemonitor verwendet werden. Wenn Ihr VBA-Code lang ist und Sie mehrere Aufgaben mit VBA ausführen, deaktivieren Sie häufig die Bildschirmaktualisierung, damit dieser Bildschirm nicht flackert.
Deaktivieren Sie Warnmeldungen mit VBA in Microsoft Excel 2016| Dieser Code deaktiviert nicht nur VBA-Warnungen, sondern erhöht auch die Zeiteffizienz des Codes. Mal sehen wie.
Populäre Artikel:
50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Tastenkombinationen arbeiten Sie noch schneller mit Excel.
Die SVERWEIS-Funktion in Excel | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, die verwendet wird, um Werte aus verschiedenen Bereichen und Blättern zu suchen.
ZÄHLENWENN in Excel 2016 | Zählen Sie Werte mit Bedingungen mit dieser erstaunlichen Funktion. Sie müssen Ihre Daten nicht filtern, um bestimmte Werte zu zählen. Die Countif-Funktion ist unerlässlich, um Ihr Dashboard vorzubereiten.
So verwenden Sie die SUMIF-Funktion in Excel | Dies ist eine weitere wesentliche Funktion des Dashboards. Dies hilft Ihnen, Werte unter bestimmten Bedingungen zusammenzufassen.