VBA klasės moduliai ir kaip jais naudotis

Turinys

Kas yra VBA klasė?

Klasė yra sukurto objekto planas. Pati klasė nieko nedaro, tačiau naudodami klases galite sukurti kelis identiškus objektus, kurie gali atlikti operacijas arba gali būti naudojami kaip duomenų šaltinis.

Realiame gyvenime automobilio modelis (dizainas ir funkcijos) yra klasė, o pats automobilis yra tos klasės objektas. Klasėje mes apibrėžiame, ką automobilis turi ir ką jis gali padaryti. Pavyzdžiui, automobilis turi 4 ratus, 5 pavaras, vairą ir tt Tai yra atributai/savybės. Mes taip pat apibrėžiame, ką automobilis gali padaryti, pavyzdžiui, judėti pirmyn, atgal, sukti ir tt Tai yra automobilių klasės funkcijos. Automobilio objektas, sukurtas naudojant automobilių klasę, turės visas šias savybes. Jei apibrėžiate automobilį, turintį 5 ​​ratus, tai automobilis, sukurtas naudojant šią klasę, turės 5 ratus. Jūs suprantate esmę.

Pakanka teorijos, dabar pažiūrėkime, kaip galite naudoti klasės modulį VBA.

Naudojant „Excel“ VBA klasės modulį

Dirbdami VBA turite naudoti diapazoną („A1“). Pasirinkite. Diapazonas yra iš anksto nustatyta klasė VBA. Pasirinkimas yra viena iš diapazono klasės funkcijų, kurios pasirenka nurodytą diapazoną. Panašiai „Debug“ yra VBA klasė, o spausdinimo ir tvirtinimo metodai. Skaičiuoklės, darbaknygės, diapazonas ir tt yra VBA klasės, kurias naudojame savo abonementams.

Sukurkite savo klasę

Pirma, turime pridėti klasės modulį VBA

Paspauskite ALT+F11 klavišų kombinaciją, kad atidarytumėte „Excel“ VBA redaktorių.

    • Dešiniuoju pelės mygtuku spustelėkite projekto tyrinėtoją. Perkelkite žymeklį į Insert-> Class module. Spustelėkite jį. Tą patį galima padaryti iš meniu Įterpti.

    • Klasė bus įtraukta į aplanką „Klasės modulis“. Numatytasis pavadinimas yra kaip 1 klasė, 2 klasė ir pan. Klasės pavadinimą galite pakeisti iš ypatybių lango. Pavadinkime savo klasę „Sveiki atvykę“.

  • Dabar sukurkime, kad į mūsų klasę įtrauktume keletą atributų. Kadangi noriu, kad šie atributai būtų prieinami visuomenei, aš juos naudoju prieinamumo operatorius viešas.
    Viešas pavadinimas kaip eilutė Viešas var1 Kaip sveikasis skaičius Viešas var2 kaip sveikasis skaičius 
  • Dabar pridėkime funkciją prie šios klasės. Noriu funkcijos, kuri sako Labas! vartotojui. Norėdami tai padaryti, pridėkite antrinį elementą ir pavadinkite jį „HiTo“.
    Sub sayHiTo (vartotojas kaip eilutė) name = user MsgBox ("Labas!" & Vardas) Pabaiga 
  • Dabar naudokime klasę modulyje. Įdėkite naują modulį, jei jo neturite. Parašykite sub. Aš pavadinau savo antrinį testą.
    Antrinis testas () Dim wc kaip naujas pasveikinimas 'Paskelbtas ir inicijuotas pasveikinimo objektas wc.sayHiTo ("Jack") "naudojo sayHiTo pasveikinimo metodą. Pabaiga Sub 
  • Vykdykite šį papildomą testą naudodami klavišą F5. „Excel“ darbaknygėje jis paragins „Labas! Džekas“.

Kaip tai veikia?

Sub test, mes sukūrėme yra objektas "wc" Sveiki klasė. Objektas sukuriamas VBA dviem būdais. vykdome kodą, „Test sub“ sukuria „Welcome“ klasės objektą wc. Šis objektas turi visas pasveikinimo klasės savybes. Naudodamiesi „Welcome“ klasės „sayHiTo“ metodu, sveikiname vartotoją.

Objekto kūrimas „Excel VBA“

    1. Momentinis kūrimas

Momentiniame kūrime mes sukuriame objektą, tuo pačiu deklaruodami objektą naudodami „naują“ raktą. Aukščiau pateiktame pavyzdyje mes panaudojome momentinį kūrimą.

Dim wc As New Welcome

