Kā izveidot un izmantot VBA klases moduļus? (Piemēri)

Excel VBA klases moduļi

Lietojot VBA, mēs izmantojam VBA definētās īpašības un atribūtus, bet kas notiek, kad mēs vēlamies izveidot paši savus rekvizītus, metodes un atribūtus, tas ir, kad mēs izmantojam klases moduli VBA, lai mēs to varētu definēt kā lietotāju, klases modulim ir savs kodu kopums, ko lietotājs definējis funkcijām, īpašībām un objektiem.

Klases moduļi tiek izmantoti objekta izveidošanai. Ja mēs sakām objektus, kaut arī tas ir mainīgais, tās ir mazas programmas. Rakstot kodu, mēs parasti rakstām moduļos. Pamata moduļi ir tie, kur mēs rakstām savus kodus, lai veiktu darbu. Mēs arī izmantojam lietotāja veidlapu, lai izveidotu grafiskas lietotāja saskarnes.

Bet, aplūkojot iepriekš redzamo attēlu, jūs varat redzēt “Klases moduli”. Es noteikti zinu, ka jūs tam neesat pieskāries, kamēr neesat lasījis šo ziņu. Jums noteikti jābrīnās, kas ir šis VBA klases modulis, kad visu darbu var paveikt, izmantojot mūsu pašu parasto moduli.

Kas ir klases modulis?

Klases moduļi ļauj lietotājam izveidot savu objektu tāpat kā to, kā mums ir iebūvēti objekti parastajos moduļos, piemēram, “Darblapas”, “Darbgrāmatas”, “Diapazons” utt.

Šādi izmantojot klases moduli, mēs varam izveidot pielāgotus objektus.

Klasei ir tieša saistība ar objektiem. Piemēram, jums ir mašīnas diagramma, lai izveidotu mašīnu, taču atcerieties, ka tā vēl nav mašīna, un, izmantojot šo mašīnas diagrammu, mēs varam izveidot daudzas tādas mašīnas.

Piemēram, ja vēlaties uzskaitīt dažādus mašīnu zīmolus, lai uzskaitītu dažādu modeļu īpašības.

Mašīnā mums ir firmas nosaukums, sērijas numurs, mašīnas jauda, ​​mašīnas krāsa, tajā iesaistīto motoru skaits, motordegvielas tips utt. Tehniskajā valodā tos sauc par “īpašībām”.

Attiecībā uz mašīnas īpašībām mēs varam iedarbināt, izslēgt, palielināt motora ātrumu, apturēt pauzi utt. Un tos sauc par “Metodēm”.

Piemērs

Šo VBA klases veidni varat lejupielādēt šeit - VBA klases veidne

Sāksim bumbu ripot, jo vienmēr ir garlaicīgi lasīt teorētisko daļu. Lai ievietotu klases moduli, atveriet opciju Visual Basic redaktorā.

Tagad mēs varam redzēt klases moduli, piemēram, zemāk.

Tas izskatās līdzīgi tam, kas mums ir iepriekš kā parasts modulis. Rekvizītu logā mainiet klases moduļa nosaukumu. Lai redzētu rekvizītu logu, nospiediet taustiņu F4 .

Tagad deklarējiet mainīgo kā virkni.

Veidojot vba apakšprocedūru, mums jādeklarē mainīgais un arī šoreiz jāizmanto vārds “Public”, nevis “Dim”.

Tagad mēs varam piekļūt šim mainīgajam jebkurā modulī un klases modulī.

Tagad dodieties uz parasto moduli un nosauciet mainīgo.

Pēc mainīgā deklarēšanas mums jāpiešķir datu tips VBA, tā vietā, lai piešķirtu datu tipu, mēs varam vienkārši dot klases moduļa nosaukumu, ti, CM

Tagad, izmantojot mainīgo “k”, mēs varam piekļūt publiskajam mainīgajam, kuru esam definējuši klases modulī, ti, “Mana vērtība”.

Kā redzams iepriekš redzamajā attēlā, tiek parādīta mainīgā nosaukuma opcija no klases moduļa, lai tam piešķirtu vērtību.

Tagad VBA ziņojumu lodziņā parādiet piešķirtā mainīgā vērtību.

Kods:

 Apakšklases_piemērs () Dim k kā jauns CM k.MyValue = "Labdien" MsgBox k.MyValue Beigas Sub 

Palaidiet šo kodu, izmantojot F5 taustiņu, vai manuāli, lai parādītu rezultātu.

Klases modulis vs objekti

Sākotnējā klases moduļa posmā visi tiek sajaukti ar to, kas ir klase un kas ir objekts.

Lai to saprastu, atcerieties mūsu agrāko mašīnas diagrammas piemēru. Pirmā lieta, kas mums jāveido mašīna, ir vispirms jāprojektē mašīna, un pēc tam ar šo dizainu var atkārtot vairākas kopijas.

Tagad saistiet to ar mūsu klases moduli.

  • Šeit klases modulis ir dizains. Un objekts ir dizaina izveidota kopija .
  • Vēl viena interesanta lieta ir tā, ka mums jāizmanto vārds “jauns”, lai izveidotu objektu no klases moduļa.

Zemāk ir piemērs tam pašam.

Vēl viena lieta, kad mēs izmantojam iebūvētus objektus, piemēram, darblapas, darbgrāmatas un diapazona objektus, mēs neizmantojam vārdu “jauns”

Lai sāktu procesu ar klases moduli, jums jāzina šīs pamatlietas. Nākamajos rakstos mēs redzēsim nākamā līmeņa piemērus.

Šķiet, ka to ir grūti saprast, jo vairāk laika pavadīsiet ar klases moduli, pie tā pieradīsit.


$config[zx-auto] not found$config[zx-overlay] not found