Průvodce používáním jazyka pro aplikace

click fraud protection

Jednou z nejvýznamnějších vlastností jazyka Visual Basic je, že je kompletní vývojové prostředí. Ať už chcete dělat cokoli, je zde „příchuť“ jazyka, která vám pomůže dělat tuto práci! Můžete použít Visual Basic pro stolní a mobilní a vzdálený vývoj (VB.NET), skriptování (VBScript) a kancelářský vývoj (VBA !) Pokud jste vyzkoušeli VBA a chcete vědět více o tom, jak ji používat, toto je návod pro vás. (Tento kurz je založen na verzi VBA nalezené v Microsoft Office 2010.)

Pokud hledáte kurz v Microsoft Visual Basic .NET, jste také našli správné místo. Podívejte se na: Visual Basic .NET 2010 Express - kurz „Od základu“

VBA jako obecný koncept bude popsán v tomto článku. VBA má víc, než si možná myslíte! Naleznete zde také články o sester Office VBA:

V zásadě existují dva způsoby, jak vyvinout programy, které mohou pracovat s aplikacemi sady Office: VBA a VSTO. V říjnu 2003 společnost Microsoft představila vylepšení profesionálního programovacího prostředí Visual Studio .NET s názvem Visual Studio Tools for Office - VSTO. Ale i když VSTO využívá značné výhody .NET v Office, VBA zůstává stále populárnější než VSTO. VSTO vyžaduje kromě aplikace Office také použití Professional nebo vyšší verze Visual Studio - což vás pravděpodobně bude stát více než aplikace Office, kterou používáte. Ale protože je VBA integrována s hostitelskou aplikací Office, nepotřebujete nic jiného.

instagram viewer

VBA používají především odborníci v kanceláři, kteří chtějí, aby jejich práce byla rychlejší a snadnější. Zřídka vidíte velké systémy psané ve VBA. Na druhou stranu VSTO používají profesionální programátoři ve větších organizacích k vytváření doplňků, které mohou být docela sofistikované. Aplikace od třetí strany, jako je papírová společnost pro Word nebo účetní firma pro Excel, bude s větší pravděpodobností napsána pomocí VSTO.

Společnost Microsoft ve své dokumentaci uvádí, že použití VBA má v zásadě tři důvody:

-> Automatizace a opakování - Počítače dokážou dělat to samé znovu a znovu mnohem lépe a rychleji, než mohou lidé.

-> Rozšíření interakce s uživatelem - Chcete přesně navrhnout, jak by měl někdo formátovat dokument nebo uložit soubor? VBA to dokáže. Chcete ověřit, co někdo vstoupí? VBA to dokáže také.

-> Interakce mezi aplikacemi sady Office 2010 - novější článek této série se nazývá Word and Excel Working together. Ale pokud to je to, co potřebujete, možná budete chtít zvážit Automatizace kanceláří, to znamená zápis systému pomocí VB.NET a poté podle potřeby pomocí funkcí z aplikace Office, jako je Word nebo Excel.

Společnost Microsoft uvedla, že budou i nadále podporovat VBA, a to je významnou součástí Oficiální Plán rozvoje Microsoft Office 2010. Máte tedy stejnou jistotu, jakou společnost Microsoft kdy poskytla, že vaše investice do rozvoje VBA nebudou v blízké budoucnosti zastaralé.

Na druhou stranu VBA je poslední zbývající produkt společnosti Microsoft, který závisí na technologii VB6 „COM“. Je to přes dvacet let! V lidských letech by to bylo starší než Lestat the Vampire. Můžete to vidět jako „vyzkoušené, vyzkoušené a pravdivé“, nebo si to můžete myslet jako „starověké, opotřebované a zastaralé“. Mám sklon upřednostňovat první popis, ale měli byste znát fakta.

První věcí, které je třeba pochopit, je vztah mezi aplikacemi VBA a Office, jako jsou Word a Excel. Aplikace Office je hostitel pro VBA. Program VBA nelze nikdy spustit sám. VBA je vyvíjen v hostitelském prostředí (pomocí Vývojář na pásu karet aplikace Office) a musí být provedeno jako součást dokumentu aplikace Word, sešitu Excel, databáze aplikace Access nebo jiného hostitele sady Office.

