Nagu nimigi ütleb, kasutatakse objektide loomiseks funktsiooni CreateObject.
Aga miks me kasutame CreateObject meetodit või funktsiooni, kui saame uue märksõna abil objekti otse luua?
Noh, see on õige küsimus ja meil on asjakohane vastus.
Kutsutakse objekti loomine CreateObjecti abil Hiline köitmine. Hilises sidumises tekib objektide loomine käitusajal. See ei vaja viiteid. See muudab VBA koodi teisaldatavaks.
Näiteks kui loote rakenduse, mis tegeleb teiste rakendustega ja kasutate varajane sidumine lisades viiteid ja kasutades uus märksõna. Hiljem kannate selle koodi mõnele teisele masinale, siis peate ka sellele masinale viited lisama. Aga kui oleksite teiste rakenduse objektide loomiseks kasutanud meetodit CreateObject, ei pea te koodi viimise või jagamise korral viiteid lisama teistele masinatele.
Selles artiklis õpime mõne näite abil CreateObject -meetodi kohta.
Funktsiooni CreateObject süntaks:
Määra objekti_nimi = CreateObject (klassi nimi stringina, [serverinimi]) |
klassi nimi stringina: See on nõutav muutuja. See on string, mis viitab rakenduse nimele ja objekti tüübile. Loodava objekti rakenduse nimi ja klass tuleks deklareerida rakenduses AppName.ObjecType. Näiteks kui ma tahan Wordi rakenduse objekti, siis kirjutaksin "Word.Application". Seda näeme üksikasjalikumalt näidetes hiljem.
[serveri nimi]: See on valikuline muutuja. See on string selle võrguserveri nimest, kus objekt luuakse. Kui serverinimi on tühi string (""), kasutatakse kohalikku masinat. Me ei kasuta seda selles peatükis.
Nüüd, kui me teame funktsiooni CreateObject põhitõdesid, kasutame neid mõnes näites:
Näide 1: Avage Microsoft Wordi rakendus Excel VBA abil
Seega, kui me sooviksime kasutada varajast sidumist, lisaksime viited sõnarakendustele, kasutades menüüd Tööriistad-> Viited.
Ja meie kood näeks välja selline.
Sub OpenWordApp () Dim wordApp uue sõnana. Rakendus Dim wordDoc Dokumendina wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Selle koodi eeliseks on see, et saate abi VBA intelligentsusest ja see näitab teile loodud objekti saadaolevat meetodit ja omadusi. See töötab teie süsteemis suurepäraselt. Kui aga jagate seda koodi kellelegi teisele ja ta pole tööriistadest viiteid Microsofti sõnaraamatule lisanud, kuvatakse neile tõrge.
Selle tõrke vältimiseks kasutage allolevat koodi.
Sub OpenWordApp () Dim wordApp objektina Määra wordApp = CreateObject ("Word.Application") Dim wordDoc objektina wordApp.Visible = True Määra wordDoc = wordApp.Documents.Add End Sub
Ülaltoodud kood töötab suurepäraselt igas masinas. See on kaasaskantav, kuna me teeme objekti loomiseks CreateObject meetodiga hilise sidumise.
Vaatame teist näidet:
Näide 2: töövihiku objekti loomine funktsiooni CreateObject abil
Kui töötate VBA -ga mõnda aega, peate olema töövihikud loonud või töövihikutesse lisanud, kasutades uut märksõna. Selles näites teeme seda CreateObjecti abil.
Sub addSheet () 'Objekti muutuja deklareerimine objekti hoidmiseks' viide. Dim nagu Objekt põhjustab hilise sidumise. Hämardage ExcelSheet objektina Määrake ExcelSheet = CreateObject ("Excel.Sheet") 'Tehke Excel rakenduse objekti kaudu nähtavaks. ExcelSheet.Application.Visible = True 'Asetage tekst lehe esimesse lahtrisse. ExcelSheet.Application.Cells (1, 1) .Value = "See on veeru A rida 1" Salvestage leht kataloogi C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Sulgege Excel rakendusobjektil Quit meetodiga. ExcelSheet.Application.Quit 'Vabastage objektimuutuja. Määra ExcelSheet = Nothing End Sub
Nii et jah, poisid, nii kasutate VBA -s meetodit CreateObject. Arutleme selle eeliste ja puuduste üle.
CreateObject eelised objekti loomiseks
CreateObjecti peamine eelis on see, et see muudab teie koodi teisaldatavaks (kui mure on objekti loomine). Saate koodi jagada kõigile, muretsemata, kas nad on lisanud viite objektiprogrammile või mitte.
CreateObjecti puudus
CreateObject meetodi puudused on järgmised:
Peate teadma selle klassi struktuuri, mida kavatsete objektide loomiseks kasutada.
Kui olete objekti loonud, sõltute objektide meetodite ja omaduste osas täielikult oma mälust, kuna VBA ei paku teile mingit intellisense'i.
Ülaltoodud puudustest saame üle. Mul on trikk.
Kui kirjutan teistele jagatavat koodi, kasutan objektide loomiseks esimest meetodit (tööriistadest viidete lisamine). See aitab mul koodi kiiremini kirjutada. Kui olen VBA programmi soome keeles testinud, asendan uue meetodi CreateObject meetodiga. See muudab koodi teisaldatavaks. Saate seda trikki kasutada.
Nii et jah, poisid, nii saate kasutada funktsiooni CreateObject objektide loomiseks VBA -s. Loodan, et suutsin kõik ära seletada. Kui teil on selle artikli või muude VBA -ga seotud küsimuste kohta küsimusi, küsige minult allpool kommentaaride jaotises.
Excel VBA UserFormsiga alustamine| Selgitan, kuidas Excelis vormi luua, kuidas VBA tööriistakasti kasutada, kuidas kasutaja sisendeid käsitseda ja lõpuks, kuidas kasutaja sisendeid salvestada. Vaatame need teemad läbi ühe näite ja samm -sammult juhise abil.
VBA muutujad Excelis| VBA tähistab Visual Basic for Applications. See on Microsofti programmeerimiskeel. Seda kasutatakse koos Microsoft Office'i rakendustega, nagu MSExcel, MS-Word ja MS-Access, samas kui VBA muutujad on spetsiifilised märksõnad.
Exceli VBA muutuv ulatus| Kõigis programmeerimiskeeltes on meil muutuva juurdepääsu spetsifikatsioonid, mis määravad, kust saab määratud muutujale juurde pääseda. Excel VBA pole erand. Ka VBA -l on ulatuse täpsustajad.
ByRef ja ByVal argumendid | Kui argument edastatakse ByRef argumendina teisele alam- või funktsioonile, saadetakse tegeliku muutuja viide. Kõik muutuja koopiasse tehtud muudatused kajastuvad algses argumendis.
Kustutage lehed ilma kinnitusviipadeta, kasutades Microsoft Excelis VBA -d | Kuna kustutate lehti VBA abil, teate, mida teete. Sooviksite Excelil seda hoiatust mitte kuvada ja neetud leht kustutada.
Uue töövihiku lisamine ja salvestamine Microsoft Excel 2016 VBA abil| Selles koodis lõime esmalt viite töövihiku objektile. Ja siis vormistasime selle uue töövihikuobjektiga. Selle lähenemisviisi eeliseks on see, et saate selle uue töövihikuga hõlpsalt toiminguid teha. Nagu salvestamine, sulgemine, kustutamine jne
Kuva teade Exceli VBA olekuribal| Exceli olekuriba saab kasutada koodimonitorina. Kui teie VBA -kood on pikk ja teete VBA -ga mitmeid ülesandeid, keelate sageli ekraani värskendamise, nii et te ei näe seda ekraani vilkumist.
Lülitage hoiatussõnumid välja Microsoft Excel 2016 VBA abil| See kood mitte ainult ei luba VBA hoiatusi, vaid suurendab ka koodi ajakasutust. Vaatame, kuidas.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea oma andmeid teatud väärtuste loendamiseks filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.