Ef þú ert að reyna að ná góðum tökum á Excel VBA gætirðu sennilega notið góðs af nokkrum dæmum til að þróa þessa sjónrænu grunnfærni. Hér finnur þú nokkur Excel VBA dæmi svo að þú getir náð tökum á þessu atburðastjórnunarfyrirtæki.
Excel VBA dæmi: Opinn viðburður fyrir vinnubók
Einn af algengustu Excel VBA viðburðunum er Workbook Open viðburðurinn. Gerum ráð fyrir að þú sért með vinnubók sem þú notar á hverjum degi. Workbook_Open aðferðin í þessu dæmi er keyrð í hvert skipti sem vinnubókin er opnuð. Aðferðin athugar vikudaginn; ef það er föstudagur sýnir kóðinn áminningarskilaboð fyrir þig.
Til að búa til Excel VBA aðferðina sem er keyrð í hvert skipti sem Workbook Open atburðurinn á sér stað skaltu fylgja þessum skrefum:
Opnaðu Excel vinnubókina.
Hvaða Excel vinnubók dugar.
Ýttu á Alt+F11 til að virkja VBE.
Finndu vinnubókina í verkefnaglugganum.
Tvísmelltu á heiti verkefnisins til að birta hluti þess, ef þörf krefur.
Tvísmelltu á hlutinn ThisWorkbook.
VBE sýnir tóman kóðaglugga fyrir ThisWorkbook hlutinn.
Í kóðaglugganum skaltu velja Vinnubók úr fellilistanum Object (vinstri).
VBE færir upphafs- og lokasetningar fyrir Workbook_Open málsmeðferð.
Sláðu inn eftirfarandi fullyrðingar, þannig að allt atburðarferlið lítur svona út:
Private Sub Workbook_Open()
Dimm skilaboð sem strengur
Ef Vikudagur (Nú) = 6 Þá
Msg = "Í dag er föstudagur. Ekki gleyma að "
Msg = Msg & "sendu TPS skýrsluna!"
MsgBox Msg
End If
End Sub
Kóða glugginn ætti að líta svona út.

Þetta atburðameðferðarferli er keyrt þegar vinnubókin er opnuð.
Workbook_Open er keyrt sjálfkrafa þegar vinnubókin er opnuð. Það notar vikudagafall VBA til að ákvarða vikudaginn. Ef það er föstudagur (dagur 6) minnir skilaboðakassi notandann á að senda inn skýrslu. Ef það er ekki föstudagur gerist ekkert.
Ef í dag er ekki föstudagur gætirðu átt erfitt með að prófa þessa aðferð. Þú getur bara breytt 6 til að samsvara raunverulegu dagsnúmeri dagsins í dag.
Og auðvitað geturðu breytt þessari aðferð eins og þú vilt. Til dæmis birtir eftirfarandi útgáfa skilaboð í hvert skipti sem vinnubókin er opnuð. Þetta verður pirrandi eftir smá stund.
Workbook_Open aðferð getur gert næstum hvað sem er. Þessir atburðir eru oft notaðir fyrir eftirfarandi:
- Birti velkomin skilaboð (eins og í flottu vinnubókinni hans Frank)
- Að opna aðrar vinnubækur
- Virkja tiltekið vinnublað í vinnubókinni
- Setja upp sérsniðnar flýtivalmyndir
Hér er síðasta Excel VBA dæmi um Workbook_Open aðferð sem notar GetSetting og SaveSetting aðgerðir til að halda utan um hversu oft vinnubókin hefur verið opnuð. SaveSetting aðgerðin skrifar gildi í Windows skrásetninguna og GetSetting aðgerðin sækir það gildi (sjá hjálparkerfið fyrir frekari upplýsingar). Eftirfarandi Excel VBA dæmi sækir talninguna úr skránni, hækkar hana og vistar hana síðan aftur í skrána. Það segir einnig notandanum gildi Cnt sem samsvarar fjölda skipta sem vinnubókin hefur verið opnuð.
Private Sub Workbook_Open()
Dim Cnt As Long
Cnt = GetSetting("MyApp", "Settings", "Open", 0)
Cnt = Cnt + 1
SaveSetting "MyApp", "Settings", "Open", Cnt
MsgBox "Þessi vinnubók hefur verið opnuð " & Cnt & " sinnum."
End Sub