Způsob, jakým se VBA skutečně používá, je také jiný. V aplikaci, jako je Word, se VBA používá především jako způsob přístupu k objektům hostitelského prostředí, jako je například přístup k odstavcům v dokumentu pomocí Wordu. Dokument. Odstavce objekt. Každé hostitelské prostředí přispívá jedinečnými objekty, které nejsou dostupné v ostatních hostitelských prostředích. (Například v dokumentu Word není žádný „sešit“). Sešit je jedinečný pro Excel.) Kód jazyka Visual Basic je hlavně tam, aby bylo možné použít objekty přizpůsobené pro každou hostitelskou aplikaci Office.

Fúze mezi VBA a kódem specifickým pro hostitele lze vidět v tomto ukázce kódu (převzato od společnosti Microsoft Ukázková databáze Northwind), kde je čistě kód VBA zobrazen červeně a kód specifický pro přístup je zobrazen v modrý. Červený kód by byl stejný v Excelu nebo Wordu, ale modrý kód je pro tuto aplikaci Access jedinečný.

Samotný VBA je téměř stejný jako po celá léta. Způsob, jakým se integruje s hostitelskou aplikací Office a systémem nápovědy, byl vylepšen více.

Verze Office 2010 ve výchozím nastavení nezobrazuje kartu Vývojář. Karta Vývojář vás přenese do části aplikace, ve které můžete vytvářet programy VBA, takže první věcí, kterou musíte udělat, je změna této možnosti. Jednoduše přejděte na kartu Soubor, Možnosti, Přizpůsobit pás karet a klikněte na pole Vývojář na hlavních kartách.

Systém nápovědy funguje mnohem plynuleji než v předchozích verzích. Pomoc s otázkami VBA můžete získat offline, ze systému nainstalovaného s aplikací Office nebo online od společnosti Microsoft přes internet. Obě rozhraní jsou navržena tak, aby vypadala hodně podobně:


Klepnutím sem zobrazíte obrázek

Pokud je vaše připojení k internetu rychlé, online nápověda vám poskytne více a lepších informací. Ale lokálně nainstalovaná verze bude pravděpodobně rychlejší a ve většině případů je stejně dobrá. Možná budete chtít nastavit místní pomoc jako výchozí a pak použít online nápovědu, pokud vám místní verze nedává to, co chcete. Nejrychlejším způsobem, jak přejít do režimu online, je jednoduše vybrat z rozbalovací nabídky Hledat v nápovědě možnost „Všechna slova“ (nebo „Všechny aplikace Excel“ nebo jiná aplikace). Okamžitě přejde do režimu online a provede stejné vyhledávání, ale váš výchozí výběr se tím neobnoví.


Klepnutím sem zobrazíte obrázek

Na další stránce začneme s tím, jak skutečně vytvořit program VBA.

Když je VBA „hostitelem“ aplikací, jako je Word nebo Excel, program „žije“ v souboru dokumentu, který používá hostitel. Například v aplikaci Word můžete uložit své „makro Word“ (je to ne „makro“, ale nyní nebudeme moci dohadovat o terminologii) ani v dokumentu Word, ani v šabloně Word.

Předpokládejme, že je tento program VBA vytvořen v aplikaci Word (tento jednoduchý program pouze změní písmo tučným písmem pro vybraný řádek) a je uložen v dokumentu Word:

Sub AboutMacro () ' "About Makro Macro." 'Makro zaznamenané 9/9/9999 Dan Mabbutt. ' Výběr. HomeKey Unit: = wdStory. Výběr. EndKey Unit: = wdLine, Extend: = wdExtend. Výběr. Písmo. Tučné = wdToggle. Výběr. EndKey Unit: = wdStory. End Sub.

V dřívějších verzích sady Office jste mohli vidět kód VBA uložený jako součást dokumentu soubor v uloženém dokumentu Word jeho prohlížením v programu Poznámkový blok, kde vše v dokumentu Word může vidět. Tento obrázek byl vytvořen s předchozí verzí aplikace Word, protože Microsoft změnil formát dokumentu v aktuální verzi a programový kód VBA se již nezobrazuje jasně jako prostý text. Ale hlavní je stejný. Podobně, pokud vytvoříte tabulku aplikace Excel s makrem Excel, bude uložena jako součást souboru .xlsm.


