Objektový model MS Excel. Práce v prostředí VBA. Správa vlastností objektů. Objektový model aplikace Excel ve VBA. GoTo - přechod do buňky

Přednáška Objektový model MS Excel.

1. Obecná charakteristika Objektový model MS Excel

2. Charakteristika objektů

3. Zapracujte prostředí VBA. Správa vlastností objektu

Zavedení

Tabelární Excel procesor je program s poměrně širokou škálou funkcí, z nichž většinu znáte. Kromě toho však do něj vývojáři zakomponovali adaptační nástroje pro zvýšení efektivity řešení konkrétních problémů. Mezi tyto prostředky patří různá nastavení, nástroje pro automatizaci uživatelských akcí (makra) a také vestavěný programovací systém VBA. Samotná aplikace je vyvíjena pomocí OOP a VBA poskytuje přístup k programovým objektům, takže je má kvalifikovaný uživatel prakticky neomezené možnosti přizpůsobit tuto aplikaci. V této a několika následujících lekcích vám představíme, jak to lze využít.

1. Obecná charakteristika objektového modeluPANÍVynikat

OOP je postaven na použití objektů. Skutečné objekty okolního světa mají dvě hlavní charakteristiky: mají soubor vlastností a jsou toho schopné různé metody měnit tyto vlastnosti a reagovat na události, které vznikají jak v okolním světě, tak uvnitř samotného objektu. Právě v této podobě je v programovacích jazycích implementován koncept objektu jako souboru vlastností (datových struktur charakteristických pro tento objekt) a metod pro jejich zpracování (rutiny pro změnu vlastností).

Vlastnosti jsou parametry, které popisují objekt. Vlastnosti, například, identifikují objekt, určují jeho vzhled, polohu na obrazovce a rozměry.

Metody jsou akce prováděné objektem, jeho pracovními operátory. Obecně jsou metody procedury (akce), které lze provádět, a vlastnosti jsou atributy, které může nastavit uživatel nebo systém.

Při spouštění OOP programů je implementován princip událostí, jehož podstatou je, že programové objekty mohou reagovat na události vyskytující se v systému. Události jsou zprávy, které určují pořadí akcí programu. Události mohou mít různou povahu - kliknutí myší, pohyb ukazatele myši, zadávání nebo změna dat, klikání na tlačítka v oknech programu nebo na klávesy klávesnice, programové a systémové chyby atd. Reakce spočívá v provedení jedné z metod objektu. Pro většinu objektů je to typické Klikněte na událost(kliknutí), ke kterému dojde po kliknutí levým tlačítkem myši na vybranou položku. Charakteristické jsou také následující události: DblClick (dvojité kliknutí), MouseDown, MouseUp (stisknutí a uvolnění tlačítka myši), Exit and Enter (ztráta a získání fokusu) a mnoho dalších.

Úkolem programátora při vytváření programu je zahrnout do programu potřebné objekty ze všech dostupných objektů, určit seznam událostí, na které by měl program reagovat, a uvést, jaké metody by se měly použít, když každá událost nastane.

Pokud neexistuje objekt s požadovanými vlastnostmi, může programátor takový objekt vytvořit a následně použít v tomto nebo jiném programu.

Při adaptaci aplikace není potřeba vytvářet nové objekty, stačí použít stávající. Jen je musíte znát. Představu o složení a vztazích mezi objekty poskytuje objektový model aplikace. Každá aplikace má svůj vlastní.

Objektový model MS Excel je hierarchie objektů podřízených objektu Aplikace, což odpovídá samotné aplikaci.

Počet objektů je poměrně velký, tvoří stromovou strukturu (menší větve jsou vlastnosti větších). Kořenem tohoto „stromu“ (počátečního objektu) je Aplikace (samotná aplikace MS Excel).

Některé objekty jsou jednotlivé (to znamená, že existují v jediné kopii) a některé jsou členy kolekcí (rodin). U jednotlivých objektů stačí uvést jméno a u rodinných příslušníků - příjmení a číslo nebo jméno člena rodiny.


Níže jsou uvedeny některé objekty MS Excel, které budeme používat v našich programech.

Rýže. 1. Zjednodušený objekt Excelový model

Na tomto obrázku jsou u rodin názvy předmětů z rodin psány v závorkách.

Pro přístup k vlastnosti nebo metodě objektu (odkaz na objekt) lze použít úplný nebo implicitní odkaz.

Úplný odkaz se skládá z řady vnořených názvů objektů (podle hierarchie). Jako oddělovač jmen se používá tečka. Například, úplný odkaz do buňky A5 listu List1 sešit Kniha1(a například zapsání čísla 10 do něj) v operátoru přiřazení má tvar:

Application.Workbooks("Kniha1"). Pracovní listy ("List1"). Rozsah ("A5") = 10

Základem objektového modelu Excelu je objekt Worksheet, který představuje jeden list v souboru. Každý objekt Worksheet je součástí kolekce Worksheets, která patří k objektu Workbook, který představuje soubor sešitu aplikace Excel. Protože v aplikace Excel Několik sešitů může být otevřeno současně a existuje také kolekce Workbooks obsahující jeden objekt Workbook pro každý otevřený soubor. Stejně jako u všech aplikací Office se objekt Application nachází na vrcholu hierarchie objektů a je k dispozici jako implicitní odkaz při práci v Excelu.

V sešitech Excelu existuje ještě jeden typ listu - list s grafem (objekt Chart) - speciální tabulka, která obsahuje pouze graf. Kolekce Charts objektu Application poskytuje přístup ke všem grafům všech otevřených souborů, zatímco kolekce Charts objektu Workbook poskytuje přístup pouze ke grafům daného sešitu. Grafy mohou být také vloženy do listů namísto vlastního listu. Takové grafy nejsou součástí kolekce grafů, ale jsou k dispozici jako součást kolekce Chartob-jects objektu Worksheet. Kolekce Sheets poskytuje přístup ke všem listům, tabulkám i grafům.

Většina toho, co děláte v Excelu, zahrnuje objekt Range. Přestože název tohoto objektu je stejný jako jeho protějšek ve Wordu, jejich složení se liší. Jeho funkce jsou však téměř stejné: rámování části dokumentu, se kterou se pracuje. Rozsahem může být jedna buňka, dvourozměrný blok buněk na listu nebo trojrozměrný blok buněk zahrnující více listů.

Další důležitá nedílnou součástí Objektový model aplikace Excel je objekt Chart. Pro každý graf v sešitu je v kolekci grafů obsažen jeden objekt grafu. Každý objekt Chart má podmnožinu objektů, které představují součásti grafu, jako jsou osy a legenda.

Změníme naše makro, přejdeme na položku nabídky „makra“, vybereme naše a řekneme „upravit“:

Tlumená kniha jako provázek

Dim list As String

Dim addr As String

kniha = Application.ActiveWorkbook.Name

list = Application.ActiveSheet.Name

Sešity (kniha).Aktivovat

Pracovní listy(list).Aktivovat

Rozsah("A1") = kniha

Rozsah("B1") = list

Dim xList As Integer

xList = Application.Sheets.Count

Pro x = 1 To xList

s = addr + LTrim(Str(x))

Programování VBA si lze představit jako správu aplikačních objektů. Toto jsou objekty, které naše aplikace spravuje. V našem případě, pokud zjednodušíme hierarchickou architekturu, vypadá takto.

To znamená, že hlavním objektem je aplikace. Aplikace může mít několik sešitů, uvnitř kterých jsou sešity a listy jsou rozděleny do buněk. Při práci může být aktivní pouze jeden sešit a jeden list. Takže se to snažím zjistit pomocí svého makra. A zároveň kolik listů je v aktuální knize.

DIM - deklaruje proměnnou s zadejte řetězec. Pomocí objektu Application získáme názvy aktuálních sešitů a listu. Pomocí Range("...") můžete vybrat buňku a umístit do ní hodnoty nebo je přečíst. Obecně platí, že objekty mají obrovské množství vlastností. Úkolem programátora VBA je znát tyto vlastnosti a metody.

Objektový model Excelu je základem pro použití VBA v Excelu. Programování v Excelu se liší od programování v jiných aplikacích VBA v tom, že přidává některé příkazy pro přístup k tabulkám a sešitům. nejlepší funkčnost takže uživatel může normálně procházet strukturou Nabídka Excel.



