Naučte sa kódovanie makra Word 2007 VBA

Cieľom tohto kurzu je pomôcť ľuďom, ktorí nikdy nenapísali program, skôr ako sa ho naučia napísať. Neexistuje žiadny dôvod, prečo úradníci, domácnosti, profesionálni inžinieri a dodávatelia pizze by nemal byť schopný využiť svoje vlastné ručne vyrábané vlastné počítačové programy na prácu rýchlejšie a múdrejší. Nemalo by to trvať „profesionálneho programátora“ (čokoľvek to je), aby túto prácu vykonal. Viete, čo je potrebné urobiť lepšie ako ktokoľvek iný. Môžete to urobiť sami!

(A hovorím to ako niekto, kto strávil dlhé roky písaním programov pre iných ľudí... 'Profesionálne'.)

To však nie je kurz, ako používať počítač.

Tento kurz predpokladá, že viete používať populárny softvér, a najmä, že máte v počítači nainštalovaný program Microsoft Word 2007. Mali by ste poznať základné počítačové zručnosti, napríklad ako vytvárať priečinky so súbormi (tj adresáre) a ako presúvať a kopírovať súbory. Ale ak ste sa vždy pýtali, čo vlastne počítačový program bol, je to v poriadku. Ukážeme vám.

Microsoft Office nie je lacný. Môžete však získať väčšiu hodnotu z toho drahého softvéru, ktorý ste už nainštalovali. To je veľký dôvod, ktorý používame

instagram viewer
Visual Basic pre aplikácie alebo VBA, spolu s balíkom Microsoft Office. Existujú milióny ľudí, ktorí to majú, a hŕstka (možno nikto), ktorí používajú všetko, čo môžu.

Predtým, ako pôjdeme ďalej, však musím vysvetliť ešte jednu vec o VBA. Vo februári 2002 spoločnosť Microsoft uzavrela stávku 300 miliárd dolárov na úplne novú technologickú základňu pre celú svoju spoločnosť. Hovorili tomu .NET. Odvtedy spoločnosť Microsoft presúva celú svoju technologickú základňu do VB.NET. VBA je úplne posledný programovací nástroj, ktorý stále používa VB6, osvedčenú technológiu, ktorá bola použitá pred VB.NET. (Zobrazí sa fráza „založená na COM“, ktorá popisuje túto technológiu na úrovni VB6.)

VSTO a VBA

Spoločnosť Microsoft vytvorila spôsob písania programov VB.NET pre balík Office 2007. Nazýva sa to Visual Studio Tools for Office (VSTO). Problém s programom VSTO je v tom, že musíte kúpiť a naučiť sa používať Visual Studio Professional. Excel samotný je stále založený aj na COM a .NET programy musia pracovať s Excelom cez rozhranie (nazývané PIA, Primary Interop Assembly).

Takže... Kým spoločnosť Microsoft nezačne konať a nedá vám spôsob, ako písať programy, ktoré budú pracovať s programom Word a núti vás sa pripojiť k oddeleniu IT, makrá VBA sú stále tou správnou cestou.

Ďalším dôvodom, prečo používame VBA, je to, že je skutočne „úplne upečený“ (nie upečený) vývoj softvéru prostredie, ktoré programátori už roky používajú na vytvorenie niektorých najsofistikovanejších existujúcich systémov. Nezáleží na tom, aké vysoké sú vaše programovacie zameriavače. Visual Basic má moc vás tam dostať.

Čo je to makro?

Možno ste už predtým používali desktopové aplikácie, ktoré podporujú tzv. Jazyk makra. Makrá sú tradične iba skripty akcií klávesnice zoskupené spolu s jedným menom, takže ich môžete všetky spúšťať naraz. Ak vždy začnete deň otvorením dokumentu „MyDiary“, zadaním dnešného dátumu a napísaním slov „Milý denník“ - Prečo to nechať urobiť pre vás počítač? V záujme konzistentnosti s iným softvérom spoločnosť Microsoft nazýva aj jazyk VBA makrom. Ale nie je to tak. Je to omnoho viac.