Klepnutím sem zobrazíte obrázek

VBA a zabezpečení

Jedním z nejúčinnějších triků počítačového viru v minulosti bylo vložení škodlivého kódu VBA do dokumentu Office. V dřívějších verzích sady Office se po otevření dokumentu mohl virus spustit automaticky a na vašem počítači vyvolat zmatek. Tato otevřená bezpečnostní díra v sadě Office začala ovlivňovat prodej sady Office a na to společnost Microsoft skutečně upoutala pozornost. Se současnou generací sady Office 2010 společnost Microsoft tuto díru důkladně zapojila. Kromě vylepšení uvedených zde společnost Microsoft vylepšila zabezpečení sady Office způsoby, které si ani nemusíte všimnout až na úroveň hardwaru. Pokud váháte s používáním VBA, protože jste slyšeli, že to nebylo bezpečné, ujistěte se, že společnost Microsoft odešla další kilometr, aby to nyní změnila.

Nejdůležitější změnou bylo vytvoření speciálního typu dokumentu jen pro dokumenty Office, které obsahují programy VBA. Například v aplikaci Word nemůže MyWordDoc.docx obsahovat program VBA, protože Word neumožňuje programy v souboru uloženém s příponou "docx". Aby bylo možné programování VBA povolit jako součást souboru, musí být soubor uložen jako „MyWordDoc.docm“. V Excelu je přípona souboru ".xlsm".

Společnost Microsoft vytvořila v systému Office nový subsystém zabezpečení nazvaný Centrum důvěryhodnosti. V podstatě si můžete přizpůsobit, jak vaše aplikace Office nakládá s dokumenty obsahujícími kód VBA podrobně. Centrum zabezpečení otevřete na kartě Vývojář v aplikaci Office kliknutím na Zabezpečení maker v části pásu karet na kartě.


Klepnutím sem zobrazíte obrázek

Některé z možností jsou navrženy tak, aby „zpřísnily“ vaše aplikace sady Office, takže se škodlivý kód nespustí a jiné jsou navrženo tak, aby vývojářům a uživatelům usnadnilo používání VBA, aniž by to zbytečně zpomalovalo zabezpečení dolů. Jak vidíte, existuje mnoho způsobů, jak můžete přizpůsobit zabezpečení a projít všechny z nich je daleko nad rámec tohoto článku. Naštěstí web společnosti Microsoft obsahuje rozsáhlou dokumentaci k tomuto tématu. A také to, že výchozí nastavení zabezpečení je dobré pro většinu požadavků.

Protože je VBA vázána na hostitelskou aplikaci Office, musíte ji tam spustit. Toto téma je zahrnuto od další stránky.

Jak spustím aplikaci VBA

To je vlastně velmi dobrá otázka, protože se jedná o první otázku, na kterou se uživatelé vaší aplikace zeptají. V zásadě existují dva způsoby:

-> Pokud se rozhodnete nepoužívat ovládací prvek, například tlačítko, ke spuštění programu, musíte použít příkaz Makra na pásu karet (karta Vývojář, skupina kódů). Vyberte program VBA a klikněte na Spustit. Některým uživatelům se to však může zdát příliš mnoho. Například byste asi nechtěli mít k dispozici kartu Vývojář. V tom případě ...

-> Chcete-li spustit aplikaci, musíte přidat něco, na co může uživatel kliknout nebo napsat. V tomto článku se podíváme na ovládání tlačítek. Mohlo by to však být klepnutí na zástupce, ikonu na panelu nástrojů nebo dokonce akt zadávání dat. Tomu se říká Události a co budeme psát v tomto a pozdějších článcích kód události - programový kód, který se automaticky spustí, když dojde k nějaké konkrétní události - například klepnutí na tlačítko Button.

UserForms, Form Controls a ActiveX Controls

Pokud nevyberete pouze makro, nejběžnějším způsobem spuštění programu VBA je klepnutí na tlačítko. Toto tlačítko může být buď ovládání formuláře nebo Ovládací prvek ActiveX. Výběr závisí do určité míry na aplikaci Office, kterou používáte. Excel poskytuje například mírně odlišné možnosti než Word. Ale tyto základní typy ovládacích prvků jsou stejné.