Objektový model Microsoft Access, například obsahuje příkazy a objekty zaměřené na práci s databázemi, což znamená práci s tabulkami, dotazy, formuláři a sestavami. V Excelu, který je zaměřen na práci se sešity a tabulkami, je objektový model navržen právě k tomu. Excel je aplikace sestávající ze tří vrstev: vrstva, která zajišťuje interakci uživatele, vrstva objektového modelu a vrstva, která pracuje se samotnými daty. Uživatelské rozhraní ve formuláři Excel tabulky Vrstva, kterou obvykle vidíte, je vrstva klienta a je nejvíce optimalizovaná pro uživatelské prostředí.


Tabulky jsou často velmi důležité v účetnictví. Pro více kvalitní práce potřeba s nimi dobrý program pro účetnictví, jedním z nich je Info-Enterprise. Tento efektivní program pro účetnictví, což vám umožní vést různé typy například hlášení daňové hlášení, účetní výkazy atd. Díky své jednoduchosti a snadnému učení je velmi vhodný pro jednotlivé podnikatele a malé podniky.


Kdykoli v tabulce uděláte cokoli, zadáváte příkazy prostřednictvím objektového modelu aplikace Excel. Když například otevřete knihu, spustí se kód, který je svázán s položkami hlavní nabídky Soubor Excel- Otevřete a stejný kód používá tým sešitů. Otevřít, která otevře sešit aplikace Excel a přidá o něm data do kolekce objektů sešitu. Stejně tak, pokud jste v Nastavení Excelu změňte režim výpočtu na ruční a stiskněte klávesu F9 pro přepočet vzorců, stejný program se spustí jako výsledek volání příkazu Aplikace. Vypočítat. Použití objektového modelu Excel a programovacího jazyka Visual Basic, není tak těžké vyvinout vlastní aplikace datové reprezentace se stejnou funkčností jako Microsoft Excel. Každý příkaz nabídky a každé tlačítko v aplikaci Microsoft Excel je mapováno na objektový model aplikace Excel. To neznamená, že Excel používá stejné objekty, ale Microsoft vám dává možnost používat objekty a metody, takže můžete dělat vše ve svém kódu stejně jako v nabídce Excelu. Může se to zdát divné, ale pokud se rozhodnete vytvořit si vlastní aplikaci pro prezentaci dat, množství kódu, které potřebujete napsat, bude relativně malé, protože veškerá funkčnost je již obsažena ve stávajících objektech.


Pod objektovým modelem se nachází vrstva zpracování dat, která data sama ukládá a je zodpovědná za jejich uložení a zpracování. Objektový model Excelu obsahuje velké množství objektů, například sešit, sešit, rozsah, graf, kontingenční tabulka, komentáře. Tato zařízení nabízejí různé možnosti zpracování dat. Nejdůležitější je, že je lze ovládat vaším kódem.


Při programování ve VBA používáte standardní příkazy a funkce jako For...Next, If...Then...Else, MsgBox, ale také používáte objektový model ke komunikaci s aplikací Excel, manipulaci s vlastnostmi a metodami různých předmětů.


Objekt je struktura obsahující data a metody pro práci s ním, existuje jako jeden celek, přístup je zajištěn přes speciální softwarové rozhraní.


Předmět je součástí Excel programy. Objekty mají svou vlastní hierarchii. Vedle aplikace je objekt Workbook a za ním Worksheet. Další po každém objektu listu je rozsah a tak dále. Každý objekt má svá vlastní nastavení, nazývaná vlastnosti, a akce, které lze s objektem provádět, nazývané metody.

Objektový model Excelu

Objekty Excelu

Programátor pracující v Vynikat, musí volně procházet světem svých objektů. Síla kancelářského programování je dána skutečností, kterou má programátor zpočátku k dispozici velký počet již hotové předměty. Abyste mohli dobře využít nabízené příležitosti, musíte objekty znát.

Povídání o předmětech Vynikat Je vhodné začít tím, že se podíváte na kostru dokumentu Vynikat. O důležitém konceptu kostry dokumentu jsem psal hodně v předchozích knihách. Mnoho knihoven objektů Office 2000, jejichž kolekce představuje pro programátora Office 2000, poskytuje rámec pro všechny dokumenty, které lze v tomto prostředí vytvořit. Při vytvoření nový dokument, například sešit Vynikat, pak je standardně vybráno několik z celé sady knihoven, jejichž objekty tvoří rámec dokumentu. Tyto objekty jsou programátorovi dostupné bez dalšího úsilí. Centrální role v rámci dokumentu Vynikat hrají samozřejmě objekty knihovny Vynikat. Ale znalost a všechny ostatní objekty zahrnuté v rámu jsou nezbytné. Například kdy tvorba softwaru rozhraní je nezbytné znalost Objekty sdílené knihovny Office. Uvedu také, že na přání může programátor vždy rozšířit rámec dokumentu přidáním určitých knihoven. Drátový model vytvořený ve výchozím nastavení při otevření nového sešit, sestává z objektů zahrnutých v následujících knihovnách:

· Vynikat- knihovna, která vytváří základ pro dokumenty Excel. Zde je uložena třída, která definuje kořenový objekt Excel.Application, a všechny třídy objektů vnořené do kořenového objektu.

· Kancelář- knihovna objektů společná všem Kancelářské aplikace 2000. Zde jsou třídy, které definují panely nástrojů – CommandBar a třídy dalších běžných objektů. Jsou zde také umístěny třídy, které definují Assistant (objekt Assistant a všechny třídy s ním spojené). Zejména se objevil nový objekt, který v předchozí verzi nebyl - Průvodce odpověďmi.

· Stdole- knihovna tříd, která umožňuje pracovat s objekty OLE a implementovat automatizaci.

· VBA- knihovna tříd souvisejících s jazyk VBA. Vše je zde uloženo standardní funkce a konstanty zabudované do jazyka, třídy Collection a ErrObject.

· Projekt VBA- výchozí projekt spojený s dokumentem. Třídy, které mohou být vytvořeny programátorem v tomto projektu, metody, vlastnosti - to vše je k dispozici k prohlížení, stejně jako objekty tříd zabudované do standardních knihoven.

Pokud porovnáme framework sešitu Vynikat, například s rámem dokumentu Slovo, pak se liší tím, že jeden je založen na knihovně Vynikat, druhý je založen na knihovně Slovo. Tyto knihovny obsahují objekty specifické pro aplikaci. Pokud jde o objekty rozhraní, objekty, které definují prostředí editoru VBA, automatizace, pak se zde používají sdílená zařízení. Kancelářské knihovny, Stdole, VBA- Jedná se o knihovny společné pro všechny aplikace Office 2000. Podrobně jsem o objektech těchto knihoven hovořil v .

Podotýkám, že ačkoliv rám dokumentu Vynikat beze změny v Office 2000 ve srovnání s předchozí verze, zároveň došlo k poměrně významným změnám v objektovém modelu, objevily se nové objekty, nové vlastnosti a metody dříve existujících objektů.

Objektový model Excelu

Nejprve pár slov o tom, jak to funguje Objektový model Excelu a další aplikace Office 2000 V tomto modelu jsou objekty vzájemně propojeny vztahem vkládání. Na nulová úroveň hierarchie existuje nějaká centrální objekt, do kterého jsou vloženy další objekty, které tvoří první úroveň hierarchie. Objekty další úrovně lze zabudovat do každého z objektů první a následujících úrovní. Tento proces tedy pokračuje. Objekty v tomto modelu jsou tedy „tlusté“, protože v nich je zabudováno velké množství dalších objektů. To platí zejména pro předměty, na kterých stojí horní úrovně hierarchie.

Období Objekty Excelu(rozuměno v v širokém slova smyslu, jako objektový model aplikace Excel) obsahuje prvky, které tvoří jakýkoli sešit aplikace Excel. Jsou to například pracovní listy ( Pracovní listy), struny ( Řádky), sloupce ( Sloupce), rozsahy buněk ( Rozsahy) a samotný sešit Excel ( Pracovní sešit) včetně. Každý objekt aplikace Excel má sadu vlastností, které jsou jeho nedílnou součástí.

Například objekt Pracovní list(pracovní list) má vlastnosti Jméno(Jméno), Ochrana(ochrana), Viditelné(viditelnost), Oblast posouvání(rolovací oblast) a tak dále. Pokud tedy během provádění makra potřebujete skrýt list, stačí změnit vlastnost Viditelné tento list.

