Moduli di classe VBA e come usarli

Anonim

Che cos'è una classe in VBA?

Una classe è un progetto per creare un oggetto. Una classe stessa non fa altro che utilizzare le classi per creare più oggetti identici che possono eseguire operazioni o possono essere utilizzati come risorsa dati.

Nella vita reale, il modello (design e funzionalità) di un'auto è una classe e l'auto stessa è un oggetto di quella classe. Nella classe, definiamo cosa contiene l'auto e cosa può fare. Ad esempio, un'auto ha 4 ruote, 5 marce, volante, ecc. Questi sono attributi/proprietà. Definiamo anche cosa può fare un'auto, come andare avanti, indietro, girare, ecc. Queste sono funzioni della classe auto. Un oggetto auto creato utilizzando la classe auto avrà tutte queste proprietà. Se definisci un'auto che ha 5 ruote, un'auto creata usando questa classe avrà 5 ruote. Hai capito.

Basta con la teoria, ora vediamo come è possibile utilizzare un modulo di classe in VBA.

Utilizzo del modulo di classe VBA di Excel

Mentre lavori in VBA, devi aver utilizzato Range ("A1"). select. L'intervallo è una classe predefinita in VBA. La selezione è una delle funzioni della classe Range che seleziona l'intervallo specificato. Allo stesso modo, Debug è una classe in VBA e print e assert sono i suoi metodi. Fogli di lavoro, cartelle di lavoro, intervallo, ecc. Sono tutte classi VBA che utilizziamo nei nostri sottotitoli.

Crea la tua classe

Innanzitutto, dobbiamo aggiungere un modulo di classe in VBA

Premi la combinazione di tasti ALT+F11 per aprire l'editor VBA di Excel.

    • Fare clic con il pulsante destro del mouse su Esplora progetti. Sposta il cursore su Inserisci--> Modulo classe. Cliccaci sopra. La stessa cosa può essere fatta dal menu Inserisci.

    • La classe verrà aggiunta alla cartella "Modulo classe". Il nome predefinito è come class1, class2 e così via. È possibile modificare il nome della classe dalla finestra delle proprietà. Chiamiamo la nostra classe "Benvenuto".

  • Ora creiamo aggiungiamo alcuni attributi alla nostra classe. Dal momento che voglio che questi attributi siano disponibili al pubblico, ho l'uso operatore di accessibilità pubblico.
    Nome pubblico As String Public var1 As Integer Public var2 As Integer 
  • Ora aggiungiamo una funzione a questa classe. Voglio una funzione che dica Ciao! all'utente. Per farlo, aggiungi un sottotitolo e chiamalo sayHiTo.
    Sub sayHiTo(user As String) name = user MsgBox ("Ciao! " & nome) End Sub 
  • Ora usiamo la classe in un modulo. Inserisci un nuovo modulo se non ne hai. Scrivi un sottotitolo. Ho chiamato il mio sottotest.
    Sub test() Dim wc As New Welcome 'Oggetto Welcome dichiarato e inizializzato wc.sayHiTo ("Jack") 'usava il metodo sayHiTo dell'oggetto Welcome. Fine sottotitolo 
  • Esegui questo test secondario usando il tasto F5. Verrà visualizzato "Ciao! Jack" sulla cartella di lavoro di Excel.

Come funziona?

In sub Test, abbiamo creato un oggetto "wc" di Accoglienza classe. Un oggetto viene creato in VBA in due metodi. eseguiamo il codice, Test sub crea un oggetto wc della classe Welcome. Questo oggetto ha tutte le proprietà della classe Welcome. Usiamo il metodo sayHiTo della classe Welcome per salutare l'utente.

Creazione di oggetti in Excel VBA

    1. Creazione istantanea

Nella creazione istantanea, creiamo un oggetto mentre dichiariamo l'oggetto con la chiave "nuovo". Nel nostro esempio sopra, abbiamo usato la creazione istantanea.

Dim wc come nuovo benvenuto

2. Creazione ritardata
Nella creazione ritardata, prima dichiariamo solo l'oggetto. Non usiamo la parola chiave "nuovo". Per poter utilizzare l'oggetto, dobbiamo inizializzarlo con la parola chiave "new".

Sub test() Dim wc As Welcome 'wc.sayHiTo ("Jack") 'genera un errore poiché wc non è ancora inizializzato 'inizializzazione oggetto Set wc = New Welcome wc.sayHiTo ("Cory") 'funzionerà. Fine sottotitolo 

Accesso alle variabili di una classe

Negli esempi precedenti, abbiamo utilizzato variabili pubbliche per la classe ma è sbagliato esercitarsi. Dovremmo evitare di usare variabili pubbliche in una classe. Ora la domanda è come accedere alle variabili della classe. In precedenza, abbiamo utilizzato la subroutine per accedere al nome, ma le classi VBA forniscono proprietà che vengono utilizzate per aggiornare e recuperare sistematicamente i valori delle variabili private della classe. Le proprietà sono più eleganti di sub o funzione per l'aggiornamento e l'accesso alle variabili private. Vediamo come.

Sintassi della proprietà di classe

Nome privato As String Private var1 As Integer Private var2 As Integer Immobile affittato MyName(nm As String) name = nm End Property Proprietà Get MyName() As String MyName = nome Fine proprietà 

Usiamoli in un modulo.

Sub test() 'creazione dell'oggetto classe Dim wc As New Welcome Dim wc1 As New Welcome 'usando le proprietà wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. Il mio nome End Sub 

Quando eseguirai questo sottotitolo di prova, otterrai due nomi stampati per due oggetti della classe "Benvenuto".

In che modo le proprietà sono diverse da sub e funzioni

Nell'esempio sopra, si noti che abbiamo utilizzato la proprietà MyName come variabile. Abbiamo inizializzato il valore della variabile "Nome" semplicemente scrivendo wc.MyName="assdf". Questa riga di comando ha chiamato la proprietà denominataProprietà Ottieni MyName() come stringa. Non abbiamo passato alcun valore tra parentesi come abbiamo fatto all'inizio.

Allo stesso modo, per stampare i valori della variabile "Nome" abbiamo usato il comandoDebug.Print wc.MyName. Non è semplice come l'inizializzazione di una variabile normale? L'unica differenza è che puoi fare molto nelproprietà segmento. Metti la convalida dei dati, il calcolo, la comunicazione, ecc. E l'utente vedrà solo il risultato.

Un'altra differenza è che possiamo usare lo stesso nome della proprietà per permettere e ottenereparte. Questo lo rende più facile e meno confuso.

Quindi sì ragazzi, questo era un semplice esempio di un modulo di classe in Excel VBA. Questa è solo la punta dell'iceberg, c'è molto succo in questo argomento che esploreremo negli articoli successivi. Esploreremo ciascuno di essi uno per uno nel modo più semplice possibile. Spero di essere stato abbastanza esplicativo da farti capire questo. Se hai dei dubbi su questo argomento o su qualsiasi altro argomento VBA excel, menzionalo nella sezione commenti qui sotto.

Importa un modulo da un file utilizzando VBA in Microsoft Excel | Scopri come importare l'intero modulo da un altro file utilizzando VBA.

Crea un nuovo modulo usando VBA in Microsoft Excel | Puoi usare un modulo per creare un altro modello in VBA. Questo può aiutarti a ridurre al minimo il lavoro aggiuntivo.

Aggiungere una procedura a un modulo utilizzando VBA in Microsoft Excel | Per aggiungere automaticamente le procedure ai moduli, utilizzare questo codice VBA.

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 un valore specifico. 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.