Class Module se uporablja za objektno programiranje in za uporabo tega morate poznati vsaj osnove objektnega programiranja. Osnovna ideja je v tem,da neka spremenljivka pozna latne podatke in tudi funkcije za delo z njimi. Objektno programiranje je tako zadnjih 20 let praktično osnova vsega razvoja programske opreme.
Spodaj vam prilagam preprost in hiter primerček nekega preprostega preračunavanja valut. Najprej programska koda objekta (to gre v Class Module):
Koda: Izberi vse
Option Explicit
Private pDomacaValuta As String
Private pTujaValuta As String
Private pFaktor As Double
Public Property Get DomacaValuta() As String
DomacaValuta = pDomacaValuta
End Property
Public Property Get TujaValuta() As String
TujaValuta = pTujaValuta
End Property
Public Property Get Faktor() As Double
Faktor = pFaktor
End Property
Public Sub Nastavi(ADomacaValuta As String, ATujaValuta As String, AFaktor As Double)
pDomacaValuta = ADomacaValuta
pTujaValuta = ATujaValuta
pFaktor = AFaktor
End Sub
Public Function VTujo(AZnesek As Double)
VTujo = AZnesek * pFaktor
End Function
Public Function VDomaco(AZnesek As Double)
VDomaco = AZnesek / pFaktor
End Function
Torej objekt hrani podatek o domači in tuji valuti, ter faktorju pretvorbe.
Ta ClassModule morate iz Class1 preimenovati v Tecaj, da bi vam spodnja koda delovala. Torej v navadnem modulu pa sedaj ta naš nov objekt uporabimo takole:
Koda: Izberi vse
Dim t1 As New Tecaj
Dim t2 As New Tecaj
t1.Nastavi "EUR", "USD", "1,38530"
t2.Nastavi "EUR", "HRK", "7,49840"
Debug.Print t1.VTujo(100)
Debug.Print t2.VTujo(234)
Debug.Print t1.VDomaco(100)
Debug.Print t2.VDomaco(234)
Debug.Print t1.TujaValuta
Debug.Print t2.TujaValuta
Glede teh objektov moram reči takole.
Jaz brez njih nebi mogel ustvarjati in so osnova vsega mojega razvoja. Za ljudi, ki se s programiranjem ne ukvarjajo (ukvarjate), temveč želijo samo posneti in uporabiti kakšen makro pa so mogoče prezahtevni, in se z njimi ne splača ubadati...