Protože nabízí maximální flexibilitu, podívejme se, co s Excel 2010 můžete dělat. Jednoduchá textová zpráva bude vložena do buňky, když klepnete na několik různých tlačítek, aby byly rozdíly jasnější.

Nejprve vytvořte nový sešit aplikace Excel a vyberte kartu Vývojář. (Pokud máte jinou aplikaci sady Office, měla by fungovat variace těchto pokynů.)

Klikněte na ikonu Vložit. Nejprve budeme pracovat s tlačítkem Form Controls.

Ovládací prvky formuláře jsou starší technologií. V Excelu byly poprvé představeny ve verzi 5.0 v roce 1993. Budeme dále pracovat s VBA UserForms, ale ovládací prvky formuláře s nimi nelze použít. Také nejsou kompatibilní s webem. Ovládací prvky formuláře jsou umístěny přímo na povrch listu. Na druhou stranu některé ovládací prvky ActiveX - které považujeme za další - nelze použít přímo na pracovních listech.

Ovládací prvky formuláře se používají technikou "klikni a nakresli". Klepněte na ovládací prvek formuláře tlačítko. Ukazatel myši se změní na znaménko plus. Nakreslete ovládací prvek přetažením po povrchu. Když uvolníte tlačítko myši, objeví se dialogové okno s požadavkem na makro příkaz pro připojení k tlačítku.


Klepnutím sem zobrazíte obrázek

Obzvláště když vytváříte ovládací prvek poprvé, nebudete mít makro VBA čekající na spojení s klikněte na Nový a otevře se Editor VBA s navrženým názvem již vyplněným do shellu události podprogram.


Klepnutím sem zobrazíte obrázek

Chcete-li dokončit tuto velmi jednoduchou aplikaci, zadejte do příkazového řádku tento příkaz VBA:


Buňky (2, 2) .Value = "Click Button Clicked"

Tlačítko ActiveX je téměř úplně stejné. Jedním rozdílem je, že VBA umístí tento kód do listu, nikoli do samostatného modulu. Zde je kompletní kód události.

Private Sub CommandButton1_Click () Buňky (4, 2). Hodnota = "Kliknuto na tlačítko ActiveX" End Sub.

Kromě umístění těchto ovládacích prvků přímo na list můžete také přidat UserForm do projektu a místo toho na něj umístit kontroly. UserForms - o stejné věci jako Windows formuláře - mají spoustu výhod v tom, že jsou schopni spravovat ovládací prvky spíše jako normální aplikace jazyka. Přidat UserForm do projektu v editoru jazyka. Použijte nabídku Zobrazit nebo klepněte pravým tlačítkem myši v aplikaci Project Explorer.


Klepnutím sem zobrazíte obrázek

Výchozí hodnota pro UserForm je ne zobrazit formulář. Chcete-li jej zviditelnit (a zpřístupnit ovládací prvky na něm uživateli), spusťte metodu Show formuláře. Jen jsem přidal další tlačítko formuláře.

Pod Button2_Click () UserForm1.Show. End Sub.

Všimněte si, že UserForm je modální ve výchozím stavu. To znamená, že když je formulář aktivní, je vše ostatní v aplikaci neaktivní. (Například klepnutím na jiná tlačítka se nic neděje.) Můžete to změnit změnou vlastnosti ShowModal UserForm na False. Ale to nás prohlubuje v programování. Další články v této sérii vysvětlí více o tom.

Kód UserForm je umístěn v objektu UserForm. Pokud vyberete Zobrazit kód pro všechny objekty v aplikaci Project Explorer, uvidíte, že existují tři samostatné podprogramy události Click, které jsou obsaženy ve třech různých objektech. Všechny jsou však dostupné ve stejném sešitu.


Klepnutím sem zobrazíte obrázek

Kromě vynucení události kliknutím na tlačítko se VBA také používá k reakci na události v objektech hostitelské aplikace. Můžete například zjistit, kdy se tabulka v aplikaci Excel změní. Nebo můžete zjistit, kdy je řádek přidán do databáze v aplikaci Access, a napsat program pro zpracování této události.

