Oletetaan, että yrität luoda koulun hallintajärjestelmää. Täällä sinulla on erityyppisiä muuttujia, kuten oppilaan nimi, opiskelijaluettelon numero, luokka jne. Koulussa on myös opettajia, joten opettajien nimet, opettajan aihe, luokat jne. Samoin on monia muita kohteita, kuten , kirjastonhoitaja, luokat, periaate jne. Nyt eri muuttujien ottaminen kullekin yksikölle koulussa on sotkuista. Entä luodaan tietotyyppi opiskelija, opettaja, luokat jne., Joka tallentaa heihin liittyvät arvot. Tätä varten voimme käyttää määritettyjä VBA -tietotyyppejä.
Tässä artikkelissa opimme, kuinka voit luoda oman tietotyypin VBA: ssa. Niitä kutsutaan VBA: n UDT: ksi.
Käyttäjän määrittämän tietotyypin määrittäminen
Rakenteen tai UDT: iden määrittämiseksi VBA: ssa käytämme Type___End Type -lohkoa. Tässä on UDT: n syntaksi.
Kirjoita tietotyypiksi Tname_Of_Data_Type var1 tietotyypiksi '' tietotyyppi voi olla mikä tahansa, int, array tai jopa UDT var2 tietotyypiksi Var3 () tietotyypiksi --- VarN () tietotyypiksi End Type
Joten mukautetun tietotyypin määrittämiseksi VBA: ssa aloitamme tyypin avainsanalla. Sitten kirjoitamme mukautetun tietotyypin nimen. On tavallista käyttää T: tä ennen tietotyypin nimeä, jotta voit erottaa vba -kokoelmat ja UDT: t.
Datatyypit voivat olla mitä tahansa. Ja kokonaisluku, merkkijono, muunnelma, toinen UDT, taulukot, kokoelmat, kaikki.
Jos haluat käyttää UDT: täsi ohjelmassa, ilmoita sen muuttuja kuten mikä tahansa muu muuttuja.
Sub UseUDT 'Käyttäjän määrittämän tietotyypin Dim muuttuja -muuttujan ilmoittava muuttuja Dim myVar1 nimellä Tname_Of_Data_Type Dim myVar2 nimellä Tname_Of_Data_Type End Sub
Yksinkertainen. Tämän UDT: n muuttujien käyttämiseen käytämme pisteoperaattoria. Käytä tietotyypin nimeä, jota seuraa piste ja muuttujan nimi.
Sub UseUDT 'Käyttäjän määrittämän tietotyypin Dim ilmoitusmuuttuja Dim myVar1 nimellä Tname_Of_Data_Type Dim myVar2 nimellä Tname_Of_Data_Type myVar1.var1 = "Abcd" myVar2.Var2 = "xyvz" End Sub
Teoria riittää, siirrytään esimerkkiin nähdäksemme, miten se toimii.
Luo opiskelijamuuttuja, joka tallentaa opiskelijaan liittyvät tiedot
Joten meillä on tehtävä luoda käyttäjän määrittämä tietotyyppi, joka tallentaa opiskelijoihin liittyvät tiedot.
Oppilaalla on etunimi, sukunimi, rulla, syntymäaika, luokka, osio, aiheet.
Joten luodaan se.
'Luotu julkinen oppilaan tietotyyppi Julkinen tyyppi Tstudent fName As String' Etunimelle lName As String 'Sukunimelle rNo As Integer' Roll Roll numero clss merkkijonona 'Luokkaosalle merkkijonona' Osion nimen aiheille () merkkijonona ' Opiskelijoiden päätyypin aiheille 'Käytä tätä Tstudent -tyyppiä aliohjelmassa Sub StudentsInfo ()' Opiskelijatyyppimuuttujan luominen ja alustaminen Dim student1 Kuten Tstudent student1.fName = "Manish" student1.lName = "Singh" student1.rNo = 12334 student1.clss = 10 opiskelija1.section = "A" ReDim -opiskelija1.kohteet (2) opiskelija1.kohteet (0) = "fysiikka" opiskelija1.kohteet (1) = "Matematiikka" 'Opiskelijan tietojen tulostaminen. Debug.Print (student1.fName) Debug.Print (student1.lName) Debug.Print (student1.rNo) Debug.Print (student1.clss) Debug.Print (student1.section) Debug.Print (opiskelija1.aiheet (0) ) Debug.Print (opiskelija1.aiheet (1)) End Sub
Kun suoritat yllä olevan alaosan, se tulostaa tuloksen alla olevan kuvan mukaisesti:
Manish
Singh 12334 10 A fysiikka Matematiikka |
UDT: iden ja elementtien käyttöryhmän luominen
Samalla tavalla voit luoda niin monta kuin tarvitset Tstudent -tyyppisiä muuttujia. Voit jopa luoda Tstudent -tyyppisen taulukon, kuten mikä tahansa muu tietotyyppi.
Julkinen tyyppi Tstudent fName merkkijonona 'Etunimelle lName kuin merkkijono' Sukunimelle rNo kokonaislukuna 'Roll -numerolle clss merkkijonona' Luokkaosalle merkkijonona 'Osion nimen aiheille () merkkijonona' Opiskelijan päätyypin aiheille ' Joukkojen luominen Tstudents -tyypin Sub SchoolInfo () Dim schoolName As String Dim -oppilaiksi () As Tstudent schoolName = "Senior School" ReDim -opiskelijat (10) I = 0-9 opiskelijalle (i) .fName = "name" & Str ( i + 1) opiskelijat (i) .rNo = i + 1 Seuraava i Debug.Print ("Nimi: Roll No") I = 0-9 Debug.Print (opiskelijat (i) .fName & ":" & opiskelijat ( i) .rNo) Seuraava i End Sub
Kun suoritat tämän koodin, se tulostetaan välittömään ikkunaan.
Nimi: Roll No
nimi 1: 1 nimi 2: 2 nimi 3: 3 nimi 4: 4 nimi 5: 5 nimi 6: 6 nimi 7: 7 nimi 8: 8 nimi 9: 9 nimi 10: 10 |
Yllä olevassa koodissa määritettiin ensin UDT -rakenne ennen ja alaosa (selitän myöhemmin miksi). Me juuri loimme taulukon käyttämällä himmeää avainsanaa, kuten teemme minkä tahansa muuttujan VBA: ssa.
Sitten määritimme matriisien koon Redimin avulla. Jälkeenpäin käytämme for -silmukkaa matriisin alustamiseen.
Päästäksemme rakenteen elementteihin käytämme toista silmukalle. Se on siinä.
Miksi julistimme UDT: n moduulin päälle?
Jos ilmoitamme UDT: n ensin moduulissa minkä tahansa aliohjelman tai toiminnon ulkopuolella, se on kaikkien työkirjan moduulien käytettävissä. Se tarkoittaa, että jos sinulla on sata ala- ja funktiomoduulia, ne kaikki voivat ilmoittaa oppilastyyppisiä muuttujia kehossaan.
Jos UDT ei ole yksityinen, se on kaikkien työkirjan moduulien käytettävissä. Jos haluat rakenteen (UDT) olevan vain sisältävän moduulin käytettävissä, julista se yksityiseksi.
Yksityinen tyyppi Tstudent fName As String lName As String rNo As Integer clss Kuten Kokonaisluku -osio merkkijonoina () Merkkijonon päätyyppinä
Et voi käyttää UDT: tä menettelyllisellä tasolla. Se tarkoittaa, että et voi määrittää käyttäjän määrittämää tietotyyppiä aliohjelmaan tai funktioon.
Sisäkkäiset käyttäjän määrittämät tyypit
Oletetaan, että olet kutsunut UDT: n autoksi. Autossa on omat elementtinsä. Samoin sinulla on UDT nimeltä pyörä, jolla voi olla omat ominaisuutensa.
Oletetaan nyt, että tarvitset tietotyypin nimeltä ajoneuvo. Ajoneuvon elementteinä voi olla auto ja pyörä. Voimmeko tehdä tämän? Kyllä voimme tehdä tämän. Katso alla oleva koodi
Yksityinen tyyppi Tcar -istuimet kokonaislukuna ac Kuten Boolen -tyyppinen merkkijonovärinä Jousenvalmistajana Kuten merkkijono Dop -päivämääränä rc_no Kuten merkkijonon päätyyppi Yksityinen tyyppi Tbike -istuimet Kokonaisluku -tyypinä Merkkijonon värinä Jousivalmistajana Jousimerkiksi Päivämääränä rc_no Jousen päätyyppinä yksityinen Tyyppi Tvehicle number_of_Vehicle As Integer bike As Tbike car As Tcar End Type Sub vehicleVarification () Dim myVehicles As Tvehicle myVehicles.number_of_Vehicle = 2 myVehicles.bike.seats = 1 myVehicles.bike.typ = "Racing" myVehicles.car.seats = " "myVehicles.car.ac = True Debug.Print myVehicles.number_of_Vehicle Debug.Print myVehicles.bike.typ Debug.Print myVehicles.car.ac End Sub
Tässä olemme määrittäneet kolme käyttäjän määrittämää tietotyyppiä. Ensimmäinen on Tcar, joka sisältää joitakin autoihin liittyviä tietoja. Toinen on pyörä, se sisältää myös tietoja pyörästä.
Kolmas UDT on Tvehicle. Se sisältää yhden muuttujan ajoneuvojen lukumäärän tallentamiseen ja kaksi Tcar- ja Tbike -tyyppistä muuttujaa.
Yksityinen tyyppi
number_of_Vehicle kokonaislukuna
pyörä Kuten Tbike
auto Kuten Tcar
Lopputyyppi
Voit käyttää Tcar- ja Tbike -muuttujia käyttämällä Tvehicle -tietotyyppiä. Alaosassa olemme määrittäneet vain yhden Tvehicle -tyyppisen muuttujan myVehiclesiksi. Kun luomme tämän muuttujan, VBA luo myös Tcar- ja Tbike -muuttujia.
Voit alustaa ja käyttää Tcar- ja Tcar -muuttujia käyttämällä myVehicle -muuttujaa. Kuten koodista näkyy.
myVehicles.number_of_Vehicle = 2
myVehicles.bike.seats = 1
myVehicles.bike.typ = "Kilpa -ajo"
myVehicles.car.seats = "4"
myVehicles.car.ac = Totta
Kun suoritamme alia, tulos syntyy näin.
Tämä ominaisuus lisää todella VBA: n ohjelmoinnin tehoa eksponentiaalisesti. Voit rakentaa tietotyyppisi kuten reaalimaailman entiteetit. Voit luoda tietotyyppien välille suhteita, joista voi olla hyötyä suuressa projektissa.
Joten kyllä kaverit, tällä tavalla voit luoda ja käyttää käyttäjän määrittämää tietotyyppiä tai rakennetta VBA: ssa. Toivottavasti osasin selittää sen. Jos sinulla on kysyttävää tästä artikkelista tai muista VBA -aiheisiin liittyvistä kysymyksistä, kysy minua alla olevasta kommenttiosasta. Olen todella iloinen kuullessani sinusta.
VBA -muuttujat Excelissä| VBA tarkoittaa Visual Basic for Applications. Se on Microsoftin ohjelmointikieli. Sitä käytetään Microsoft Office -sovelluksissa, kuten MSExcel, MS-Word ja MS-Access, kun taas VBA-muuttujat ovat erityisiä avainsanoja.
Excel VBA -muuttujan laajuus| Kaikilla ohjelmointikielillä on muuttujan käyttöoikeusmäärittelyt, jotka määrittävät, mistä määriteltyä muuttujaa voidaan käyttää. Excel VBA ei ole poikkeus. Myös VBA: ssa on laajuuden määrittäjiä.
ByRef- ja ByVal -argumentit | Kun argumentti välitetään ByRef -argumenttina toiselle ala- tai funktiolle, todellisen muuttujan viite lähetetään. Kaikki muuttujan kopioon tehdyt muutokset näkyvät alkuperäisessä argumentissa.
Poista taulukot ilman vahvistuskehotteita käyttämällä VBA: ta Microsoft Excelissä | Koska poistat arkkeja VBA: n avulla, tiedät mitä olet tekemässä. Haluat kertoa Excelille, ettei se näytä tätä varoitusta ja poista kirottu arkki.
Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016: ssa| Tässä koodissa loimme ensin viittauksen työkirjaobjektiin. Ja sitten alustimme sen uudella työkirjaobjektilla. Tämän lähestymistavan etuna on, että voit tehdä tämän uuden työkirjan toimintoja helposti. Kuten tallentaminen, sulkeminen, poistaminen jne
Näytä viesti Excel VBA -tilapalkissa| Excelin tilariviä voidaan käyttää koodinäytönä. Kun VBA -koodisi on pitkä ja teet useita tehtäviä VBA: n avulla, poistat usein näytön päivityksen käytöstä, jotta et näe sitä välkkyvää.
Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016: ssa| Tämä koodi ei vain poista VBA -hälytyksiä käytöstä, vaan myös lisää koodin aikatehokkuutta. Katsotaanpa miten.
Suosittuja artikkeleita:
50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.
VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.
COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietoja laskeaksesi tiettyjä arvoja. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.
SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.