2. Atidėtas kūrimas
Atidėtoje kūryboje pirmiausia deklaruojame tik objektą. Mes nenaudojame raktinio žodžio „naujas“. Norėdami naudoti objektą, turime jį inicijuoti naudodami raktinį žodį „naujas“.

Antrinis testas () Dim wc As Welcome „wc.sayHiTo („ Jack “)“ sukuria klaidą, nes wc dar nėra inicijuotas. Pabaiga Sub 

Prieiga prie klasės kintamųjų

Anksčiau pateiktuose pavyzdžiuose mes klasėje naudojome viešuosius kintamuosius, tačiau praktika yra neteisinga. Turėtume vengti naudoti viešuosius kintamuosius klasėje. Dabar kyla klausimas, kaip galėtume pasiekti klasės kintamuosius. Anksčiau pavadinimui pasiekti naudojome paprogramę, tačiau VBA klasės teikia ypatybes, kurios naudojamos sistemingai atnaujinti ir gauti klasės privačių kintamųjų vertes. Savybės yra elegantiškesnės nei sub arba funkcija, skirtos atnaujinti ir pasiekti privačius kintamuosius. Pažiūrėkime, kaip.

Klasės ypatybių sintaksė

Privatus vardas kaip eilutė Privatus var1 Kaip sveikasis skaičius Privatus var2 kaip sveikasis skaičius Nuosavybė MyName (nm As String) name = nm End Property Gauti nuosavybę Mano vardas () Kaip eilutė Mano vardas = vardas Pabaigos nuosavybė 

Panaudokime juos modulyje.

Sub test () 'kuriant klasės objektą Dim wc kaip naujas pasveikinimas Dim wc1 kaip naujas pasveikinimas' naudojant ypatybes wc.MyName = "Exceltip.com" wc1.MyName = "ExcelForum.com" Debug.Print wc.MyName Debug.Print wc1. Mano vardo pabaiga 

Kai paleisite šį bandomąjį antrinį elementą, atspausdinsite du pavadinimus dviem „Welcome“ klasės objektams.

Kaip savybės skiriasi nuo antrinių ir funkcijų

Anksčiau pateiktame pavyzdyje atkreipkite dėmesį, kad mes naudojome ypatybę „MyName“ kaip kintamąjį. Mes inicijavome kintamojo „Vardas“ vertę tiesiog rašydami wc.MyName = "asilas". Ši komandų eilutė vadino nuosavybę pavadinimuNuosavybė Gauti mano vardą () kaip eilutę. Mes skliausteliuose neperdavėme jokios vertės, kaip pradžioje.

Panašiai, norėdami spausdinti kintamojo „Name“ reikšmes, naudojome komandąDerinti. Spausdinti „wc.MyName“. Ar ne taip paprasta, kaip įprasto kintamojo inicijavimas? Vienintelis skirtumas yra tas, kad programoje galite nuveikti daugnuosavybė segmentas. Įdėję duomenų patvirtinimą, skaičiavimą, bendravimą ir pan., Vartotojas matys tik rezultatą.

Kitas skirtumas yra tas, kad mes galime naudoti tą patį nuosavybės pavadinimą leisti ir gautidalis. Taip lengviau ir mažiau paini.

Taigi, vaikinai, tai buvo paprastas „Excel VBA“ klasės modulio pavyzdys. Tai tik ledkalnio viršūnė, šioje temoje yra daug sulčių, kurias panagrinėsime vėlesniuose straipsniuose. Mes išnagrinėsime kiekvieną iš jų paprasčiausiu įmanomu būdu. Tikiuosi, kad buvau pakankamai aiškus, kad suprastumėte tai. Jei turite kokių nors abejonių dėl šios temos ar kitos „Excel“ VBA temos, paminėkite ją žemiau esančiame komentarų skyriuje.

Importuokite modulį iš failo naudodami VBA programoje „Microsoft Excel“ | Sužinokite, kaip importuoti visą modulį iš kito failo naudojant VBA.

Sukurkite naują modulį naudodami VBA programoje „Microsoft Excel“ | Galite naudoti modulį, kad sukurtumėte kitą modelį VBA. Tai gali padėti sumažinti papildomus pridėtinius darbus.

Pridėkite procedūrą prie modulio naudodami VBA programoje „Microsoft Excel“ | Norėdami automatiškai pridėti modulių procedūras, naudokite šį VBA kodą.

Populiarūs straipsniai:

50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.

Funkcija VLOOKUP „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.

COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint skaičiuoti konkrečią vertę, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.

Kaip naudoti SUMIF funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave