Excel VBA-exempel: Inledande händelseexempel

Om du försöker få ett bra grepp om Excel VBA , kan du förmodligen dra nytta av några exempel för att utveckla den visuella grundläggande skickligheten. Här hittar du några Excel VBA-exempel så att du kan få kläm på denna evenemangshanteringsverksamhet.

Excel VBA-exempel: Open-händelsen för en arbetsbok

En av de mest använda Excel VBA-händelserna är Workbook Open-händelsen. Anta att du har en arbetsbok som du använder varje dag. Proceduren Workbook_Open i det här exemplet körs varje gång arbetsboken öppnas. Proceduren kontrollerar veckodagen; om det är fredag ​​visar koden ett påminnelsemeddelande för dig.

För att skapa Excel VBA-proceduren som körs närhelst Workbook Open-händelsen inträffar, följ dessa steg:

Öppna Excel-arbetsboken.
Vilken Excel-arbetsbok som helst duger.

Tryck på Alt+F11 för att aktivera VBE.

Leta reda på arbetsboken i projektfönstret.

Dubbelklicka på projektnamnet för att visa dess objekt, om det behövs.

Dubbelklicka på objektet ThisWorkbook.
VBE visar ett tomt kodfönster för ThisWorkbook-objektet.

I fönstret Kod väljer du Arbetsbok från rullgardinsmenyn Objekt (vänster).
VBE anger start- och slutsatserna för en Workbook_Open-procedur.

Skriv in följande påståenden så att hela händelseproceduren ser ut så här:

Privat underarbetsbok_Öppen()
  Dim Msg As String
  Om veckodag(nu) = 6 Då
    Msg = "Idag är det fredag. Glöm inte att "
    Msg = Msg & "skicka in TPS-rapporten!"
    MsgBox Medd
  Avsluta om
Avsluta Sub

Kodfönstret ska se ut så här.

Excel VBA-exempel: Inledande händelseexempel

Denna händelsehanterare procedur exekveras när arbetsboken öppnas.

Workbook_Open körs automatiskt när arbetsboken öppnas. Den använder VBA:s WeekDay-funktion för att bestämma veckodagen. Om det är fredag ​​(dag 6) påminner en meddelanderuta användaren om att skicka en rapport. Om det inte är fredag ​​händer ingenting.

Om idag inte är fredag ​​kan du ha svårt att testa denna procedur. Du kan bara ändra 6:an så att den motsvarar dagens faktiska dagnummer.

Och naturligtvis kan du ändra denna procedur som du vill. Till exempel visar följande version ett meddelande varje gång arbetsboken öppnas. Detta blir irriterande efter ett tag.

En Workbook_Open-procedur kan göra nästan vad som helst. Dessa händelsehanterare används ofta för följande:

  • Visa välkomstmeddelanden (som i Franks coola arbetsbok)
  • Öppna andra arbetsböcker
  • Aktivera ett visst kalkylblad i arbetsboken
  • Konfigurera anpassade genvägsmenyer

Här är ett sista Excel VBA-exempel på en Workbook_Open-procedur som använder funktionerna GetSetting och SaveSetting för att hålla reda på hur många gånger arbetsboken har öppnats. SaveSetting-funktionen skriver ett värde till Windows-registret och GetSetting-funktionen hämtar det värdet (se hjälpsystemet för detaljer). Följande Excel VBA-exempel hämtar antalet från registret, ökar det och sparar det sedan tillbaka till registret. Det talar också om för användaren värdet på Cnt som motsvarar antalet gånger arbetsboken har öppnats.

Privat underarbetsbok_Öppen()
  Dim Cnt As Long
  Cnt = GetSetting("MyApp", "Settings", "Open", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Denna arbetsbok har öppnats " & Cnt & " gånger."
Avsluta Sub

Excel VBA-exempel: Inledande händelseexempel

Använda en Workbook_Open-händelsehanterare för att hålla reda på hur många gånger en arbetsbok har öppnats.

Excel VBA-exempel: Händelsen BeforeClose för en arbetsbok

Här är ett exempel på Excel VBA Workbook_BeforeClose händelsehanterare-proceduren, som exekveras automatiskt omedelbart innan arbetsboken stängs. Denna procedur finns i kodfönstret för ett ThisWorkbook-objekt:

Privat underarbetsbok_BeforeClose(Avbryt som boolesk)
  Dim Msg As String
  Dim Ans As Long
  Dim FName As String
  Msg = "Vill du göra en säkerhetskopia av den här filen?"
  Ans = MsgBox(Msg, vbYesNo)
  Om Ans = vbYes Då
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Avsluta om
Avsluta Sub

Denna rutin använder en meddelanderuta för att fråga användaren om han vill göra en säkerhetskopia av arbetsboken. Om svaret är ja, använder koden SaveCopyAs-metoden för att spara en säkerhetskopia av filen på enhet F. Om du anpassar denna procedur för eget bruk måste du ändra enheten och sökvägen.

Excel-programmerare använder ofta en Workbook_BeforeClose-procedur för att städa efter sig. Om du till exempel använder en Workbook_Open-procedur för att ändra vissa inställningar när du öppnar en arbetsbok (till exempel gömmer statusfältet), är det bara lämpligt att du återställer inställningarna till deras ursprungliga tillstånd när du stänger arbetsboken. Du kan utföra denna elektroniska hushållning med en Workbook_BeforeClose-procedur.

När du använder händelsen Workbook_BeforeClose, tänk på detta: Om du stänger Excel och någon öppen fil har ändrats sedan den senaste lagringen visar Excel sin vanliga meddelanderuta "Vill du spara dina ändringar". Genom att klicka på knappen Avbryt avbryts hela stängningsprocessen. Men händelsen Workbook_BeforeClose kommer att ha körts ändå.

Excel VBA-exempel: BeforeSave-händelsen för en arbetsbok

Händelsen BeforeSave, som namnet antyder, utlöses innan en arbetsbok sparas. Denna händelse inträffar när du väljer Arkiv → Spara eller Arkiv → Spara som.

Följande procedur, som är placerad i den kod fönster för en ThisWorkbook objekt, demonstrerar BeforeSave händelsen. Rutinen uppdaterar värdet i en cell (cell A1 på Ark1) varje gång arbetsboken sparas. Med andra ord fungerar cell A1 som en räknare för att hålla reda på hur många gånger filen har sparats.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  Som boolesk, avbryt som boolesk)
  Dim räknare som räckvidd
  Set Counter = Sheets("Sheet1"). Range("A1")
  Counter.Value = Counter.Value + 1
Avsluta Sub

Observera att Workbook_BeforeSave-proceduren har två argument: SaveAsUI och Cancel. För att visa hur dessa argument fungerar, undersök följande makro, som körs innan arbetsboken sparas. Den här proceduren försöker hindra användaren från att spara arbetsboken med ett annat namn. Om användaren väljer Arkiv → Spara som är argumentet SaveAsUI True.

När koden körs kontrollerar den SaveAsUI-värdet. Om denna variabel är True, visar proceduren ett meddelande och ställer in Cancel till True, vilket avbryter Save-operationen.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  Som boolesk, avbryt som boolesk)
  Om SaveAsUI Då
    MsgBox "Du kan inte spara en kopia av denna arbetsbok!"
  Avbryt = Sant
  Avsluta om
Avsluta Sub

Observera att den här proceduren inte kommer att hindra någon från att spara en kopia med ett annat namn. Om någon verkligen vill göra det kan han eller hon bara öppna arbetsboken med makron inaktiverade. När makron är inaktiverade inaktiveras även procedurer för händelsehanterare, vilket är vettigt eftersom de trots allt är makron.

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]