image

Cos’è una classe in VBA?

Una classe è un modello per un oggetto da creare. Una classe stessa non fa altro che usando le classi è possibile creare più oggetti identici che possono eseguire operazioni o possono essere utilizzati come risorsa di 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, svoltare, ecc. Queste sono funzioni della classe dell’auto. Un oggetto car creato utilizzando la classe car, 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 puoi usare un modulo di classe in VBA.

Utilizzo del modulo di classe VBA di Excel

Mentre si lavora in VBA, è necessario utilizzare Range (“A1”). Selezionare. 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.

image

Crea la tua classe

Innanzitutto, dobbiamo aggiungere un modulo di classe in VBA Premere la combinazione di tasti ALT + F11 per aprire l’editor VBA di Excel.

  • Fare clic con il pulsante destro del mouse su Esplora progetti. Spostare il cursore su Inserisci → Modulo di classe. Cliccaci sopra. La stessa cosa può essere eseguita dal menu Inserisci.

image

  • La classe verrà aggiunta alla cartella “Modulo di 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”.

image

Ora creiamo e aggiungiamo alcuni attributi alla nostra classe. Poiché desidero che questi attributi siano disponibili al pubblico, utilizzo l’operatore di accessibilità * public.

Public name 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 ("Hi! " & name)

End Sub
  • Ora usiamo class in un modulo. Inserisci un nuovo modulo se non ne hai. Scrivi un sottotitolo. Ho chiamato il mio sub Test.

Sub test()

Dim wc As New Welcome 'Declared and initialized Welcome object

wc.sayHiTo ("Jack") 'used sayHiTo method of Welcome Object.

End Sub
  • Esegui questo test secondario utilizzando il tasto F5. Verrà chiesto “Ciao! Jack” sulla cartella di lavoro di Excel.

image

Come funziona?

In sub Test, abbiamo creato un oggetto “wc” di Welcomeclass. 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 dichiarando l’oggetto con il tasto “nuovo”. Nel nostro esempio sopra, abbiamo usato la creazione istantanea.

Dim wc As New Welcome

{vuoto} 2. Creazione ritardata Nella creazione ritardata, prima dichiariamo solo l’oggetto. Non usiamo la parola chiave “nuova”. Per poter utilizzare l’oggetto, dobbiamo inizializzarlo con la parola chiave “new”.

Sub test()

Dim wc As Welcome

'wc.sayHiTo ("Jack") 'generates error since wc is not initialised yet

'initialising object

Set wc = New Welcome

wc.sayHiTo ("Cory") 'this will work.

End Sub

Accesso alle variabili di una classe

Negli esempi precedenti, abbiamo usato variabili pubbliche per la classe ma è sbagliato esercitarsi. Dovremmo evitare di usare variabili pubbliche in una classe.

Ora la domanda è come potremmo accedere alle variabili della classe. In precedenza, abbiamo utilizzato la subroutine per accedere a 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 a variabili private. Vediamo come.

Sintassi della proprietà della classe

Private name As String

Private var1 As Integer

Private var2 As Integer

Property Let MyName(nm As String)

name = nm

End Property

Property Get MyName() As String

MyName = name

End Property

Usiamoli in un modulo.

Sub test()

'creating class object

Dim wc As New Welcome

Dim wc1 As New Welcome



'using properties

wc.MyName = "Exceltip.com"

wc1.MyName = "ExcelForum.com"



Debug.Print wc.MyName

Debug.Print wc1.MyName



End Sub

Quando eseguirai questo sottotitolo di prova, otterrai due nomi stampati per due oggetti della classe “Welcome”.

In che modo le proprietà differiscono da sub e functions

Nell’esempio precedente, notare che abbiamo utilizzato la proprietà MyName come variabile. Abbiamo inizializzato il valore della variabile “Name” semplicemente scrivendo wc.MyName = “assdf”. Questa riga di comando ha chiamato la proprietà denominataProperty Get MyName () As String. Non abbiamo passato alcun valore tra parentesi come all’inizio.

Allo stesso modo, per stampare i valori della variabile “Name” abbiamo usato commandDebug.Print wc.MyName. Non è semplice come la normale inizializzazione della variabile? L’unica differenza è che puoi fare molto nel segmento delle proprietà. 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 lasciare e ottenere * parte. 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 dubbi su questo argomento o su qualsiasi altro argomento VBA Excel, menzionalo nella sezione commenti qui sotto.

Articoli correlati:

`link: / modules-class-modules-in-vba-insert-a-new-module-from-a-file-using-vba-in-microsoft-excel [Import a module from a file using VBA in Microsoft Excel] `| Scopri come importare l’intero modulo da un altro file utilizzando VBA.

link: / modules-class-modules-in-vba-crea-a-new-module-using-vba-in-microsoft-excel [Crea un nuovo modulo usando VBA in Microsoft Excel] | È possibile utilizzare un modulo per creare un altro modello in VBA. Questo può aiutarti a ridurre al minimo il lavoro aggiuntivo.

link: / modules-class-modules-in-vba-add-a-procedure-to-a-module-using-vba-in-microsoft-excel [Aggiungere una procedura a un modulo utilizzando VBA in Microsoft Excel] | Per aggiungere procedure ai moduli automaticamente utilizzare questo codice VBA.

Articoli popolari:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività] | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.

link: / formule-e-funzioni-introduzione-di-vlookup-funzione [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. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Contare i valori con le condizioni utilizzando questa straordinaria funzione.

Non è necessario filtrare i dati per contare un valore specifico. La funzione Countif è essenziale per preparare la tua dashboard.

link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel] | Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.