Mnoho aplikácií pre stolné počítače obsahuje softvérový nástroj, ktorý vám umožní zaznamenať makro stlačenia klávesov. V aplikáciách spoločnosti Microsoft sa tento nástroj nazýva záznam makier, výsledkom však nie je tradičné makro stlačenia klávesov. Je to program VBA a rozdiel je v tom, že jednoducho neopakuje stlačenie klávesov. Program VBA vám poskytuje rovnaký konečný výsledok, ak je to možné, ale vo VBA môžete napísať aj sofistikované systémy, ktoré v prachu zanechávajú jednoduché makra klávesnice. Napríklad môžete v Exceli používať funkcie Excelu pomocou VBA. A môžete integrovať VBA s inými systémami, ako sú databázy, web alebo iné softvérové ​​aplikácie.

Aj keď VBA záznam makra je veľmi užitočný pre jednoduché vytváranie jednoduchých makier klávesnice, programátorov zistili, že je ešte užitočnejšie dať im bežiaci štart v sofistikovanejších programoch. To budeme robiť.

štart Microsoft Word 2007 s prázdnym dokumentom a pripravte sa na napísanie programu.

Karta Vývojár v programe Word

Jednou z prvých vecí, ktorú musíte urobiť, aby ste mohli napísať program Visual Basic v programe Word 2007, je nájsť Visual Basic! Predvolená hodnota v programe Word 2007 je nezobrazovať použitú pásku. Ak chcete pridať vývojka kliknite na kartu Kancelária (logo v ľavom hornom rohu) a potom kliknite na Možnosti programu Word. cvaknutie Zobraziť kartu Vývojár na páse s nástrojmi a potom kliknite na tlačidlo OK OK.

Keď kliknete na ikonu vývojka karta, máte úplne novú sadu nástrojov používaných na písanie programov VBA. Na vytvorenie vášho prvého programu použijeme VBA Macro Recorder. (Ak stuha so všetkými vašimi nástrojmi stále mizne, pravdepodobne budete chcieť pravým tlačidlom myši kliknúť na pásku a ubezpečiť sa Minimalizujte stuhu nie je začiarknuté.)

cvaknutie Zaznamenajte makro. Pomenujte svoje makro: AboutVB1 zadaním tohto mena do Názov makra Textové pole. Vyberte umiestnenie, kam sa má makro uložiť, a kliknite na tlačidlo OK. Pozri príklad nižšie.

(Poznámka: Ak vyberiete Všetky dokumenty (Normal.dotm) z rozbaľovacej ponuky sa tento testovací program VBA v skutočnosti stane súčasťou samotného programu Word, pretože potom bude k dispozícii pre každý dokument, ktorý vytvoríte v programe Word. Ak chcete makro VBA použiť iba v konkrétnom dokumente alebo ak ho chcete poslať niekomu inému, je lepšie uložiť makro ako súčasť dokumentu. Normal.dotm je predvolené, takže ho musíte zmeniť.)

Pri zapnutom záznamníku makier zadajte text „Ahoj svet“. do vášho dokumentu Word. (Ukazovateľ myši sa zmení na miniatúrny obrázok páskovej kazety, aby ukázal, že sa zaznamenávajú stlačenia klávesov.)

(Poznámka: Ahoj svet je takmer potrebný pre „Prvý program“, pretože úplne prvý programovací manuál pre začiatok počítačový jazyk „C“ použil to. Je to už tradícia.)

cvaknutie Zastavte nahrávanie. Zatvorte program Word a uložte dokument pomocou názvu: AboutVB1.docm. Musíte vybrať a Dokument s textovým makrom Word z Uložiť ako typ rozbaľovacej ponuky.

To je všetko! Teraz ste napísali program Word VBA. Pozrime sa, ako to vyzerá!

Pochopenie toho, čo je program VBA

Ak ste program Word zatvorili, znova ho otvorte a vyberte ikonu AboutVB1.docm súbor, ktorý ste uložili v predchádzajúcej lekcii. Ak sa všetko urobilo správne, v hornej časti okna dokumentu by sa malo zobraziť banner s bezpečnostným upozornením.

VBA a bezpečnosť

