Naučte se kódování makra Word 2007 VBA

Cílem tohoto kurzu je pomoci lidem, kteří nikdy nenapsali program, dříve, než se ho naučí psát. Neexistuje žádný důvod, proč administrativní pracovníci, v domácnosti, profesionální inženýři a osoby, které dodávají pizzu by neměly mít možnost využít své vlastní ručně vytvořené vlastní počítačové programy, aby fungovaly rychleji a chytřejší. Nemělo by to trvat „profesionálního programátora“ (ať už to je cokoli), aby tuto práci provedl. Víte, co je třeba udělat lépe než kdokoli jiný. Můžete to udělat sami!

(A říkám to jako někdo, kdo strávil mnoho let psaní programů pro jiné lidi... 'profesionálně'.)

S tím bylo řečeno, není to kurz, jak používat počítač.

Tento kurz předpokládá, že víte, jak používat populární software, a zejména, že máte v počítači nainstalován Microsoft Word 2007. Měli byste znát základní počítačové dovednosti, například jak vytvářet složky souborů (tj. Adresáře) a jak přesouvat a kopírovat soubory. Ale pokud jste vždy přemýšleli, co vlastně počítačový program byl, je to v pořádku. Ukážeme vám.

instagram viewer

Microsoft Office není levný. Můžete však získat větší hodnotu z toho drahého softwaru, který jste již nainstalovali. To je velký důvod, který používáme Visual Basic pro aplikace nebo VBA, spolu s Microsoft Office. Existují miliony lidí, kteří to mají, a hrstka (možná nikdo), která používá vše, co může.

Než půjdeme dále, musím vysvětlit ještě jednu věc o VBA. V únoru 2002 Microsoft učinil sázku 300 miliard dolarů na zcela novou technologickou základnu pro celou svou společnost. Říkali tomu .NET. Od té doby společnost Microsoft přesouvá celou svou technologickou základnu do VB.NET. VBA je úplně poslední programovací nástroj, který stále používá VB6, osvědčenou technologii, která byla použita před VB.NET. (Zobrazí se věta „založená na COM“, která popisuje tuto technologii na úrovni VB6.)

VSTO a VBA

Společnost Microsoft vytvořila způsob, jak psát programy VB.NET pro sadu Office 2007. Říká se tomu Visual Studio Tools for Office (VSTO). Problém s VSTO je v tom, že musíte zakoupit a naučit se používat Visual Studio Professional. Excel sám je stále založen na COM a .NET programy musí pracovat s Excelem přes rozhraní (nazývané PIA, Primary Interop Assembly).

Tak... Dokud společnost Microsoft nezačne jednat a nedá vám způsob, jak psát programy, které budou pracovat s aplikací Word a nepřinutí vás připojit se k oddělení IT, makra VBA jsou stále tou správnou cestou.

Dalším důvodem, proč používáme VBA, je to, že je skutečně „plně upečený“ (ne upečený) vývoj softwaru prostředí, které programátoři používají po léta k vytvoření některých z nejdokonalejších existujících systémů. Nezáleží na tom, jak vysoké jsou vaše programovací mířidla. Visual Basic má moc vás tam dostat.

Co je to makro?

Možná jste už dříve používali aplikace pro stolní počítače, které podporují tzv. Jazyk makra. Makra jsou tradičně pouze skripty akcí klávesnice seskupených společně s jedním jménem, ​​takže je můžete provádět všechny najednou. Pokud den začnete vždy otevřením dokumentu „MyDiary“, zadáním dnešního data a zadáním slov „Drahý deník“ - Proč to nechat udělat pro vás počítač? Aby byl konzistentní s jiným softwarem, Microsoft nazývá VBA také jazykem makra. Ale není to tak. Je to mnohem víc.

Mnoho aplikací pro stolní počítače obsahuje softwarový nástroj, který vám umožní zaznamenat makro stisknutí kláves. V aplikacích společnosti Microsoft se tento nástroj nazývá záznam makra, ale výsledkem není tradiční makro stisknutí kláves. Je to program VBA a rozdíl je v tom, že neopakuje pouze stisknutí kláves. Program VBA vám dává stejný konečný výsledek, je-li to možné, ale ve VBA můžete také psát sofistikované systémy, které v prachu zanechávají jednoduchá makra klávesnice. Například můžete používat funkce Excelu v aplikaci Word pomocí VBA. A můžete integrovat VBA s jinými systémy, jako jsou databáze, web nebo jiné softwarové aplikace.

Přestože VBA Makro rekordér je velmi užitečný pro jednoduché vytváření jednoduchých makra klávesnice, programátoři zjistili, že je ještě užitečnější dát jim běžný start ve složitějších programech. To je to, co uděláme.

Start Microsoft Word 2007 s prázdným dokumentem a připravte se na psaní programu.

Karta Vývojář v aplikaci Word