V Excel VBA existuje zvláštní typ objektů - sbírka. Jak název napovídá, kolekce označuje skupinu (nebo kolekci) objektů aplikace Excel. Například sbírka Řádky je objekt obsahující všechny řádky listu.

Prostřednictvím objektu lze přistupovat (přímo nebo nepřímo) ke všem hlavním objektům aplikace Excel Pracovní sešity, což je kolekce všech otevřených v momentálně pracovní sešity. Každý sešit obsahuje objekt Listy– kolekce, která obsahuje všechny listy a listy diagramů v sešitu. Každý objekt Pracovní list skládá se z kolekce Řádky– zahrnuje všechny řádky listu a kolekce Sloupce– všechny sloupce listu atd.

V následující tabulce jsou uvedeny některé z nejčastěji používaných objektů aplikace Excel. Úplný seznam Objekty Excel VBA lze nalézt na webu Microsoft Office Developer (v angličtině).

Objekt Popis
Aplikace aplikace Excel.
Pracovní sešity Kolekce všech aktuálně otevřených sešitů v aktuální aplikaci Excel. Ke konkrétnímu sešitu lze přistupovat prostřednictvím objektu Pracovní sešity s pomocí číselný index sešit nebo jeho název, např. sešity (1) nebo Pracovní sešity („Sešit 1“).
Pracovní sešit Objekt Pracovní sešit- Toto je pracovní sešit. Lze k němu přistupovat prostřednictvím sbírky Pracovní sešity pomocí číselného rejstříku nebo názvu sešitu (viz výše). Pro přístup k aktuálně aktivnímu sešitu můžete použít Aktivní sešit.

Z objektu Pracovní sešit můžete k objektu přistupovat Listy, což je kolekce všech listů v sešitu (listy a grafy) a také objekt Pracovní listy, což je soubor všech pracovních listů Excelové sešity.

Listy Objekt Listy je sbírka všech listů v sešitu. Mohou to být pracovní listy nebo diagramy. samostatný list. Přístup k jednotlivému listu z kolekce Listy lze získat pomocí číselného indexu listu nebo jeho názvu, např. Listy (1) nebo Tabulky (“List1”).
Pracovní listy Objekt Pracovní listy je kolekce všech listů v sešitu (tj. všech listů kromě grafů na samostatném listu). Přístup k jednotlivému listu z kolekce Pracovní listy lze získat pomocí číselného indexu listu nebo jeho názvu, např. Pracovní listy (1) nebo Pracovní listy (“List1”).
Pracovní list Objekt Pracovní list je samostatný list v sešitu aplikace Excel. Lze k němu přistupovat pomocí číselného indexu listu nebo názvu listu (viz výše).

Kromě toho můžete použít ActiveSheet pro přístup k aktuálně aktivnímu listu. Z objektu Pracovní list objekty jsou přístupné Řádky A Sloupce, které jsou sbírkou předmětů Rozsah, odkazující na řádky a sloupce listu. Můžete také přistupovat samostatná buňka nebo do libovolného rozsahu souvislých buněk na listu.

Řádky Objekt Řádky je kolekce všech řádků v listu. Objekt Rozsah, skládající se z samostatná linka pracovní list, lze k němu přistupovat pomocí tohoto čísla řádku, např. Řádky (1).
Sloupce Objekt Sloupce je kolekce všech sloupců listu. Objekt Rozsah, sestávající z jednoho sloupce listu, lze přistupovat pomocí tohoto čísla sloupce, např. Sloupce(1).
Rozsah Objekt Rozsah je libovolný počet sousedních buněk na listu. Může to být jedna buňka nebo všechny buňky listu.

Rozsah sestávající z jedné buňky je přístupný prostřednictvím objektu Pracovní list užívání majetku Buňky, například Worksheet.Cells(1,1).

Jiným způsobem lze zapsat odkaz na rozsah zadáním adres počáteční a koncové buňky. Mohou být psány oddělené dvojtečkou nebo čárkou. Například, Worksheet.Range(“A1:B10”) nebo Worksheet.Range("A1", "B10") nebo Worksheet.Range(Cells(1,1), Cells(10,2)).

