Visual Basicu rakenduste kasutamise juhend

Visual Basicu üks silmapaistvamaid omadusi on see, et see on: täielik arengukeskkond. Mida iganes sa teha tahad, on Visual Basicu maitseomadused, mis aitavad sul seda tööd teha! Visual Basicut saab kasutada töölaua-, mobiili- ja kaug arendamiseks (VB.NET), skriptimiseks (VBScript) ja Office'i arendamiseks (VBA !) Kui olete VBA-d proovinud ja soovite selle kasutamise kohta rohkem teada saada, see on õpetus teile. (See kursus põhineb Microsoft Office 2010 versioonist VBA.)

Kui otsite kursust Microsoft Visual Basic .NET-ist, olete leidnud ka õige koha. Vaadake: Visual Basic .NET 2010 Express - juhendaja "Maast üles"

VBA kui üldist mõistet käsitletakse selles artiklis. VBA-s on rohkem kui võite arvata! Samuti leiate artikleid Office VBA õdede kohta:

Office'i rakendustega töötavate programmide arendamiseks on põhimõtteliselt kaks võimalust: VBA ja VSTO. 2003. aasta oktoobris tutvustas Microsoft professionaalse programmeerimiskeskkonna Visual Studio .NET täiendust, mille nimi on Visual Studio Tools for Office - VSTO. Kuid isegi kui VSTO kasutab .NET-i Office'is olulisi eeliseid, on VBA endiselt populaarsem kui VSTO. VSTO nõuab lisaks Office'i rakendusele ka Visual Studio professionaalse või uuema versiooni kasutamist - mis maksab teile tõenäoliselt rohkem kui teie kasutatav Office'i rakendus. Kuid kuna VBA on integreeritud host Office'i rakendusega, pole teil vaja muud.

instagram viewer

VBA-d kasutavad peamiselt Office'i eksperdid, kes soovivad oma tööd kiiremaks ja lihtsamaks muuta. VBA-s kirjutatud suuri süsteeme näete harva. Teisalt kasutavad suuremate organisatsioonide kutselised programmeerijad VSTO lisandmoodulite loomiseks, mis võivad olla üsna keerukad. Kolmanda osapoole, näiteks Wordi paberifirma või Exceli raamatupidamisettevõtte taotlus kirjutatakse tõenäolisemalt VSTO abil.

Microsoft märgib oma dokumentides, et VBA kasutamiseks on põhimõtteliselt kolm põhjust:

-> Automatiseerimine ja kordamine - arvutid saavad sama asja teha ikka ja jälle palju paremini ja kiiremini, kui inimesed suudavad.

-> Kasutajate interaktsiooni laiendid - kas soovite täpselt soovitada, kuidas keegi peaks dokumendi vormindama või faili salvestama? VBA saab seda teha. Kas soovite kontrollida, mida keegi sisestab? Ka VBA saab seda teha.

-> Office 2010 rakenduste koostoime - selle sarja hilisem artikkel kannab nime Word ja Excel Working Working. Kuid kui see on see, mida vajate, võiksite kaaluda Kontorite automatiseerimine, st süsteemi kirjutamine VB.NET-i abil ja seejärel vastavalt vajadusele Office'i rakenduse (nt Word või Excel) funktsioonide kasutamine.

Microsoft on teatanud, et nad toetavad ka edaspidi VBA-d ja see on väljapaistvalt esile toodud Ametlik Microsoft Office 2010 arendamise tegevuskava. Nii et teil on nii palju kinnitust, nagu Microsoft kunagi ette näeb, et teie investeering VBA arendusse pole lähitulevikus vananenud.

Teisest küljest on VBA viimane järelejäänud Microsofti toode, mis sõltub VB6 "COM" tehnoloogiast. Nüüd on see üle kahekümne aasta vana! Inimese aastatel muudaks see vanemaks kui Vampiir Lestat. Võite näha, et see on "proovitud, järele proovitud ja tõene" või võite mõelda kui "iidne, vananenud ja vananenud". Ma pigem pooldan esimest kirjeldust, kuid te peaksite olema faktidega kursis.