Jednou z prvních věcí, které musíte udělat pro zápis programu Visual Basic v aplikaci Word 2007, je najít Visual Basic! Ve výchozím nastavení v aplikaci Word 2007 se nezobrazí použitá stuha. Chcete-li přidat Vývojář nejprve klikněte na Kancelář (logo v levém horním rohu) a poté klikněte na Možnosti aplikace Word. Klikněte na Zobrazit kartu Vývojář na pásu karet a potom klikněte na OK.

Když kliknete na ikonu Vývojář karta, máte zcela novou sadu nástrojů používaných k psaní programů VBA. K vytvoření vašeho prvního programu použijeme VBA Macro Recorder. (Pokud pásek se všemi nástroji neustále mizí, možná budete chtít klepnout pravým tlačítkem myši na pásek a ujistit se Minimalizujte stuhu není zaškrtnuto.)

Klikněte na Záznam makra. Pojmenujte své makro: About VB1 zadáním tohoto jména do Název makra Textové pole. Vyberte svůj aktuální dokument jako umístění pro uložení makra a klikněte na OK. Viz příklad níže.

(Poznámka: Pokud vyberete Všechny dokumenty (Normal.dotm) z rozevírací nabídky se tento testovací program VBA ve skutečnosti stane součástí samotného Wordu, protože bude poté k dispozici pro každý dokument, který vytvoříte v aplikaci Word. Pokud chcete použít pouze makro VBA v konkrétním dokumentu nebo chcete-li jej poslat někomu jinému, je lepší uložit makro jako součást dokumentu. Normal.dotm je výchozí, takže ji musíte změnit.)

Při zapnutém zapisovači maker zadejte text „Ahoj svět“. do vašeho dokumentu Word. (Ukazatel myši se změní na miniaturní obrázek kazety s páskou, což ukazuje, že se zaznamenávají stisknutí kláves.)

(Poznámka: Hello World je téměř nutný pro "První program", protože úplně první programovací příručka pro začátek počítačový jazyk „C“ použil to. Od té doby je to tradice.)

Klikněte na Zastavte nahrávání. Zavřete Word a uložte dokument pomocí názvu: AboutVB1.docm. Musíte vybrat a Dokument Word s možností makra z Uložit jako typ rozbalovací nabídka.

A je to! Nyní jste napsali program Word VBA. Uvidíme, jak to vypadá!

Pochopení toho, co je program VBA

Pokud jste zavřeli Word, znovu jej otevřete a vyberte AboutVB1.docm soubor, který jste uložili v předchozí lekci. Pokud bylo vše provedeno správně, měli byste v horní části okna dokumentu zobrazit upozornění s bezpečnostním upozorněním.

VBA a zabezpečení

VBA je skutečný programovací jazyk. To znamená, že VBA dokáže dělat cokoli, co potřebujete. A to zase znamená, že pokud obdržíte dokument aplikace Word s vloženým makrem od nějakého „špatného chlapa“, může toto makro udělat téměř cokoli. Varování Microsoftu je tedy třeba brát vážně. Na druhou stranu, vy napsal toto makro a vše, co dělá, je „Hello World“, takže zde nehrozí žádné riziko. Klepnutím na tlačítko aktivujete makra.

Chcete-li vidět, co záznam maker vytvořil (stejně jako dělat většinu dalších věcí, které zahrnují VBA), musíte spustit Editor jazyka. Na levé straně pásu karet pro vývojáře je ikona.

Nejprve si všimněte levého okna. Tomu se říká Prohlížeč projektu a seskupuje objekty na vysoké úrovni (budeme o nich mluvit více), které jsou součástí vašeho projektu Visual Basic.

Když byl spuštěn Macro Recorder, měli jste na výběr Normální šablonu nebo aktuální dokument jako umístění pro vaše makro. Pokud jste vybrali Normální, pak NewMacros bude součástí Normální větev displeje Project Explorer. (Měli jste vybrat aktuální dokument. Pokud jste vybrali Normální, odstraňte dokument a opakujte předchozí pokyny.) Vyberte NewMacros pod Moduly ve vašem aktuálním projektu. Pokud se okno s kódem stále nezobrazuje, klikněte na Kód pod Pohled Jídelní lístek.

Dokument Word jako kontejner VBA

Každý program jazyka musí být v nějakém souboru 'kontejner'. V případě maker VBA aplikace Word 2007 je tento kontejner dokument Word („.docm“). Programy Word VBA nelze spouštět bez aplikace Word a nemůžete vytvářet samostatné ('.exe') programy jazyka Visual Basic, jako je to možné v jazyce Visual Basic 6 nebo Visual Basic .NET. Ale to stále ponechává celý svět věcí, které můžete dělat.

Váš první program je jistě krátký a sladký, ale poslouží k představení hlavních funkcí VBA a editoru jazyka.

Zdroj programu bude obvykle sestávat z řady podprogramů. Když přejdete na pokročilejší programování, zjistíte, že kromě podprogramů mohou být součástí programu i jiné věci.

Tento konkrétní podprogram je pojmenován About VB1. Záhlaví podprogramu musí být spárováno s End Sub dole. Závorka může obsahovat seznam parametrů sestávající z hodnot předávaných do podprogramu. Nic se tady nepředává, ale musí tam být Sub prohlášení stejně. Později, když spustíme makro, budeme hledat jméno About VB1.