Všimněte si prosím, zda adresa Rozsah druhá buňka není specifikována (např. Worksheet.Range(“A1”) nebo Worksheet.Range(Cells(1,1)), pak bude vybrán rozsah skládající se z jedné buňky.

Výše uvedená tabulka ukazuje, jak se k objektům Excelu přistupuje prostřednictvím nadřazených objektů. Například odkaz na rozsah buněk lze zapsat takto:

Workbooks("Sešit1").Worksheets("Sheet1").Rozsah("A1:B10")

Přiřazení objektu k proměnné

V aplikaci Excel VBA lze objekt přiřadit proměnné pomocí klíčového slova Soubor:

Dim DataWb jako Workbook Set DataWb = Workbooks("Sešit1.xlsx")

Aktivní objekt

V Excelu je v daný okamžik aktivní objekt Pracovní sešit je sešit aktuálně otevřený. Stejně tak existuje aktivní objekt Pracovní list, aktivní objekt Rozsah a tak dále.

Viz aktivní objekt Pracovní sešit nebo List v kódu VBA to můžete udělat takto: Aktivní sešit nebo ActiveSheet a na aktivní objekt Rozsah– jako v Výběr.

Pokud kód VBA obsahuje odkaz na list bez určení, do kterého sešitu patří, Excel jako výchozí použije aktivní sešit. Podobně, pokud odkazujete na rozsah bez určení konkrétního sešitu nebo listu, Excel jako výchozí použije aktivní list v aktivním sešitu.

Tedy odkazovat na rozsah A1:B10 na aktivním listu aktivního sešitu můžete jednoduše napsat:

Rozsah("A1:B10")

Změna aktivního objektu

Pokud během provádění programu potřebujete aktivovat další sešit, jiný list, rozsah atd., musíte použít metody Aktivovat nebo Vybrat takhle:

Sub ActivateAndSelect() Workbooks("Sešit2").Activate Worksheets("Sheet2").Select Worksheets("Sheet2").Range("A1:B10").Select Worksheets("Sheet2").Range("A5") .Aktivujte End Sub

Objektové metody, včetně právě použitých metod Aktivovat nebo Vybrat, bude podrobněji probráno níže.

Vlastnosti objektu

Každý objekt VBA má pro něj specifikované vlastnosti. Například objekt Pracovní sešit má vlastnosti Jméno(Jméno), Číslo revize(počet uložení), Listy(listy) a mnoho dalších. Chcete-li získat přístup k vlastnostem objektu, musíte napsat název objektu, poté tečku a poté název vlastnosti. Například název aktivního sešitu lze získat takto: ActiveWorkbook.Name. Tedy přiřadit k proměnné wbName název aktivního sešitu, můžete použít tento kód:

Dim wbName As String wbName = ActiveWorkbook.Name

Dříve jsme ukázali, jak objekt Pracovní sešit lze použít pro přístup k objektu Pracovní list pomocí tohoto příkazu:

Workbooks("Sešit1").Worksheets("Sheet1")

To je možné, protože sbírka Pracovní listy je vlastnost objektu Pracovní sešit.

Některé vlastnosti objektů jsou pouze pro čtení, což znamená, že uživatel nemůže měnit jejich hodnoty. Zároveň existují vlastnosti, které lze přiřadit různé významy. Chcete-li například změnit název aktivního listu na „ Můj pracovní list“, stačí přiřadit tento název vlastnosti Jméno aktivní list, takto:

ActiveSheet.Name = "Můj pracovní list"

Objektové metody

Objekty VBA mají metody pro provádění určitých akcí. Objektové metody jsou procedury vázané na objekty určitý typ. Například objekt Pracovní sešit má metody Aktivovat, Blízko, Uložit a mnoho dalších.

Chcete-li volat metodu na objektu, musíte si zapsat název objektu, tečku a název metody. Chcete-li například uložit aktivní sešit, můžete použít tento řádek kódu:

Aktivní sešit.Uložit

Stejně jako jiné procedury mohou mít metody argumenty, které jsou předány metodě při jejím volání. Například metoda Blízko objekt Pracovní sešit má tři volitelné argumenty, které určují, zda se má sešit uložit před uzavřením a podobně.

Chcete-li předat argumenty metodě, musíte si po volání metody zapsat hodnoty těchto argumentů oddělené čárkami. Například pokud chcete uložit aktivní sešit jako soubor .csv s názvem „Book2“, pak musíte metodu zavolat Uložit jako objekt Pracovní sešit a projít argumentem Název souboru význam Kniha2 a argument Formát souboru- význam xlCSV:

ActiveWorkbook.SaveAs "Book2", xlCSV

Aby byl váš kód čitelnější, můžete při volání metody použít pojmenované argumenty. V tomto případě napište nejprve název argumentu a poté operátor přiřazení “ := “ a za ním uveďte hodnotu. Takže výše uvedený příklad volání metody Uložit jako objekt Pracovní sešit lze napsat jinak:

ActiveWorkbook.SaveAs Název souboru:="Sešit2", :=xlCSV

V okně Prohlížeč objektů Visual Basic Editor zobrazuje seznam všech dostupných objektů, jejich vlastností a metod. Chcete-li tento seznam otevřít, spusťte Editor jazyka Visual Basic a klepněte na F2.

Podívejme se na pár příkladů

Příklad 1

Tento fragment kódu VBA může sloužit jako ilustrace použití smyčky Pro každého . V v tomto případě budeme na něj odkazovat, abychom demonstrovali odkazy na objekty Pracovní listy(který je ve výchozím nastavení převzat z aktivního sešitu) a odkazy na každý objekt Pracovní list odděleně. Všimněte si, že vlastnost použitá k zobrazení názvu každého listu je Jméno objekt Pracovní list.

"Procházejte všechny listy v aktivním sešitu jeden po druhém" a zobrazte okno se zprávou s názvem každého listu Dim wSheet As Worksheet For Every wSheet in Worksheets MsgBox "Worksheet found: " & wSheet.Name Next wSheet

Příklad 2

Tento příklad kódu VBA ukazuje, jak můžete přistupovat k listům a oblastem buněk z jiných sešitů. Navíc se ujistíte, že pokud není uveden odkaz na konkrétní objekt, pak se použijí výchozí aktivní objekty Vynikat. Tento příklad demonstruje použití klíčového slova Soubor k přiřazení objektu k proměnné.

V níže uvedeném kódu pro objekt Rozsah se nazývá metoda PasteSpecial. Tato metoda předává argument Pasta význam xlPasteValues.

"Zkopírujte rozsah buněk z listu "Sheet1" jiného sešitu (s názvem Data.xlsx) "a vložte pouze hodnoty do listu "Results" aktuálního sešitu (s názvem CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open( "C:\Data") "Všimněte si, že DataWb je aktivní sešit." další akce provedené na objektu Sheets v DataWb. Sheets("Sheet1").Range("A1:B10").Kopírovat "Vložit hodnoty zkopírované z rozsahu buněk do listu "Results" aktuálního sešitu. Vezměte prosím na vědomí, že sešit CurrWb.xlsm není "aktivní", a proto je třeba na něj odkazovat Workbooks("CurrWb").Sheets("Results").Range("A1").PasteSpecial Paste:=xlPasteValues.

Příklad 3

Následující fragment kódu VBA ukazuje příklad objektu (kolekce) Sloupce a ukazuje, jak se k němu přistupuje z objektu Pracovní list. Navíc uvidíte, že když odkazujete na buňku nebo oblast buněk v aktivním listu, nemusíte tento list zahrnout do odkazu. Znovu se setkáváme klíčové slovo Soubor, s jehož pomocí objekt Rozsah přiřazené proměnné Plk.

Tento kód VBA také ukazuje příklad přístupu k vlastnosti Hodnota objekt Rozsah a měnit jeho význam.

"Pomocí smyčky se podíváme na hodnoty ve sloupci A na listu "Sheet2", "udělej to s každou z nich aritmetické operace a výsledek zapište "do sloupce A aktivního listu (Sheet1) Dim i As Integer Dim Col As Range Dim dVal As Double "Assign to variable Col sloupec A listu "Sheet2" Set Col = Sheets("Sheet2"). Columns("A") i = 1 "Prohlédněte si postupně všechny buňky sloupce Col, dokud "dokud nenarazíte na prázdnou buňku Do Until IsEmpty(Col.Cells(i)) "Proveďte aritmetické operace s hodnotou aktuální cell dVal = Col.Cells(i).Hodnota * 3 - 1" Další příkaz zapíše výsledek do sloupce A aktivního listu Není třeba uvádět název listu v odkazu, protože se jedná o aktivní list sešitu.




Přejděte na začátek