VBA je skutočný programovací jazyk. To znamená, že VBA dokáže robiť čokoľvek, čo potrebujete. A to zase znamená, že ak dostanete dokument programu Word s vloženým makrom od nejakého „zlého“, môže toto makro urobiť aj čokoľvek. Varovanie spoločnosti Microsoft je preto potrebné brať vážne. Na druhej strane, vy napísal toto makro a všetko, čo robí, je „Hello World“, takže tu nehrozí žiadne riziko. Kliknutím na tlačidlo povolíte makrá.

Ak chcete vidieť, čo záznam makra vytvoril (rovnako ako robiť väčšinu ďalších vecí, ktoré zahŕňajú VBA), musíte spustiť Editor jazyka Visual Basic. Na ľavej strane pásky pre vývojárov je k dispozícii ikona.

Najprv si všimnite ľavé okno. Toto sa nazýva Prieskumník projektu a zoskupuje objekty na vysokej úrovni (budeme o nich hovoriť viac), ktoré sú súčasťou vášho projektu Visual Basic.

Keď sa spustil záznam makra, mali ste na výber normálne šablónu alebo aktuálny dokument ako miesto pre vaše makro. Ak ste vybrali Normálny, potom NewMacros bude súčasťou normálne vetva displeja Project Explorer. (Mali ste vybrať aktuálny dokument. Ak ste vybrali normálne, odstráňte dokument a zopakujte predchádzajúce pokyny.) Vyberte položku NewMacros pod moduly vo vašom aktuálnom projekte. Ak sa stále nezobrazuje žiadne okno s kódom, kliknite na tlačidlo kód pod vyhliadka Ponuka.

Dokument programu Word ako kontajner VBA

Každý program jazyka Visual Basic musí byť v nejakom súbore „kontajner“. V prípade makier VBA programu Word 2007 je tento kontajner dokument programu Word („.docm“). Programy Word VBA sa nedajú spustiť bez programu Word a nemôžete vytvárať samostatné („.exe“) programy jazyka Visual Basic, ako je to možné v jazyku Visual Basic 6 alebo Visual Basic .NET. Ale to stále ponecháva celý svet vecí, ktoré môžete urobiť.

Váš prvý program je určite krátky a milý, ale bude slúžiť na predstavenie hlavných funkcií VBA a editora jazyka Visual Basic.

Zdroj programu bude obyčajne pozostávať zo série podprogramov. Keď prejdete na pokročilejšie programovanie, zistíte, že okrem podprogramov môžu byť súčasťou programu aj ďalšie veci.

Tento konkrétny podprogram je pomenovaný AboutVB1. Hlavička podprogramu musí byť spárovaná s End Sub na spodku. V zátvorke môže byť uvedený zoznam parametrov pozostávajúci z hodnôt odovzdávaných do podprogramu. Nič sa tu neprejde, ale oni tam musia byť náhradník napriek tomu vyhlásenie. Neskôr, keď spustíme makro, budeme hľadať meno AboutVB1.

V podprograme je iba jeden skutočný príkaz programu:

Výber. TypeText Text: = "Ahoj svet!"

Objekty, metódy a vlastnosti

Toto vyhlásenie obsahuje veľké tri:

  • objekt
  • metóda
  • vlastnosť

Vyhlásenie skutočne pridá text „Ahoj svet“. k obsahu aktuálneho dokumentu.

Ďalšou úlohou je spustiť náš program niekoľkokrát. Rovnako ako kúpa automobilu je dobré jazdiť ho na chvíľu, kým sa nebude cítiť príjemne. Budeme to robiť ďalej.

Programy a dokumenty

Máme náš slávny a komplikovaný systém... pozostáva z jedného programového vyhlásenia... ale teraz to chceme spustiť. Tu je o čom to všetko je.

Je tu jeden koncept, ktorý je potrebné sa naučiť, ktorý je veľmi dôležitý a často často zamieňa prvých časovačov: rozdiel medzi program a dokument. Tento koncept je základný.

Programy VBA musia byť obsiahnuté v hostiteľskom súbore. V programe Word je hostiteľom dokument. V našom príklade to je AboutVB1.docm. Program sa skutočne uloží do dokumentu.

