Come utilizzare le strutture in VBA? I tipi di dati definiti dall'utente

Sommario:

Anonim

Supponiamo che tu stia cercando di creare un sistema di gestione della scuola. Qui, avrai diversi tipi di variabili come il nome dello studente, il numero di matricola dello studente, la classe, ecc. Una scuola ha anche insegnanti, quindi ci saranno i nomi degli insegnanti, la materia degli insegnanti, le classi, ecc. Allo stesso modo, ci saranno molti altri oggetti come , bibliotecario, classi, principio ecc. Ora avere variabili diverse per ogni entità a scuola sarà un lavoro disordinato. Che ne dici di creare un tipo di dati di studente, insegnante, classi, ecc. che memorizzi i valori ad essi correlati. Per questo possiamo usare tipi di dati definiti di VBA.

In questo articolo, impareremo come creare il tuo tipo di dati in VBA. Sono indicati come UDT di VBA.

Definizione di un tipo di dati definito dall'utente

Per definire una struttura o UDT in VBA utilizziamo il blocco Type___End Type. Ecco la sintassi di un UDT.

Digita Tname_Of_Data_Type var1 come datatype 'datatype può essere qualsiasi cosa, int, array o anche UDT var2 come datatype Var3() come datatype --- VarN() come datatype End Type 

Quindi, per definire un tipo di dati personalizzato in VBA, iniziamo con Type Keyword. Quindi scriviamo il nome del nostro tipo di dati personalizzato. È convenzione utilizzare T prima del nome del tipo di dati in modo da poter distinguere tra raccolte vba e UDT.

I DataType possono essere qualsiasi cosa. E Integer, String, Variant, un altro UDT, Array, raccolte, qualsiasi cosa.

Per utilizzare il tuo UDT nel programma, dichiara la sua variabile come qualsiasi altra variabile.

Sub UseUDT 'Dichiarazione della variabile del tipo di dati definito dall'utente Dim myVar1 as Tname_Of_Data_Type Dim myVar2 as Tname_Of_Data_Type End Sub 

Semplice. Ora per usare le variabili all'interno di questo UDT usiamo l'operatore punto. Usa il nome del tipo di dati seguito da un punto e il nome della variabile all'interno.

Sub UseUDT 'Dichiarazione della variabile del tipo di dati definito dall'utente Dim myVar1 as Tname_Of_Data_Type Dim myVar2 as Tname_Of_Data_Type myVar1.var1="Abcd" myVar2.Var2="xyvz" End Sub 

Basta con la teoria, passiamo a un esempio per vedere come funziona.

Crea una variabile studente che memorizzi le informazioni relative allo studente

Quindi abbiamo il compito di creare un tipo di dati definito dall'utente che memorizzi le informazioni relative agli studenti.

Uno studente ha nome, cognome, numero di matricola, data di nascita, classe, sezione, materie.

Quindi creiamolo.

'Creato uno Studente Pubblico Tipo Dati Pubblico Tipo Tstudent fName As String 'Per Nome lName As String 'Per Cognome rNo As Integer 'Per Roll Number clss As stringa 'Per Sezione Class As String 'Per Nome Sezione Subject() As String ' Per le materie dello studente End Type 'Usa questo tipo Tstudent nella subroutine Sub StudentsInfo() 'Creazione e inizializzazione della variabile tipo studente 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) = "fisica" student1.subjects(1) = "Math" 'Stampa i dettagli dello studente. 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 

Quando esegui il sub sopra, stamperà il risultato come mostrato di seguito:

Manish

Singh

12334

10

UN

fisica

Matematica

Creazione di un array di UDT e accesso agli elementi

Allo stesso modo puoi creare tutte le variabili di tipo Tstudent di cui hai bisogno. Puoi persino creare un array di tipo Tstudent come qualsiasi altro tipo di dati.

Public Type Tstudent fName As String 'Per Nome lName As String 'Per Cognome rNo As Integer 'Per Roll Number clss As string 'Per Sezione Class As String 'Per Nome Sezione Subject() As String 'Per Materie di Student End Type ' Creazione di un array di Tstudents digitare Sub SchoolInfo() Dim schoolName As String Dim student() As Tstudent schoolName = "Senior School" ReDim student(10) For i = 0 a 9 studenti(i).fName = "name" & Str( i + 1) studenti(i).rNo = i + 1 Avanti i Debug.Print ("Nome: Roll No") For i = da 0 a 9 Debug.Print (studenti(i).fNome & " : " & studenti( i).rNo) Avanti i End Sub 

Quando esegui questo codice, questo verrà stampato nella finestra immediata.

Nome : Roll No

nome 1 : 1

nome 2 : 2

nome 3 : 3

nome 4 : 4

nome 5 : 5

nome 6 : 6

nome 7 : 7

nome 8 : 8

nome 9 : 9

nome 10 : 10

Nel codice sopra, prima definita la struttura UDT e la sub (spiegherò più avanti perché). Abbiamo appena creato un array usando una parola chiave dim come facciamo per qualsiasi variabile in VBA.

Quindi abbiamo usato Redim per definire la dimensione degli array. Successivamente usiamo un ciclo for per inizializzare l'array.

Per accedere agli elementi della struttura usiamo un altro ciclo for. Questo è tutto.

Perché abbiamo dichiarato UDT in cima al modulo?