Kromě známých příkazových tlačítek, textových polí a dalších komponent, které stále vidíte v programech, můžete přidat komponenty, které jsou skutečně součástí tabulky aplikace Excel. v váš dokument Word. Nebo to udělejte opačně. To jde nad rámec „kopírování a vkládání“. Můžete například zobrazit tabulku aplikace Excel v dokumentu aplikace Word.

VBA umožňuje používat celou sílu jedné aplikace sady Office v jiné. Například aplikace Word má vestavěnou relativně jednoduchou výpočetní schopnost. Ale Excel - dobře - "vyniká" při výpočtu. Předpokládejme, že jste chtěli použít přirozený protokol funkce gama (relativně sofistikovaný matematický výpočet) v dokumentu Word? Pomocí VBA můžete předat hodnoty této funkci v Excelu a získat odpověď zpět v dokumentu Word.

A můžete použít mnohem více než aplikace sady Office! Pokud kliknete na ikonu „Další ovládací prvky“, zobrazí se značný seznam věcí, které jsou nainstalovány v počítači. Ne všechny tyto práce „nejsou k dispozici“ a měli byste mít k dispozici dokumentaci pro každou z nich, ale poskytuje vám představu o tom, jak široká je podpora pro VBA.

Ze všech funkcí ve VBA je jeden, který je zjevně užitečnější než kterýkoli jiný. Zjistěte, co to je na další stránce.

Zachránil jsem to nejlepší! Zde je technika, která platí plošně pro všechny aplikace sady Office. Zjistíte, že ho hodně používáte, takže ho zde pokrýváme v úvodu.

Jakmile začnete kódovat sofistikovanější programy VBA, jedním z prvních problémů, se kterým se setkáte, je to, jak zjistit informace o metodách a vlastnostech objektů sady Office. Pokud píšete program VB.NET, budete často hledat ukázky kódu a příklady, jak tento problém vyřešit. Ale když vezmete v úvahu všechny různé hostitelské aplikace a skutečnost, že každá z nich má stovky nových objektů, obvykle nemůžete najít něco, co přesně odpovídá tomu, co musíte udělat.

Odpověď je "Záznam makra ..."

Základní myšlenkou je zapnout „Záznam makra“, projít kroky, které jsou podobné tomu, čeho chcete, aby váš program dosáhl, a zkontrolovat výsledný program VBA, zda neobsahuje kód a nápady.

Mnoho lidí udělá chybu, když si myslí, že musíte být schopni nahrávat přesně ten program, který potřebujete. Ale není vůbec nutné být tak přesný. Obvykle je dost dobré zaznamenat program VBA, který je „blízký“ tomu, co chcete, a pak přidejte úpravy kódu, aby se přesně dařilo. Je to tak snadné a užitečné, že někdy zaznamenám tucet programů s malými rozdíly, jen abych viděl, jaké jsou rozdíly ve kódu ve výsledku. Jakmile skončíte, nezapomeňte odstranit všechny experimenty!

Jako příklad jsem klikl na Record Macro v editoru jazyka Visual Basic a napsal několik řádků textu. Zde je výsledek. (Pro zkrácení byla přidána pokračování řádku.)

Sub Macro1 () ' „Makro1 Makro. ' ' Výběr. TypeText Text: = _. "To jsou časy, které" Výběr. TypeText Text: = _. "zkuste duše mužů." " Výběr. TypeText Text: = _. "letní voják" Výběr. TypeText Text: = _. "a patriot slunce" Výběr. TypeText Text: = _. „se v těchto časech zmenší“ Výběr. TypeText Text: = _. "služba jejich země." Výběr. MoveUp Unit: = wdLine, Count: = 1. Výběr. HomeKey Unit: = wdLine. Výběr. MoveRight Unit: = wdCharacter, _. Počet: = 5, prodloužení: = wdExtend. Výběr. Písmo. Tučné = wdToggle. End Sub.

Nikdo studuje VBA jen pro sebe. Vždy ji používáte společně s konkrétní aplikací sady Office. Chcete-li se tedy dále učit, jsou zde články, které demonstrují VBA používané s Word i Excel:

-> Začínáme s používáním VBA: Pracovní partner aplikace Word

-> Začínáme s používáním VBA: Pracovní partner aplikace Excel

instagram story viewer