Napríklad, ak by to bol Excel, hovorili by sme o program a tabuľkový procesor. V aplikácii Access program a databázy. Dokonca aj v samostatnej aplikácii Visual Basic Windows by sme mali program a a formulár.

(Poznámka: V programovaní existuje trend označovať všetky kontajnery vysokej úrovne ako „dokument“. To je konkrétne prípad, keď XML... ďalšia nová technológia... sa používa. Nenechajte sa zmiasť. Aj keď je to mierna nepresnosť, môžete si myslieť, že „dokumenty“ sú zhruba rovnaké ako „súbory“.)

Existujú... Ummmmm... o troch hlavných spôsoboch spustenia makra VBA.

  1. Môžete ho spustiť z dokumentu Word.
    (Poznámka: Dve podkategórie majú vybrať makra z ponuky Nástroje alebo jednoducho stlačiť Alt-F8. Ak ste makro priradili skratke Panela s nástrojmi alebo klávesnice, je to ešte jeden spôsob.))
  2. Môžete ho spustiť z editora pomocou ikony Spustiť alebo Spustiť.
  3. Programom môžete prechádzať jedným krokom v režime ladenia.

Mali by ste vyskúšať každú z týchto metód, aby ste sa s rozhraním Word / VBA cítili pohodlne. Po dokončení budete mať celý dokument vyplnený opakovaním „Hello World!“

Spustenie programu z programu Word je pomerne ľahké. Stačí kliknúť na makro po kliknutí na ikonu makro ikona pod ikonou vyhliadka tab.

Ak ho chcete spustiť z editora, najprv otvorte editor jazyka Visual Basic a potom buď kliknite na ikonu Spustiť alebo z ponuky vyberte príkaz Spustiť. Tu môže byť rozdiel medzi dokumentom a programom pre niektorých mätúci. Ak máte dokument minimalizovaný alebo máte okná usporiadané tak, že ho editor pokrýva, môžete znova a znova kliknúť na ikonu Spustiť a zdá sa, že sa nič nestane. Ale program beží! Znovu prepnite na dokument a uvidíte.

Jediným krokom v programe je pravdepodobne najužitočnejšia technika riešenia problémov. To sa vykonáva aj pomocou editora jazyka Visual Basic. Ak to chcete vyskúšať, stlačte F8 alebo vyberte Vojsť z ladiť Ponuka. Prvé vyhlásenie v programe, náhradník vyhlásenie, je zvýraznené. Stlačenie F8 vykoná príkazy programu postupne, až kým program neskončí. Môžete presne vidieť, kedy sa text pridá do dokumentu týmto spôsobom.

Existuje mnoho prepracovanejších ladiacich techník, ako sú „body prerušenia“, skúmanie programových objektov v „okamžitom okne“ a použitie „hodinového okna“. Ale zatiaľ si uvedomte, že toto je primárna technika ladenia, ktorú budete používať ako programátor.

Objektovo orientované programovanie

Ďalšia hodina triedy je o Objektovo orientované programovanie.

"Whaaaattttt!" (Počul som, že stonáš) „Chcem len písať programy. Nepřihlásil som sa ako počítačový vedec! “

Neboj sa! Existujú dva dôvody, prečo je to veľký krok.

Po prvé, v dnešnom programovacom prostredí jednoducho nemôžete byť efektívnym programátorom bez pochopenia objektovo orientovaných programovacích konceptov. Dokonca aj náš veľmi jednoduchý jednoradový program „Hello World“ pozostával z objektu, metódy a vlastnosti. Podľa môjho názoru nie je pochopenie objektov najväčším problémom začínajúcich programátorov. Takže budeme konfrontovať šelmu priamo vpredu!

Po druhé, urobíme to čo najbolestnejšie. Nebudeme vás zamieňať s množstvom žargónu počítačovej vedy.

Hneď potom sa chystáme skočiť späť do písania programovacieho kódu s lekciou, kde vyvinieme makro VBA, ktoré pravdepodobne použijete! Dokončili sme tento program v ďalšej lekcii o niečo viac a ukážeme vám, ako začať používať VBA s niekoľkými aplikáciami naraz.