Se dichiariamo prima un UDT in un modulo, al di fuori di qualsiasi subroutine o funzione, è disponibile per tutti i moduli nella cartella di lavoro. Significa che se hai un centinaio di sub e funzioni in un modulo, tutti possono dichiarare variabili di tipo Student nel loro corpo.

Se l'UDT non è privato, sarà disponibile per tutti i moduli nella cartella di lavoro. Se vuoi che una struttura (UDT) sia disponibile solo per un modulo contenitore, dichiarala privata.

Private Type Tstudent fName As String lName As String rNo As Integer clss As Integer sezione As String topics() As String End Type 

Non puoi avere UDT a livello procedurale. Significa che non è possibile definire un tipo di dati definito dall'utente all'interno di una subroutine o di una funzione.

Tipi nidificati definiti dall'utente

Diciamo che l'UDT ha chiamato un'auto. L'auto ha i suoi elementi. Allo stesso modo hai un UDT chiamato bici che può avere le sue proprietà.

Ora supponiamo che tu abbia bisogno di un tipo di dati chiamato veicolo. Il veicolo può avere come elementi un'auto e una bicicletta. Possiamo farlo? Sì, possiamo farlo. Vedi il codice qui sotto

Private Type Tcar seat As Integer ac As Boolean typ As String color As String produttore As String Dop As Date rc_no As String End Type Private Type Tbike seat As Integer typ As String color As String produttore As String Dop As Date rc_no As String End Type Private Tipo 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.car.seats = "4 " myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub 

Qui, abbiamo definito tre tipi di dati definiti dall'utente. Il primo è Tcar che contiene alcune informazioni relative alle auto. Il secondo è la bici, contiene anche alcune informazioni sulla bici.

Il terzo UDT è Tvehicle. Contiene una variabile per memorizzare il numero di veicoli e due variabili di tipo Tcar e Tbike.

Veicolo di tipo privato

number_of_Vehicle As Integer

bici come Tbike

auto come Tcar

Tipo di fine

Per accedere alle variabili di Tcar e Tbike possiamo usare il tipo di dati Tvehicle. Nel sub, abbiamo definito una sola variabile di tipo Tvehicle come myVehicles. Quando creiamo questa variabile, VBA crea anche variabili di Tcar e Tbike.

Per inizializzare e accedere alle variabili di Tcar e Tcar, possiamo usare la variabile myVehicle. Come puoi vedere nel codice.

myVehicles.number_of_Vehicle = 2

myVehicles.bike.seats = 1

myVehicles.bike.typ = "Corsa"

myVehicles.car.seats = "4"

myVehicles.car.ac = Vero

Quando eseguiamo il sub, questo è il modo in cui si verifica il risultato.

Questa funzione aumenta davvero la potenza della programmazione VBA in modo esponenziale. Puoi strutturare il tuo tipo di dati come entità del mondo reale. Puoi creare relazioni tra i tipi di dati che possono essere utili in un grande progetto.

Quindi sì ragazzi, ecco come è possibile creare e utilizzare un tipo di dati o una struttura definiti dall'utente in VBA. Spero di essere riuscito a spiegarlo. Se hai domande su questo articolo o su qualsiasi altra domanda relativa a VBA, chiedimi nella sezione commenti qui sotto. Sarò davvero felice di sentirti.

Variabili VBA in Excel| VBA sta per Visual Basic for Applications. È un linguaggio di programmazione di Microsoft. Viene utilizzato con applicazioni Microsoft Office come MSExcel, MS-Word e MS-Access mentre le variabili VBA sono parole chiave specifiche.

Ambito variabile VBA di Excel| In tutti i linguaggi di programmazione, abbiamo identificatori di accesso alle variabili che definiscono da dove è possibile accedere a una variabile definita. Excel VBA non fa eccezione. Anche VBA ha identificatori di ambito.

Argomenti ByRef e ByVal | Quando un argomento viene passato come argomento ByRef a una sub o funzione diversa, viene inviato il riferimento della variabile effettiva. Qualsiasi modifica apportata alla copia della variabile si rifletterà nell'argomento originale.

Elimina i fogli senza richieste di conferma utilizzando VBA in Microsoft Excel | Poiché stai eliminando i fogli utilizzando VBA, sai cosa stai facendo. Vorresti dire a Excel di non mostrare questo avviso ed eliminare il dannato foglio.

Aggiungi e salva una nuova cartella di lavoro utilizzando VBA in Microsoft Excel 2016| In questo codice, abbiamo prima creato un riferimento a un oggetto cartella di lavoro. E poi lo abbiamo inizializzato con un nuovo oggetto cartella di lavoro. Il vantaggio di questo approccio è che puoi eseguire facilmente le operazioni su questa nuova cartella di lavoro. Come salvare, chiudere, eliminare, ecc

Visualizza un messaggio sulla barra di stato VBA di Excel| La barra di stato in Excel può essere utilizzata come monitor del codice. Quando il tuo codice VBA è lungo e svolgi diverse attività utilizzando VBA, spesso disabiliti l'aggiornamento dello schermo in modo da non vedere lo sfarfallio dello schermo.

Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016| Questo codice non solo disabilita gli avvisi VBA, ma aumenta anche l'efficienza temporale del codice. Vediamo come.

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.

CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare valori specifici. La funzione Countif è essenziale per preparare la tua dashboard.

Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.