Esimene asi, mida tuleb mõista, on VBA ja Office'i rakenduste, nagu Word ja Excel, suhe. Office'i rakendus on a peremees VBA jaoks. VBA programmi ei saa kunagi ise teostada. VBA töötatakse välja vastuvõtvas keskkonnas (kasutades Arendaja vahekaart Office'i rakenduse ribal) ja see tuleb täita Wordi dokumendi, Exceli töövihiku, Accessi andmebaasi või mõne muu Office'i hostina.

VBA tegelikult kasutamise viis on ka erinev. Rakenduses, nagu Word, kasutatakse VBA-d peamiselt hostkeskkonna objektidele juurdepääsu saamiseks, näiteks dokumendi lõikudele juurdepääsu saamiseks Wordis. Dokument. Lõiked objekt. Iga hostkeskkond lisab ainulaadseid objekte, mis pole teistes hostikeskkondades saadaval. (Näiteks Wordi dokumendis puudub "töövihik". Töövihik on Exceli jaoks ainulaadne.) Visual Basici kood on peamiselt selleks, et oleks võimalik kasutada objekte, mis on kohandatud iga Office'i hostrakenduse jaoks.

VBA ja hostispetsiifilise koodi ühilduvust saab näha selles koodinäidises (võetud Microsoftilt Loodetuule näidiste andmebaas), kus puhtalt VBA-kood on näidatud punaselt ja pääsupõhine kood on näidatud sinine. Punane kood oleks Excelis või Wordis sama, kuid sinine kood on selle Accessi rakenduse ainulaadne.

VBA ise on peaaegu sama, mis aastaid. Selle integreerimise viisi host-Office'i rakenduse ja abisüsteemiga on rohkem täiustatud.

Office'i 2010. aasta versioon ei kuva vaikimisi vahekaarti Arendaja. Vahekaart Arendaja viib teid rakenduse sellesse ossa, kus saate luua VBA programme, nii et esimene asi, mida peate tegema, on selle valiku muutmine. Lihtsalt minge vahekaardile File, Options, Customize Ribbon ja klõpsake vahekaartide peamistel vahekaardil Developer.

Abisüsteem töötab palju sujuvamalt kui eelmistes versioonides. VBA-küsimuste kohta saate abi kas offline, süsteemist, mis on installitud teie Office'i rakendusega, või Microsofti veebist Internetis. Need kaks liidest on mõeldud palju sarnaseks:


Illustratsiooni kuvamiseks klõpsake siin

Kui teie Interneti-ühendus on kiire, annab veebiabi teile rohkem ja paremat teavet. Kuid lokaalselt installitud versioon on tõenäoliselt kiirem ja enamikul juhtudel on see sama hea. Kui kohalik versioon ei anna teile seda, mida soovite, võiksite teha kohaliku spikri vaikimisi ja kasutada seejärel veebipõhist abi. Kiireim viis veebis kasutamiseks on lihtsalt spikrist rippmenüüst Otsing lihtsalt "Kõik sõnad" (või "Kõik Excel" või mõni muu rakendus). See lülitatakse kohe võrku ja teeb sama otsingu, kuid see ei lähtesta teie vaikevalikut.


Illustratsiooni kuvamiseks klõpsake siin

Järgmisel lehel alustame sellega, kuidas VBA programmi tegelikult luua.

Kui VBA-d hostib selline rakendus nagu Word või Excel, "elab" programm dokumendifailis, mida host kasutab. Näiteks Wordis saate salvestada oma 'Wordi makro' (see on mitte 'makro', kuid me ei hakka praegu termini üle järele mõtlema) ei Wordi dokumendis ega Wordi mallis.

Oletame nüüd, et see VBA programm on loodud Wordis (see lihtne programm muudab valitud rea jaoks fondi lihtsalt paksus kirjas) ja salvestatakse Wordi dokumenti:

Alam AboutMacro () ' Teave makro makro kohta. 'Makro salvestas 9.9.19999 Dan Mabbutt. ' Valik. Koduvõtmeüksus: = wdStory. Valik. EndKey Unit: = wdLine, Extend: = wdExtend. Valik. Font. Rasvane = wdToggle. Valik. Lõppvõtmeühik: = wdStory. Lõpu alam.

Varasemates Office'i versioonides näete selgelt dokumendi osana talletatud VBA-koodi faili salvestatud Wordi dokumendis, vaadates seda Notepadis, kus Wordi dokumendis kõike saab nähtud. See illustratsioon on toodetud Wordi varasema versiooniga, kuna Microsoft muutis dokumendi vormingut praeguses versioonis ja VBA programmi kood ei kuvata enam selgelt lihttekstina. Kuid peamine on sama. Samamoodi salvestatakse Exceli arvutustabel "Exceli makro" abil .xlsm-faili osana.


Illustratsiooni kuvamiseks klõpsake siin

VBA ja turvalisus

Üks tõhusamaid arvutiviiruse trikke minevikus oli pahatahtliku VBA-koodi lisamine Office'i dokumenti. Varasemate Office'i versioonidega võis viirus dokumendi avamisel automaatselt käivituda ja teie arvutis laost tekitada. See avatud turvaauk Office'is hakkas mõjutama Office'i müüki ja see tõepoolest pälvis Microsofti tähelepanu. Praeguse 2010. aasta Office'i põlvkonnaga on Microsoft auku põhjalikult ühendanud. Lisaks siin nimetatud parandustele on Microsoft täiustanud Office'i turvalisust viisil, mida te isegi riistvara tasemel isegi ei märka. Kui te ei soovi VBA-d kasutada seetõttu, et kuulsite, et see pole turvaline, siis võite olla kindel, et Microsoft on selle muutmiseks veel ühe miili teinud.

Kõige olulisem muudatus oli spetsiaalse dokumenditüübi loomine just VBA-programme sisaldavate Office'i dokumentide jaoks. Näiteks Wordis ei saa MyWordDoc.docx sisaldada VBA-programmi, kuna Word ei luba programme faililaiendiga "docx" salvestatud failis. VBA programmeerimise lubamiseks faili osana tuleb fail salvestada kui "MyWordDoc.docm". Excelis on faililaiend ".xlsm".

Selle täiustatud dokumenditüübiga tutvumiseks lõi Microsoft Office'is uue turvalisuse alamsüsteemi nimega Trust Center. Põhimõtteliselt saate kohandada seda, kuidas teie Office'i rakendus töötleb VBA-koode sisaldavaid dokumente väga detailselt. Usalduskeskuse avate oma Office'i rakenduse vahekaardil Arendaja, klõpsates lindi jaotises Kood suvandit Makro turvalisus.


Illustratsiooni kuvamiseks klõpsake siin

Mõned suvandid on mõeldud teie Office'i rakenduste "karastamiseks", nii et pahatahtlikku koodi ei töötata ja teised on mille eesmärk on hõlbustada arendajatel ja kasutajatel VBA kasutamist ilma turvalisuseta asjatut asja aeglustamata alla. Nagu näete, on turvalisuse kohandamiseks palju viise ja nende kõigi läbimine ületab selle artikli ulatust. Õnneks on Microsofti saidil selle teema kohta ulatuslik dokumentatsioon. Ja see on ka õnn, et vaikimisi turvasätted sobivad enamiku nõuete jaoks.

Kuna VBA on seotud host Office'i rakendusega, peate selle seal käivitama. Seda teemat käsitletakse alates järgmisest lehest.

Kuidas ma VBA rakendust käivitan?

See on tegelikult väga hea küsimus, kuna see on esimene, mida teie rakenduse kasutajad küsivad. Põhimõtteliselt on kaks võimalust:

-> Kui otsustate programmi käivitamiseks mitte kasutada juhtnuppu, näiteks nuppu, siis peate kasutama lindil käsku Makrod (vahekaart Arendaja, Koodirühm). Valige VBA-programm ja klõpsake nuppu Käivita. Kuid mõnele teie kasutajale võib see tunduda pisut liiga palju. Näiteks võite mitte soovida, et vahekaart Arendaja oleks neile isegi saadaval. Sellisel juhul ...

-> Rakenduse käivitamiseks peate lisama midagi, mida kasutaja saab klõpsata või tippida. Selles artiklis vaatleme nuppude juhtimist. Kuid selleks võib olla otsetee klõpsamine, tööriistariba ikoon või isegi andmete sisestamine. Neid nimetatakse sündmused ja see, millest me selles ja hilisemates artiklites kirjutame, on sündmuse kood - programmikood, mis käivitatakse automaatselt, kui juhtub mõni konkreetne sündmus, näiteks nupu nupule klõpsamine.

Kasutajavormid, vormikontrollid ja ActiveX-i juhtelemendid

Kui te ei vali ainult makro, on kõige tavalisem viis VBA programmi käitamiseks nuppu klõpsata. See nupp võib olla kas a vormi kontroll või ActiveX-i juhtelemendid. Teataval määral sõltuvad teie valikud teie kasutatavast Office'i rakendusest. Excel pakub veidi erinevaid valikuid kui näiteks Word. Kuid need põhilised kontrollide tüübid on samad.

Kuna see pakub kõige rohkem paindlikkust, vaatame, mida saate programmiga Excel 2010 teha. Kui klõpsatakse mitmele erinevale nupule, sisestatakse lahtrisse lihtne tekstisõnum, et erinevused oleksid selgemad.

Alustamiseks looge uus Exceli töövihik ja valige vahekaart Arendaja. (Kui teil on mõni teine ​​Office'i rakendus, peaks toimima nende juhiste variant.)

Klõpsake sisestusikooni. Esmalt töötame nupuga Vormikontroll.

Vormikontrollid on vanem tehnoloogia. Excelis tutvustati neid versioonis 5.0 esmakordselt 1993. aastal. Järgmisena töötame VBA kasutajavormidega, kuid vormikontrolle ei saa nendega kasutada. Samuti ei ühildu need veebiga. Vormi juhtelemendid asetatakse otse töölehe pinnale. Teisest küljest ei saa mõnda ActiveX-i juhtelementi - mida me järgmisena käsitleme - otse töölehtedel kasutada.

Vormi juhtelemente kasutatakse "klõpsa ja joonista" tehnika abil. Klõpsake nuppu Button form control. Hiirekursor muutub plussmärgiks. Joonistage juhtnuppu, lohistades üle pinna. Hiirenupu vabastamisel ilmub dialoog, kus palutakse nupuga ühenduse luua.


Illustratsiooni kuvamiseks klõpsake siin

Eriti siis, kui loote juhtelementi esimest korda, ei pea te VBA-makrosid ühendama nuppu, nii et klõpsake nuppu Uus ja avaneb VBA redigeerija koos soovitatud nimega, mis on sündmuse kesta juba täidetud alamprogramm.


Illustratsiooni kuvamiseks klõpsake siin

Selle väga lihtsa rakenduse täitmiseks tippige see alamrublisse see VBA-koodi avaldus:


Lahtrid (2, 2) .Value = "Klõpsatud vormi nupule"

ActiveX-nupp on peaaegu täpselt sama. Üks erinevus on see, et VBA paigutab selle koodi töölehele, mitte eraldi moodulisse. Siin on kogu sündmuse kood.

Privaatne alamkäskNupp1_Click () Lahtrid (4, 2) .Value = "Klõpsitud ActiveX-nupule" Lõpu alam.

Lisaks nende juhtelementide otse töölehele paigutamisele saate lisada ka a Kasutajavorm projekti juurde ja pange selle asemel juhtnupud. Kasutajavormidel - umbes sama mis Windowsi vormidel - on palju eeliseid, kui nad saavad oma juhtelemente hallata sarnaselt tavalise Visual Basicu rakendusega. Lisage Visual Basicu redigeerijasse projekti UserForm. Kasutage menüüd Vaade või paremklõpsake Project Exploreris.


Illustratsiooni kuvamiseks klõpsake siin

UserFormi vaikeseade on mitte kuva vorm. Selle nähtavaks tegemiseks (ja selle juhtelementide kasutajale kättesaadavaks tegemiseks) täitke vormi näitamise meetod. Lisasin selle jaoks veel ühe vorminupu.

Alamnupp2_Click () UserForm1.Show. Lõpu alam.

Võite märgata, et UserForm on modaalne vaikimisi. See tähendab, et kui vorm on aktiivne, on kõik muu rakenduses passiivne. (Näiteks muude nuppude klõpsamine ei anna midagi.) Saate seda muuta, muutes UserFormi ShowModal atribuudiks False. Kuid see viib meid programmeerimisse sügavamale. Selle sarja järgmised artiklid selgitavad seda lähemalt.

UserFormi kood asetatakse objekti UserForm. Kui valite Project Exploreris kõigi objektide jaoks vaatekoodi, näete, et kolmes erinevas objektis on kolm eraldi klõpsamissündmuse alamprogrammi. Kuid nad kõik on saadaval ühes ja samas töövihikus.


Illustratsiooni kuvamiseks klõpsake siin

Lisaks sündmuse sundimisele nupule klõpsamisega kasutatakse VBA-d ka hostimisrakenduse objektides toimuvatele sündmustele reageerimiseks. Näiteks saate tuvastada, millal arvutustabel Excelis muutub. Või saate tuvastada, millal Accessis andmebaasile rida lisatakse, ja kirjutada selle sündmuse käsitlemiseks programm.

Lisaks tuttavatele käsunuppudele, tekstiväljadele ja muudele komponentidele, mida programmides kogu aeg näete, saate lisada komponente, mis on tegelikult teie Exceli arvutustabeli osa sisse oma Wordi dokumenti. Või tehke vastupidist. See läheb kaugemale kui "kopeerimine ja kleepimine". Näiteks saate Wordi dokumendis näidata Exceli arvutustabelit.

VBA võimaldab teil kasutada ühe Office'i rakenduse kogu võimsust teises. Näiteks Wordil on sisseehitatud suhteliselt lihtne arvutusvõime. Kuid Excel - noh - "paistab silma arvutamisel". Oletame, et soovisite oma Wordi dokumendis kasutada Gamma funktsiooni loomulikku logi (suhteliselt keerukas matemaatikaarvutus)? VBA abil saate väärtusi sellele funktsioonile Excelis edastada ja vastuse oma Wordi dokumenti tagasi saada.

Ja saate kasutada palju enamat kui Office'i rakendused! Kui klõpsate ikoonil „Veel juhtnuppe”, näete arvukalt arvutisse installitud asjade loendit. Kõik need tööd ei tööta "karbist väljas" ja teil peaks olema igaühe jaoks olemas dokumentatsioon, kuid see annab teile ettekujutuse, kui laialdane on VBA tugi.

Kõigist VBA funktsioonidest on üks, mis on selgelt kasulikum kui ükski teine. Järgmisel lehel saate teada, mis see on.

Ma olen viimase hetke parimad salvestanud! Siin on tehnika, mis kehtib üldiselt kõigi Office'i rakenduste kohta. Leiate, et kasutate seda palju, nii et käsitleme seda siin sissejuhatuses.

Kui hakkate keerukamaid VBA-programme kodeerima, on üks esimesi probleeme, millega kokku puutute, kuidas saada teada Office'i objektide meetoditest ja omadustest. Kui kirjutate programmi VB.NET, otsite selle probleemi lahendamiseks sageli koodinäidiseid ja näiteid. Kuid kui arvestada kõigi erinevate hostimisrakendustega ja tõsiasjaga, et kõigil neist on sadu uusi objekte, ei leia te tavaliselt midagi, mis vastab täpselt sellele, mida peate tegema.

Vastus on "Salvesta makro ..."

Põhiidee on sisse lülitada funktsioon "Salvesta makro", läbida samme protsessis, mis sarnaneb sellele, mida soovite oma programmi teostada, ja seejärel kontrollida saadud VBA programmi koodide ja ideede osas.

Paljud inimesed teevad vea, mõeldes, et peate saama täpselt salvestada vajaliku programmi. Kuid see pole üldse vajalik, et olla nii täpne. Tavaliselt on see piisavalt hea, et salvestada VBA-programm, mis on lihtsalt soovitud jaoks "lähedal", ja seejärel lisada koodimuudatused, et see teeks tööd täpselt. See on nii lihtne ja kasulik, et salvestan vahel kümmekond programmi väikeste erinevustega, lihtsalt selleks, et näha, millised on koodierinevused. Ärge unustage kustutada kõiki katseid, kui olete nende vaatamise lõpetanud!

Näitena klõpsasin Word Visual Basic Editoris käsku Salvesta makro ja tippisin mitu tekstirida. Siin on tulemus. (Liini lühendamiseks on lisatud rea jätkud.)

Alam-makro1 () ' 'Makro1 makro. ' ' Valik. TypeText Text: = _. "Need on ajad, kus" Valik. TypeText Text: = _. "proovige meeste hinge. " Valik. TypeText Text: = _. "suvesõdur" Valik. TypeText Text: = _. "ja päikesepatrioot" Valik. TypeText Text: = _. "väheneb neil aegadel" Valik. TypeText Text: = _. "oma riigi teenust." Valik. Teisalda ühikut: = wdLine, arv: = 1. Valik. Koduvõtmeüksus: = wdLine. Valik. MoveRight Unit: = wdCharacter, _. Arv: = 5, laienda: = wdExtend. Valik. Font. Rasvane = wdToggle. Lõpu alam.

Keegi ei õpi VBA-d ainult enda jaoks. Kasutate seda alati koos konkreetse Office'i rakendusega. Nii et õppimise jätkamiseks on siin artikleid, mis demonstreerivad nii Wordis kui ka Excelis kasutatavat VBA-d:

-> VBA kasutamise alustamine: Wordi tööpartner

-> VBA kasutamise alustamine: Exceli tööpartner

instagram story viewer