Pozdravljeni,
Glede MS Offica sem čisti samouk in mi manjka veliko teorije. Zato vprašanje o temi iz naslova.
Vsi tukaj smo se bolj ali manj že srečali z makri in le ti se shranjujejo v Module v VBA okolju. Module lahko tudi sami vstavljamo in nato vanje pišemo neko svojo kodo. To nam je znano. Vsak, ki je že sam vstavljav Modul, je med možnostmi vstavljanja videl, da se da vstaviti tudi t.i. Class Modul oz. Modul razreda. Zdaj pa me zanima kdaj se uporablja in seveda tudi zakaj, ta razredni Modul. Kakšen je njegov pomen?
Ko sem prestavil nek svoj makro v ta class Modul, ga potem ne vidim več med makri (ALT+F8). Torej class Modul ni namenjen shranjevanju makrov ali pač? Če je, kako ga potem prikličem. Ne vem morda pa je moje razmišljanje čisto mimo...
Torej, rad bi zvedel več o tem, morda tudi kak enostaven primer.
Razlika med Modulom in Class Modulom
Razlika med Modulom in Class Modulom
lp,
cedra
cedra
Re: Razlika med Modulom in Class Modulom
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):
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:
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...
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
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
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Razlika med Modulom in Class Modulom
Hvala za expres odgovor. Bom pogledal tudi vaš primer in videl kako in kaj! Morda bo prišlo kaj v poštev, drugače pa se bom držal vašega nasveta:
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...
lp,
cedra
cedra