VBA Werken met werkmappen (het werkboekobject)

In deze gids maakt u kennis met het werken met de Werkmapobject in VBA.

Het werkboekobject

Ten eerste moet u, om te kunnen werken met werkmappen in VBA, de Werkmapobject.

Met het werkmapobject kunt u als volgt naar werkmappen verwijzen met hun naam:

1 Werkmappen ("Book2.xlsm").Activeren

Deze code werkt echter alleen als de werkmap is geopend. Als de werkmap is gesloten, moet u het volledige werkmappad opgeven:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

In plaats van het volledige pad in te typen, als uw gewenste werkmap zich in dezelfde map bevindt als de werkmap waar uw code is opgeslagen, kunt u deze regelcode gebruiken om de werkmap te openen:

1 Workbooks.Open (ThisWorkbook.Path & "\book2.xlsm")

Dit maakt gebruik van het ThisWorkbook-object dat we in de volgende sectie zullen bespreken.

Indexnummer werkmap

Als laatste kunt u naar werkmappen verwijzen op basis van hun "indexnummer". Het indexnummer van een werkmap komt overeen met de volgorde waarin de werkmap is geopend (technisch gezien is dit de positie van de werkmap in de Workbooks Collection).

1 Werkmappen(1).Activeren

Dit is handig als u bijvoorbeeld de eerste (of laatst geopende) werkmap wilt sluiten.

Activeer Workbook, ActiveWorkbook en ThisWorkbook

Als een werkmap is NIET ACTIEF, hebt u als volgt toegang tot de objecten van de werkmap:

1 Werkmappen ("Boek2.xlsm"). Bladen ("Blad1"). Bereik ("A1"). waarde = 1

Als de werkmap echter Actief is, kunt u het werkmapobject weglaten:

1 Sheets("Blad1").Bereik("A1").waarde = 1

En als u wilt communiceren met het actieve werkblad van de werkmap, kunt u ook het werkbladobject weglaten:

1 Bereik ("A1").waarde = 1

Werkboek activeren

Gebruik de om een ​​werkmap te activeren Methode activeren.

1 Werkmappen ("Book2.xlsm").Activeren

Nu kunt u communiceren met de objecten van Book2 zonder expliciet de naam van de werkmap te vermelden.

ActiefWerkboek

De ActiefWerkboek object verwijzen altijd naar de actieve werkmap. Dit is handig als u het ActiveWorkbook aan een variabele wilt toewijzen om later te gebruiken.

12 Dim wb als werkboekStel wb = ActiveWorkbook in

Dit Werkboek

De Dit Werkboek object verwijst altijd naar de werkmap waarin de actieve code is opgeslagen. Gebruik deze regel code om ThisWorkbook te activeren:

1 Dit Werkboek.Activeren

Werkmap openen

Gebruik de om een ​​werkmap te openen Open methode:

1 Workbooks.Open ("C:\Users\StevePC2\Downloads\book2.xlsm")

De nieuw geopende werkmap wordt altijd de ActiefWerkboek, zodat u er gemakkelijk mee kunt communiceren.

1 ActiveWorkbook.Opslaan

De Open-methode heeft verschillende andere argumenten, waardoor u alleen-lezen kunt openen, een met een wachtwoord beveiligde werkmap kunt openen en meer. Het wordt hier behandeld in ons artikel over het openen / sluiten van werkboeken.

Openen en toewijzen aan variabele

U kunt ook een werkmap openen en deze tegelijkertijd aan een variabele toewijzen:

12 Dim wb als werkboekStel wb = Workbooks.Open("C:\Users\StevePC2\Downloads\book2.xlsm") in

Dialoogvenster Bestand openen

U kunt het dialoogvenster Bestand openen ook als volgt activeren:

12345678 Sub Open Werkboek ()Dim strFile As StringstrFile = Application.GetOpenFilename()Werkmappen.Open (strFile)Einde sub

Nieuwe (toevoegen) werkmap maken

Met deze regel code wordt een nieuwe werkmap gemaakt:

1 Werkmappen.Toevoegen

De nieuwe werkmap wordt nu de ActiefWerkboek, zodat u ermee kunt werken (bijvoorbeeld de nieuwe werkmap opslaan).

Nieuwe werkmap toevoegen aan variabele

U kunt een nieuwe werkmap ook rechtstreeks aan een variabele toevoegen:

12 Dim wb als werkboekStel wb = Werkmappen in.Toevoegen

Werkmap sluiten

Sluiten & Opslaan

Om een ​​werkmap te sluiten met opslaan, gebruik de Sluit methode met Wijzigingen opslaan ingesteld op WAAR:

1 ActiveWorkbook.Close SaveChanges:=True

Sluiten zonder Opslaan

Om te sluiten zonder op te slaan, stelt u in Wijzigingen opslaan gelijk aan ONWAAR:

1 ActiveWorkbook.Close SaveChanges:=False

Werkmap Opslaan als

De Opslaan als methode wordt gebruikt om een ​​werkmap op te slaan als.

Om een ​​werkmap met een nieuwe naam in dezelfde map op te slaan, kunt u dit impliceren:

1 ActiveWorkbook.OpslaanAls "nieuw"

waarbij "new" de nieuwe bestandsnaam is.

Om een ​​werkmap op te slaan in een nieuwe map met een specifieke bestandsextensie, geeft u eenvoudig de nieuwe map en bestandsnaam op:

1 ActiveWorkbook.SaveAs "C:\Users\StevePC2\Downloads\new.xlsm"

Andere werkmap VBA-voorbeelden

Naam werkmap

De naam van een werkmap ophalen:

1 MsgBox ActiveWorkbook.Name

Werkmap beveiligen

Om de werkmapstructuur te beschermen tegen bewerken, kunt u de Bescherm methode (wachtwoord optioneel):

1 Werkmappen ("book1.xlsm"). Bescherm "wachtwoord"

Gebruik de om de beveiliging van een werkmap op te heffen UnProtect-methode:

1 Werkmappen ("book1.xlsm"). Beveiliging "wachtwoord" opheffen

Loop door alle geopende werkmappen

Om door alle geopende werkmappen te bladeren:

123456789 Sub LoopThroughWBs()Dim wb als werkboekVoor elke wb In WerkmappenMsgBox wb.NaamVolgende wbEinde sub

Werkboek Evenement activeren

U kunt code uitvoeren wanneer een specifieke werkmap wordt geopend met de Werkboek open evenement.

Plaats deze procedure in de ThisWorkbook-module van uw werkmap:

123 Privé subwerkboek_Open()Spreadsheets ("sheet1"). ActiverenEinde sub

Deze procedure wordt geactiveerd Blad1 elke keer dat de werkmap wordt geopend.

wave wave wave wave wave