Notkun Workbook_Open atburðastjórnunar til að halda utan um hversu oft vinnubók hefur verið opnuð.
Excel VBA dæmi: BeforeClose viðburðurinn fyrir vinnubók
Hér er dæmi um Excel VBA Workbook_BeforeClose atburðameðferðarferli, sem er keyrt sjálfkrafa strax áður en vinnubókinni er lokað. Þessi aðferð er staðsett í kóðaglugganum fyrir ThisWorkbook hlut:
Private Sub Workbook_BeforeClose(Hætta við sem Boolean)
Dimm skilaboð sem strengur
Dim Ans As Long
Dimmt FName sem strengur
Msg = "Viltu taka öryggisafrit af þessari skrá?"
Ans = MsgBox(Msg, vbYesNo)
Ef Ans = vbJá Þá
FName = "F:\BACKUP\" & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs FName
End If
End Sub
Þessi venja notar skilaboðareit til að spyrja notandann hvort hann vilji taka öryggisafrit af vinnubókinni. Ef svarið er já, notar kóðinn SaveCopyAs aðferðina til að vista öryggisafrit af skránni á drifi F. Ef þú aðlagar þessa aðferð fyrir eigin notkun þarftu að breyta drifi og slóð.
Excel forritarar nota oft Workbook_BeforeClose aðferð til að þrífa upp eftir sig. Til dæmis, ef þú notar Workbook_Open aðferð til að breyta einhverjum stillingum þegar þú opnar vinnubók (felur stöðustikuna, til dæmis), þá er aðeins viðeigandi að þú skilir stillingunum í upprunalegt horf þegar þú lokar vinnubókinni. Þú getur framkvæmt þessa rafrænu þrif með Workbook_BeforeClose aðferð.
Þegar þú notar viðburðinn Workbook_BeforeClose skaltu hafa þetta í huga: Ef þú lokar Excel og einhverri opinni skrá hefur verið breytt frá síðustu vistun, sýnir Excel venjulega „Viltu vista breytingarnar þínar“ skilaboðareitinn. Með því að smella á Hætta við hnappinn er hætt við allt lokunarferlið. En Workbook_BeforeClose atburðurinn mun hafa verið keyrður engu að síður.
Excel VBA dæmi: BeforeSave viðburðurinn fyrir vinnubók
Tilvikið BeforeSave, eins og nafnið gefur til kynna, er ræst áður en vinnubók er vistuð. Þetta atvik á sér stað þegar þú velur Skrá → Vista eða Skrá → Vista sem.
Eftirfarandi aðferð, sem er settur í Code gluggann fyrir ThisWorkbook hlut, sýnir BeforeSave atburð. Venjan uppfærir gildið í reit (reit A1 á Sheet1) í hvert sinn sem vinnubókin er vistuð. Með öðrum orðum, hólf A1 þjónar sem teljari til að halda utan um fjölda skipta sem skráin var vistuð.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
Sem Boolean, Hætta við sem Boolean)
Dimmt Counter As Range
Set Counter = Sheets("Sheet1").Range("A1")
Counter.Value = Mót.Value + 1
End Sub
Taktu eftir að Workbook_BeforeSave aðferðin hefur tvö rök: SaveAsUI og Cancel. Til að sýna fram á hvernig þessi rök virka skaltu skoða eftirfarandi fjölvi sem er keyrð áður en vinnubókin er vistuð. Þessi aðferð reynir að koma í veg fyrir að notandinn visti vinnubókina með öðru nafni. Ef notandinn velur File → Save As, þá eru SaveAsUI rökin True.
Þegar kóðinn keyrir athugar hann SaveAsUI gildið. Ef þessi breyta er True, birtir ferlið skilaboð og stillir Cancel á True, sem hættir við Vista aðgerðina.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
Sem Boolean, Hætta við sem Boolean)
Ef SaveAsUI Þá
MsgBox "Þú getur ekki vistað afrit af þessari vinnubók!"
Hætta við = satt
End If
End Sub
Athugaðu að þessi aðferð kemur í raun ekki í veg fyrir að neinn viti afrit með öðru nafni. Ef einhver vill virkilega gera það getur hann eða hún bara opnað vinnubókina með fjölvi óvirk. Þegar fjölvi eru óvirk, eru verklagsreglur atburðameðferðar einnig óvirkar, sem er skynsamlegt vegna þess að þetta eru, þegar allt kemur til alls, fjölvi.