V podprogramu je pouze jeden skutečný programový příkaz:

Výběr. TypeText Text: = "Ahoj svět!"

Objekty, metody a vlastnosti

Toto prohlášení obsahuje tři velké:

  • objekt
  • metoda
  • vlastnost

Prohlášení skutečně přidá text „Ahoj svět“. k obsahu aktuálního dokumentu.

Dalším úkolem je několikrát spustit náš program. Stejně jako pořízení automobilu je dobrý nápad jet na chvíli projet, dokud se necítí trochu pohodlně. Děláme to dál.

Programy a dokumenty

Máme náš slavný a komplikovaný systém... sestávající z jednoho programového prohlášení... ale teď to chceme spustit. To je to, o čem to všechno je.

Je tu jeden koncept, který je třeba se zde naučit, který je velmi důležitý a často často zaměňuje první časovače: rozdíl mezi program a dokument. Tento koncept je základní.

Programy VBA musí být obsaženy v hostitelském souboru. V aplikaci Word je hostitelem dokument. V našem příkladu to je AboutVB1.docm. Program je skutečně uložen uvnitř dokumentu.

Pokud by to byl například Excel, mluvili bychom o program a tabulka. V aplikaci Access program a databáze. I v samostatné aplikaci Visual Basic Windows bychom měli program a formulář.

(Poznámka: V programování existuje trend označovat všechny kontejnery na vysoké úrovni jako „dokument“. To je konkrétně případ, kdy XML... další nová technologie... se používá. Nenechte se zmást. I když se jedná o mírnou nepřesnost, můžete si myslet, že „dokumenty“ jsou zhruba stejné jako „soubory“.)

Existují... ummmmm... asi tři hlavní způsoby, jak spustit makro VBA.

  1. Můžete jej spustit z dokumentu Word.
    (Poznámka: Dvě podkategorie mají vybrat Makra z nabídky Nástroje nebo pouze stisknout Alt-F8. Pokud jste makro přiřadili zkratce na panelu nástrojů nebo klávesnici, je to ještě jeden způsob.))
  2. Můžete jej spustit z Editoru pomocí ikony Run nebo Run.
  3. V režimu ladění můžete program procházet jedním krokem.

Měli byste vyzkoušet každou z těchto metod, abyste se s rozhraním Word / VBA cítili pohodlně. Po dokončení budete mít celý dokument plný opakování "Hello World!"

Spuštění programu z aplikace Word je poměrně snadné. Stačí vybrat makro po kliknutí na Makro ikona pod ikonou Pohled tab.

Chcete-li jej spustit z Editoru, nejprve otevřete editor jazyka Visual Basic a potom klepněte na ikonu Spustit nebo vyberte Spustit z nabídky. Zde může být rozdíl mezi dokumentem a programem pro některé matoucí. Pokud máte dokument minimalizovaný nebo máte možná uspořádaná okna, takže jej editor pokrývá, můžete znovu a znovu klepnout na ikonu Spustit a zdá se, že se nic neděje. Ale program běží! Přepněte znovu do dokumentu a podívejte se.

Jediným krokem v programu je pravděpodobně nejužitečnější technika řešení problémů. To se také provádí z editoru jazyka. Chcete-li to vyzkoušet, stiskněte tlačítko F8 nebo vyberte Vstoupit do z Ladit Jídelní lístek. První prohlášení v programu, Sub prohlášení, je zvýrazněno. Stisknutím F8 se provádějí příkazy programu postupně, dokud program neskončí. Můžete přesně vidět, kdy se text přidá do dokumentu tímto způsobem.

Existuje mnoho rafinovanějších debugovacích technik, jako jsou 'Body přerušení', zkoumání programových objektů v 'Okamžitém okně' a použití 'Okna sledování'. Ale prozatím si uvědomte, že se jedná o primární techniku ​​ladění, kterou budete používat jako programátor.

Objektově orientované programování

Další lekce třídy je o Objektově orientované programování.

"Whaaaattttt!" (Slyším tě sténat) „Chci jen psát programy. Nepřihlásil jsem se jako počítačový vědec! “

Neboj se! Existují dva důvody, proč je to skvělý krok.

Za prvé, v dnešním programovacím prostředí prostě nemůžete být efektivním programátorem bez pochopení objektově orientovaných programovacích konceptů. Dokonce i náš velmi jednoduchý jednořádkový program „Hello World“ se skládal z objektu, metody a vlastnosti. Podle mého názoru není pochopení objektů největším jediným problémem začínajících programátorů. Takže se postavíme před šelmu!

Za druhé, uděláme to co nejbolestivější. Nebudeme vás zaměňovat se spoustou žargonu informatiky.

Ale hned po tom se chystáme skočit zpět do psaní programovacího kódu s lekcí, kde vyvíjíme makro VBA, které pravděpodobně můžete použít! Dokončili jsme tento program v další lekci o něco více a skončíme tím, že vám ukážeme, jak začít používat VBA s několika aplikacemi najednou.