Visual Basic for Applications (VBA) není programovací jazyk pouze pro Microsoft Access 2003. Je to programovací jazyk pro všechny aplikační programy, které podporují automatizaci. Automatizace (s velkým A ) označuje schopnost programu manipulovat programově nebo řídit automaticky pomocí programovacího jazyka, jako je VBA. Všechny hlavní aplikace v Microsoft Office, včetně Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint a Microsoft Word, podporují automatizaci. Můžete napsat kód pro automatické sdílení dat mezi nimi.
Termíny Component Object Model ( COM ) a OLE automatizace jsou starší termíny (ale jsou v podstatě synonymem) pro to, co se v současnosti nazývá automatizace.
Než začnete psát kód
Před výměnou dat mezi Accessem a jinými programy v sadě Microsoft Office Suite si uvědomte, že psaní kódu k provedení této úlohy je vyžadováno jen zřídka. Můžete provádět spoustu importu a exportu dat mezi aplikacemi Microsoft Office, aniž byste museli psát jakýkoli kód. Můžete například provádět následující akce:
- Importujte a exportujte data pomocí voleb v nabídce Access File.
- E-mail Přístup k objektům, jako jsou sestavy, výběrem možnosti Odeslat –> Příjemce pošty.
- Pomocí funkce OfficeLinks můžete odesílat objekty do jiných programů.
- Ke kopírování a propojení dat mezi programy používejte základní techniky Windows cut-and-paste a OLE (Object Linking and Embedding).
- Slučujte data z tabulek Accessu do dopisů, štítků, obálek nebo jiných sestav aplikace Microsoft Word pomocí funkce hromadné korespondence aplikace Word. (Vyhledejte v systému nápovědy Word sloučení. )
Pokud se jen snažíte získat data z Accessu do jiného programu (nebo naopak), psaní kódu pravděpodobně není nejjednodušší přístup. Kterýkoli z předchozích přístupů je snazší než psaní vlastního kódu VBA.
Samozřejmě jednou za příslovečného modrého měsíce narazíte na situaci, kdy je psaní kódu VBA jediným nebo možná jen nejlepším způsobem, jak dokončit práci. Tento článek vám ukáže některé základní pojmy, kterým budete chtít porozumět.
Načítání příslušných modelů objektů
Objektový model Accessu poskytuje prostředky k odkazování na objekty podle názvu, abyste s těmito objekty mohli manipulovat pomocí kódu VBA. Každý aplikační program sady Office, který se vystavuje VBA, má objektový model, stejně jako Access. Poté, co bude k dispozici knihovna objektů aplikačního programu, můžete tuto aplikaci ovládat pomocí jazyka VBA.
Objektový model určuje názvy a organizaci objektů v aplikaci. Knihovna objektů je skutečný soubor, který je uložen na vašem pevném disku a definuje tento koncepční objektový model.
Než napíšete kód pro ovládání externí aplikace z Accessu, musíte načíst příslušnou knihovnu objektů do dialogového okna Reference v Accessu. Následuj tyto kroky:
1. Ujistěte se, že jste v editoru jazyka Visual Basic.
Pokud jste v okně programu Access, stiskněte Alt+F11.
2. Zvolte Tools –> References z nabídky Visual Basic Editor.
Otevře se dialogové okno Reference.
3. Procházejte seznamem Dostupné reference a vyberte knihovny objektů pro programy, které chcete ovládat.
Na obrázku 1 jsou vybrané knihovny objektů pro Access, Excel, Outlook, PowerPoint a Word (mimo jiné).
Obrázek 1: Několik knihoven objektů vybraných v dialogovém okně Reference.
4. Klepněte na tlačítko OK.
Všechny vybrané knihovny objektů se otevřou a od tohoto okamžiku máte přístup ke všem jejich modelům objektů.
Uvolnění knihoven objektů
Načítání více knihoven objektů, než je nutné, je plýtvání, protože programy VBA běží pomaleji. Ve skutečném životě jen zřídka potřebujete vybrat všechny dostupné knihovny objektů (viz obrázek 1), pokud jste skutečně nezamýšleli pracovat se všemi těmito programy z aktuální databáze.
Knihovny můžete uvolnit stejně snadno, jako je načtete. Otevřete dialogové okno Reference a zrušte zaškrtnutí vedle libovolné knihovny objektů, kterou ve skutečnosti nehodláte používat.
Zkoumání objektového modelu programu
Prohlížeč objektů v editoru jazyka Visual Basic poskytuje přístup ke všem modelům objektů aktuálně vybraným v dialogovém okně Reference. Každý načtený objektový model obsahuje mnoho objektů, tříd, vlastností a podobně. Ale pro automatizaci se chcete hlavně podívat na aplikační objekt každého programu. Například objekt Access Application Object zpřístupňuje Access dalším programům, které podporují automatizaci. Objekt aplikace Excel (obsažený v knihovně objektů Excel) zpřístupňuje Excel jiným automatizačním programům a tak dále.
Chcete-li otevřít Prohlížeč objektů v editoru VBA, zvolte Zobrazit –> Prohlížeč objektů nebo stiskněte F2. Chcete-li získat nápovědu k položkám v Prohlížeči objektů, klikněte na její název a poté na tlačítko Nápověda (?) na panelu nástrojů Prohlížeč objektů.
Když vyberete ze seznamu Projekt/Knihovna v Prohlížeči objektů a posouváte se dolů v seznamu Třídy v levém sloupci, uvidíte několik objektů Aplikace. Když klepnete na jeden z objektů Application, zobrazí se název aplikace dole v dolní části dialogového okna. Členové tohoto aplikačního objektu se objeví v podokně vpravo, jak je znázorněno na obrázku 2.
Obrázek 2: Prohlížeč objektů po přidání více knihoven objektů.
Nastavení odkazů na jiné programy
Po načtení objektových modelů jste připraveni začít nastavovat odkazy na dostupné programy v kódu VBA. Prvním krokem je použití příkazu Dim k vytvoření proměnné objektu, která odkazuje na aplikaci, ke které se chcete připojit, pomocí následující syntaxe:
Dim anyName As [New] program.Application
V syntaxi je anyName libovolné jméno, které chcete použít ve vašem kódu k odkazování na aplikaci. Argument programu je oficiální název programu Automation. Klíčové slovo New je volitelné. Pokud je zahrnuto, klíčové slovo New otevře kopii aplikace na pozadí (nemusí být nutně viditelná na obrazovce) před spuštěním kódu.
Některé příklady příkazů Dim jsou následující:
Ztlumit aplikaciExcel jako nový Excel.Aplikace
Ztlumit aplikaciOutlook jako nový Outlook.Aplikace
Ztlumit aplikaciPowerPoint jako nový PowerPoint.Aplikaci
Ztlumit appWord jako nové Word.Aplikace
Příkaz Dim je platný pouze v případě, že je načtena příslušná knihovna objektů. Například příkaz Dim appWord As New Word.Application selže, pokud knihovna objektů pro Microsoft Word není vybrána v dialogovém okně Reference.
Příkazy Dim pouze vytvářejí proměnné objektu, které odkazují na aplikaci z vašeho kódu. Chcete-li skutečně vytvořit připojení k objektu Application aplikace, musíte aplikaci nastavit název proměnné objektu. Syntaxe je
Nastavit objectVariable As CreateObject(“appName.Application”)
kde objectVariable je stejný jako název, který jste zadali v příkazu Dim, a appName je název aplikačního programu. S odkazem na dřívější příkazy Dim jsou příkazy Set, které používáte pro každou definovanou objektovou proměnnou, následující:
Set appExcel = CreateObject(“Excel.Application”)
Set appOutlook = CreateObject(“Outlook.Application”)
Set appPowerPoint = CreateObject(“PowerPoint.Application”)
Set appWord = CreateObject(“Word.Application”)
Každá aplikace v sadě Office má svůj vlastní objektový model s vlastními objekty a vlastnostmi, ale základní myšlenky jsou stejné bez ohledu na to, jaký program a objektový model používáte.