Hur man skriver makron för Excel. Makron i Excel - Bruksanvisning. Lägger till makroknappar till flikar

Ämne 2.3. Presentationsprogramvara och kontorsprogrammering grunderna

Ämne 2.4. Databashanteringssystem och expertsystem

2.4.11. Utbildningsdatabas med huvudknappsformuläret "Training_students" - Ladda ner

VBA-programmering och makron

2.3. Presentationsprogramvara och kontorsprogrammering grunderna

2.3.7. Grunderna i Office-programmering

BASIC visuellt programmeringsspråk för applikationer: Visual Basic for Applications (VBA)

VBA är en delmängd av det visuella programmeringsspråket Visual Basic (VB) som innehåller nästan alla verktyg för att skapa VB-applikationer.

VBA skiljer sig från programmeringsspråket VB genom att VBA är designat för att fungera direkt med Office-objekt och inte kan användas för att skapa ett projekt oberoende av Office-applikationer. I VBA är alltså programmeringsspråket VB, och programmeringsmiljön är implementerad i form av en VB-editor, som kan aktiveras från vilken MS Office-applikation som helst.

Till exempel, för att öppna VBA-redigeraren från PowerPoint, måste du köra kommandot Verktyg / Makro / VBA-redigerare. Du kan återgå från redigeraren till programmet genom att välja Microsoft PowerPoint-kommandot i Visa-menyn eller genom att trycka på tangentkombinationen Alt + F11.

Med hjälp av den inbyggda VBA-redigerarens uppsättning kontroller och formulärredigerare kan användaren skapa användargränssnitt för projektet som utvecklas med skärmform. Kontroller är objekt och varje objekt har en definierad uppsättning möjliga händelser (till exempel klicka eller dubbelklicka på en mus, trycka på en tangent, dra ett objekt, etc.).

Varje händelse manifesterar sig i vissa programåtgärder (svar, reaktioner). Ett användarformulär låter dig skapa programdialogfönster. Programmeringsspråket VBA används för att skriva programkod, som att skapa användarfunktioner i Excel.

Det faktum att VBA-programmeringssystemet är designat för att fungera med Office-objekt gör att det effektivt kan användas för att automatisera utvecklingsaktiviteter olika typer dokument.

Låt oss titta på algoritmen för att skapa användarfunktioner i VBA:

1. Öppna VBA-kodredigerarens fönster genom att utföra kommandot Verktyg / Makro / Visual Basic Editor eller trycka på Alt+F11.

2. Välj redigerarens menyalternativ Infoga / Modul.

3. Utför sedan Infoga/Procedur. I dialogrutan Lägg till procedur som öppnas anger du namnet på funktionen (till exempel SUM5) och ställer omkopplarna: Typ – till funktionspositionen; Scope (Scope) - till positionen Public (Allmänt) och klicka på OK.


Ris. 1.

4. I redigeringsfönstret för VBA-programmering kommer en funktionsmall att dyka upp: title - Public Function SUM5() and ending - End Function, mellan vilken du måste placera funktionskroppskoden.


Ris. 2.

5. Därefter anger vi en lista med funktionsparametrar, till exempel inom parentes anger vi (x, y, z, i, j), datatypen (för korrekta beräkningar) och typen av värde som returneras av funktionen (vi kommer inte att ange det i det här exemplet). Dessutom introducerar vi funktionens kropp, till exempel SUM5 = x + y + z + i + j. Som ett resultat får vi följande programtext:

Offentlig funktion SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Avsluta funktion

6. Återgå till fönstret Excel-applikationer, där vi till exempel behöver summera fem värden.

7. Kör "Infoga/Funktion" och i funktionsguidens fönster som öppnas, välj kategorin "Användardefinierad" och i fönstret "Välj en funktion", välj SUM5 och klicka på OK.



Ris. 3.



Ris. 4.

Makron

Skapa ett makro

Låt oss skapa ett makro för att automatiskt summera två tal i cellerna A1, B1 och placera resultatet i cell C1, samt fylla cell C1 med turkos färg.

Algoritm för att skapa ett makro för uppgiften:

1. Välj Verktyg/Makro, Starta inspelning.

2. I fältet Makronamn anger du ett namn för makrot. Det första tecknet i makronamnet måste vara en bokstav. Mellanslag är inte tillåtna i makronamnet; Du kan använda understreck som ordavgränsare.

3. För att köra ett makro med ett kortkommando, skriv in en bokstav i fältet Kortkommando. Du kan använda kombinationerna CTRL+ bokstav (för gemener) eller CTRL+SHIFT+ bokstav (för versaler), där bokstav är valfri bokstavstangent på tangentbordet. Välj inte ett standardkortkommando eftersom det valda kortkommandot åsidosätter standardgenvägarna Microsoft excel på den tiden med den här boken.

4. I fältet "Spara" väljer du arbetsboken där du vill spara makrot. Spara makrot i "Denna arbetsbok". För att skapa kort beskrivning makro, ange önskad text i fältet Beskrivning. Skärmdumpen visar ett exempel på att fylla i dialogrutan "Record Macro".


Ris. 5.

5. Klicka på OK.

6. Utför de makrokommandon du vill spela in.


Ris. 6.

7. Klicka på knappen Stoppa inspelning på det flytande OS-verktygsfältet (Stoppa inspelning) eller Verktyg / Makro / Stoppa makro.

När ett makro har avslutat inspelningen visas det i listan över makron under dess namn.

VBA-redigeraren spelade automatiskt in en sekvens av makrokommandon eller ett program baserat på de åtgärder som utförts (Fig. 7.).



Ris. 7.

För att anropa ett makro måste du utföra kommandot Verktyg / Makro / Makro. Efter det, i dialogrutan med en lista över makron, kan du hitta den efter namn och klicka på knappen Kör.

Tilldela en knapp i verktygsfältet för att köra ett makro

Makrot kan startas med knappen på det inbyggda verktygsfältet; för att göra detta måste du göra:

  1. Välj Inställningar från Verktyg-menyn.
  2. I dialogrutan Inställningar väljer du fliken Kommandon och väljer alternativet Makron i listan Kategorier och väljer "Anpassad knapp" i kommandolistan.
  3. Från kommandolistan, använd musen för att dra den anpassade knappen till verktygsfältet.
  4. Högerklicka på den här knappen och välj Tilldela makro till innehållsmeny.
  5. Ange ett namn för makrot i fältet Makronamn.

Tilldela ett område av ett grafiskt objekt för att köra ett makro:

  1. Skapa ett grafiskt objekt.
  2. Använd snabbmenyn på det valda grafiska objektet.
  3. Välj kommandot Tilldela makro från snabbmenyn.
  4. I dialogrutan Tilldela makro till objekt som visas anger du namnet på makrot i fältet Makronamn och klickar sedan på OK.

Redigering av ett makro utförs med VBA-redigeraren; för att göra detta måste du göra följande:

  1. Välj kommandot Verktyg / Makron / Makron.
  2. Välj namnet på det makro du vill ändra från listan Namn.
  3. Klicka på knappen Redigera, ett Visual Basic-fönster öppnas där du kan redigera kommandona för det valda makrot som skrivits i Visual Basic.


Ta bort ett makro:

  1. Välj Makron på Verktyg-menyn och välj sedan Makron.
  2. I listan över makron i den aktuella arbetsboken måste du välja det makro som du vill ta bort och klicka på knappen Ta bort.

Byter namn på ett makro

För att byta namn på ett makro måste du gå in i makroredigeringsläge och ändra titeln i programtexten. Det nya namnet kommer automatiskt att ersätta det gamla i makrolistorna, och genvägsknapparna kommer att anropa makrot med det nya namnet.

Först lite om terminologi.

Makro- detta är kod skriven i Excels inbyggda språk VBA(Visual Basic för applikation). Makron kan skapas antingen manuellt eller spelas in automatiskt med hjälp av en så kallad makroinspelare.

Makro inspelareär ett verktyg i Excel som registrerar allt du gör i Excel steg för steg och omvandlar det till VBA-kod. Makroinspelaren producerar mycket detaljerad kod (som vi kommer att se senare) som du kan redigera senare om det behövs.

Det inspelade makrot kan köras ett obegränsat antal gånger och Excel kommer att upprepa alla inspelade steg. Det betyder att även om du inte kan något om VBA kan du automatisera vissa uppgifter genom att helt enkelt spela in dina steg och sedan återanvända dem senare.

Låt oss nu dyka in och se hur man spelar in ett makro i Excel.

Visa fliken Utvecklare i menybandet

Innan du spelar in ett makro måste du lägga till en utvecklarflik i menybandet i Excel. För att göra detta, följ dessa steg:

Som ett resultat kommer fliken "Utvecklare" att visas på menybandet.

Spela in ett makro i Excel

Låt oss nu skriva ett väldigt enkelt makro som markerar en cell och skriver in text i den, till exempel "Excel".

Här är stegen för att spela in ett sådant makro:

Grattis! Du har precis spelat in ditt första makro i Excel. Även om makrot inte gör något användbart, kommer det att hjälpa oss att förstå hur makroinspelaren fungerar i Excel.

Låt oss nu titta på koden som makroinspelaren spelade in. Följ dessa steg för att öppna kodredigeraren:


Du kommer att se att när du klickar på Kör-knappen kommer texten "Excel" att infogas i cell A2 och cell A3 kommer att väljas. Detta händer på millisekunder. Men i själva verket utförde makrot de inspelade åtgärderna sekventiellt.

Notera. Du kan också köra ett makro med kortkommandot Ctrl + Shift + N (håll ned Ctrl- och Shift-tangenterna och tryck sedan på N-tangenten). Detta är samma etikett som vi tilldelade makrot när vi spelade in det.

Vad registrerar ett makro?

Låt oss nu gå till kodredigeraren och se vad vi har.

Här är stegen för att öppna VB-redigeraren i Excel:

  1. Klicka på knappen Visual Basic i gruppen Kod.

Du kan också använda tangentkombinationen Alt + F11 och gå till VBA-kodredigeraren.

  • Menyfältet: Innehåller kommandon som du kan använda när du arbetar med VB-redigeraren.
  • Verktygsfält- ser ut som en panel snabb åtkomst i Excel. Du kan lägga till ytterligare verktyg som du använder ofta.
  • Project Explorer- Här listar Excel alla arbetsböcker och alla objekt i varje arbetsbok. Om vi ​​till exempel har en arbetsbok med 3 kalkylblad kommer den att dyka upp i Project Explorer. Det finns flera ytterligare objekt här, såsom moduler, användarformulär och klassmoduler.
  • Kodfönster- själva VBA-koden finns i det här fönstret. För varje objekt som listas i projektutforskaren finns det ett kodfönster, såsom kalkylblad, arbetsböcker, moduler, etc. I den här handledningen kommer vi att se att det inspelade makrot finns i modulkodfönstret.
  • Egenskapsfönster- du kan se egenskaperna för varje objekt i det här fönstret. Jag använder ofta det här fönstret för att märka objekt eller ändra deras egenskaper.
  • Omedelbart fönster(förhandsgranskningsfönster) - I det inledande skedet kommer du inte att behöva det. Det är användbart när du vill testa steg eller under felsökning. Den visas inte som standard och du kan visa den genom att klicka på fliken Visa och välja alternativet Omedelbart fönster.

När vi spelade in makrot "EnterText" hände följande saker i VB-redigeraren:

  • En ny modul har lagts till.
  • Makrot spelades in med det namn vi angav - "InputText"
  • En ny procedur har lagts till i kodfönstret.

Så om du dubbelklickar på en modul (i vårt fall modul 1), kommer ett kodfönster att dyka upp som visas nedan.

Här är koden som spelats in av makroinspelaren:

SubTextEnter() " "TextEnter Macro " " Range("A2"). Välj ActiveCell.FormulaR1C1 = "Excel" Range("A3"). Välj End Sub

I VBA exekveras inte någon rad som följer " (apostrof). Detta är en kommentar som endast är avsedd för informationsändamål. Om du tar bort de första fem raderna i den här koden kommer makrot fortfarande att fungera.

Låt oss nu gå igenom varje kodrad och beskriva vad och varför.

Koden börjar med Sub följt av makronamnet och tomma parenteser. Sub är en förkortning för subrutin. Varje subrutin (även kallad procedur) i VBA börjar med Sub och slutar Avsluta Sub.

  • Range("A2").Select - Denna rad väljer cell A2.
  • ActiveCell.FormulaR1C1 = "Excel" - Denna rad anger texten "Excel" i den aktiva cellen. Eftersom vi valde cell A2 som första steg, blir den vår aktiva cell.
  • Range("A3").Välj - välj cell A3. Detta händer när vi trycker på Enter-tangenten efter att ha skrivit in text som resulterar i val av cell A3.

Förhoppningsvis har du lite grundläggande förståelse för hur man spelar in ett makro i Excel.

Observera att kod som spelas in via en makroinspelare i allmänhet inte är effektiv eller optimerad kod. Makroinspelaren lägger ofta till extra onödiga steg. Men detta betyder inte att du inte behöver använda en makroinspelare. För dem som bara lär sig VBA kan en makroinspelare vara ett utmärkt sätt att analysera och förstå hur allt fungerar i VBA.

Absolut och relativ makroinspelning

Känner du redan till absoluta och relativa länkar i Excel? Om du använder en absolut referens för att spela in ett makro, kommer VBA-koden alltid att referera till samma celler som du använde. Om du till exempel väljer cell A2 och skriver in texten "Excel", så kommer din kod att skriva in texten "Excel" i cell A2 varje gång - oavsett var du befinner dig i kalkylbladet och oavsett vilken cell som väljs.

Om du använder alternativet relativ referens för att spela in ett makro, kommer VBA inte att binda till en specifik celladress. I det här fallet kommer programmet att "röra sig" i förhållande till den aktiva cellen. Låt oss till exempel säga att du redan har valt cell A1 och du börjar spela in ditt makro i relativt länkläge. Nu väljer du cell A2, enter Excel-text och tryck på Enter. Om du nu kör det här makrot kommer det inte att återgå till cell A2, istället kommer det att flyttas i förhållande till den aktiva cellen. Till exempel, om cell B3 väljs flyttas den till B4, skriv texten "Excel" och flyttar sedan till cell K5.

Låt oss nu spela in makrot i relativt länkläge:

Makrot i relativ länkläge kommer att sparas.

Gör nu följande.

  1. Välj valfri cell (förutom A1).
  2. Gå till fliken "Utvecklare".
  3. Klicka på knappen Makron i gruppen Kod.
  4. I dialogrutan Makro klickar du på det sparade makrot Relative References.
  5. Klicka på knappen "Kör".

Som du kommer att märka skrev makrot inte "Excel"-texten i cellerna A2. Detta hände eftersom du spelade in makrot i relativ referensläge. Således flyttas markören i förhållande till den aktiva cellen. Till exempel, om du gör detta medan cell B3 är markerad, kommer den att gå in i Excel-text - cell B4 och i slutändan markera cell B5.

Här är koden som makroinspelaren spelade in:

Observera att koden inte refererar till cellerna B3 eller B4. Makrot använder Activecell för att referera till den aktuella cellen och förskjutningen i förhållande till den cellen.

Ignorera Range("A1") delen av koden. Detta är ett av de fall där makroinspelaren lägger till onödig kod som inte tjänar något syfte och som kan tas bort. Utan den fungerar koden bra.

Vad kan man inte göra med en makroinspelare?

Makroinspelare är bra för dig i Excel och registrerar dina exakta steg, men kanske inte är rätt val för dig när du behöver göra mer än så.

  • Du kan inte köra kod utan att välja ett objekt. Om du till exempel vill att makrot ska gå till nästa kalkylblad och markera alla fyllda celler i kolumn A utan att lämna det aktuella kalkylbladet, kommer makroinspelaren inte att kunna göra detta. I sådana fall måste du redigera koden manuellt.
  • Du kan inte skapa en anpassad funktion med en makroinspelare. Med VBA kan du skapa anpassade funktioner som kan användas i ett kalkylblad som vanliga funktioner.
  • Du kan inte skapa loopar med hjälp av makroinspelaren. Men du kan spela in en åtgärd och lägga till en loop manuellt i kodredigeraren.
  • Du kan inte analysera villkor: du kan kontrollera villkor i kod med hjälp av en makroinspelare. Om du skriver VBA-kod för hand kan du använda IF Then Else-satser för att utvärdera villkoret och köra koden om den är sann (eller annan kod om den är falsk).

Tillägg av Excel-filer som innehåller makron

När du spelar in ett makro eller manuellt skriver VBA-kod i Excel måste du spara filen med ett makroaktiverat filtillägg (.xlsm).

Före Excel 2007 räckte ett filformat - .xls. Men sedan 2007 har .xlsx introducerats som ett standardfiltillägg. Filer sparade som .xlsx kan inte innehålla ett makro. Så om du har en fil med filtillägget .xlsx och du skriver/spelar in ett makro och sparar det, kommer den att varna dig om att spara den i ett makroaktiverat format och visa dig följande dialogruta:

Om du väljer Nej, sparar Excel filen i ett makroaktiverat format. Men om du klickar på Ja, kommer Excel automatiskt att ta bort all kod från din arbetsbok och spara filen som en arbetsbok i .xlsx-format. Så om du har ett makro i din arbetsbok måste du spara det i .xlsm-format för att spara det makrot.

Vad är ett makro? Makroär en sparad sekvens av åtgärder eller ett program skapat i VBA (Visual Basic for Application). Vanliga frågor hur man skriver ett makro i Excel? Bara.

De där. om vi behöver utföra samma åtgärder flera gånger kan vi komma ihåg dessa åtgärder och köra dem med en knapp. Jag kommer inte att tvinga dig att lära dig VBA eller ens föreslå många standardmakron i den här artikeln. I verkligheten kan vem som helst skapa/skriva ett makro i Excel. För detta ändamål finns det den mest intressanta och ovanliga funktionen i Excel - Makro inspelare(registrera dina handlingar i form av kod). De där. du kan spela in dina handlingar, som på video, och översätta dem till kod (sekvens).

Kort sagt, om du utför samma åtgärder varje dag, är det värt att ta reda på hur man automatiserar denna process. Läs vidare för att lära dig hur man skriver ett makro i Excel?

1.Tillåt makron

Meny (rund knapp uppe till vänster) - Excel-alternativ— Trust Center — Trust Center Settings — Makroinställningar. Markera kryssrutan "Aktivera alla makron".

Eller gör samma sak på fliken Utvecklare

2. Aktivera menyn Utvecklare för snabbt arbete med makron

Meny (rund knapp uppe till vänster) - Excel-alternativ - Allmänt - Visa fliken utvecklare.

För att det skapade makrot ska sparas i arbetsboken måste du spara filen i .xlsm eller .xlsb. Klicka på Spara som - Makroaktiverad Excel-arbetsbok eller binär arbetsbok.

Så, hur man skriver ett makro i Excel?

Det är enkelt. Låt oss gå till Excel. Längst ner på sidan, under arketiketterna, finns en "Spela in makro"-knapp.

Klicka på knappen och fönstret "Record Macro" öppnas. Vi namnger makrot som vi vill i fältet Makronamn:. Vi ställer in tangentkombinationen som vi kommer att använda senare för att kalla den (valfritt).

Klicka på OK. Makroinspelaren har börjat spela in.

Allt. Nu gör vi de åtgärder som vi måste komma ihåg som ett makro. Till exempel måste vi ta bort en rad och färga cell A1 gul.

Under dessa manipuleringar, istället för knappen "Spela in makro" under arken, kommer en fyrkant att tändas och klicka på vilken kommer att stoppa exekveringen av makrot.

Hur startar man det som hände? Klicka på knappen, fönstret Välj makro visas, välj det makro du vill ha och klicka sedan på knappen Kör.

Hur kan jag se vad som hände? Klicka på knappen. Välj det makro du vill ha och klicka på Redigera. Fönstret Spela in makro (VBA-fönstret) öppnas.

Makrokoden bör se ut ungefär så här.

Underexempel1() " Exempel1 Makrorader("2:2").Välj urval.Ta bort Skift:=xlUp Range("A1").Välj med urval.Interiör .Mönster = xlSolid .PatternColorIndex = xlAutomatisk.Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

’ är en kommentarssymbol, dvs. denna rad ingår inte i koden. Ett makro måste ha ett namn (Sub Exempel1()) och en ändelse (End Sub).

Du kan läsa hur du skapar en knapp för ett makro.

Så du kan spela in alla dina handlingar så att du kan upprepa dem så många gånger du vill!

Du kan läsa hur du sparar ett makro för alla böcker på din dator.

För att göra detta, använd den personliga.

Du kan läsa hur man kör ett makro efter villkor

Lycka till, jag är säker på att du kommer att tycka att detta är väldigt användbart!

Dela vår artikel på dina sociala nätverk:

Med tabeller eller andra Office-objekt uppstår ofta situationer när du behöver göra samma åtgärder. Detta tar inte bara upp extra tid, utan är också väldigt irriterande. Lyckligtvis finns det makron för att lösa detta problem.

VBA-miljön är designad för att skapa makron, men du behöver inte vara programmerare eller studera Visual Basic for Application för att lära dig hur man skriver dem. För detta ändamål finns det specialutvecklade verktyg som skapar VBA-kod på ditt kommando, utan att kräva ytterligare kunskap från dig. Men att behärska detta språk är inte så svårt.

Makron skapas i applikationer med hjälp av inspelningsverktyg. I detta fall tilldelas en viss tangentkombination den önskade sekvensen av åtgärder. Öppna ett Office-program. Välj det fragment du vill formatera.

Välj menyalternativet "Verktyg" -> "Makro" -> "Starta inspelning" (i Office 2007 - "Visa" -> "Makron" -> "Spela in makro"). I fönstret "Record Macro" som visas, ställ in namnet på det nya makrot; som standard är det "Macro1", men det är bättre att ge det ett namn, särskilt om det kommer att finnas flera makron. Maximal storlek namnfält – 255 tecken, punkt- och mellanslagstecken är inte tillåtna.

Bestäm valet av knapp eller tangentkombination som ditt makro kommer att använda i framtiden. Försök att välja det mest bekväma alternativet, särskilt om det är avsett för frekvent användning. Välj lämplig post i fältet "Tilldela makro": "knapp" eller "tangenter".

Om du väljer "knapp" öppnas fönstret "Snabbinställningar". När du väljer "tangenter" behöver du bara ange kombinationen på tangentbordet. Granska "Aktuella kombinationer" för att undvika upprepning. Klicka på "Tilldela".

Makrot som skapats i Word och PowerPoint kommer att vara giltigt för alla dokument i framtiden. För att göra ett Excel-makro tillgängligt för alla dokument, spara det i filen personal.xls, som körs automatiskt när du öppnar programmet. Kör kommandot "Fönster" -> "Visa" och välj raden med namnet på filen personal.xls i fönstret som visas.

Ange en beskrivning av makrot i fältet Beskrivning. Klicka på OK så kommer du tillbaka i ditt dokument, men du kan nu se en inspelningsikon på muspekaren. Formatera texten med den sekvens av åtgärder du vill automatisera. Var mycket försiktig och gör inte onödiga åtgärder, eftersom makrot kommer att spela in alla, och detta kommer att påverka dess körningstid i framtiden.

Utför kommandot "Verktyg" -> "Makro" -> "Stoppa inspelning". Du skapade ett VBA-objekt utan att skriva en enda kodrad själv. Men om du fortfarande behöver göra ändringar manuellt, ange objektet genom avsnittet "Makron", kommandot "Ändra" eller använd tangentkombinationen Alt+F8.

Få människor vet att den första versionen av den populära Microsoft Excel-produkten dök upp 1985. Sedan dess har den genomgått flera modifieringar och är efterfrågad bland miljontals användare runt om i världen. Samtidigt arbetar många människor bara med en liten bråkdel av kapaciteten hos denna kalkylbladsprocessor och inser inte ens hur förmågan att programmera i Excel skulle kunna göra livet enklare.

Vad är VBA

Programmering i Excel utförs med hjälp av programmeringsspråket Visual Basic for Application, som ursprungligen byggdes in i den mest kända kalkylbladsprocessorn från Microsoft.

Experter tillskriver dess relativa lätthet att lära sig till dess fördelar. Som praxis visar kan även användare som inte har professionella programmeringskunskaper behärska grunderna i VBA. Funktioner i VBA inkluderar körning av skript i en kontorsprogrammiljö.

Nackdelen med programmet är problem i samband med kompatibiliteten mellan olika versioner. De orsakas av det faktum att VBA-programkoden kommer åt funktionalitet, som finns i ny version produkt, men saknas i den gamla. Nackdelarna inkluderar också den alltför stora öppenheten i koden för ändringar av en utomstående. Ändå Microsoft Office, liksom IBM Lotus Symphony, låter användaren kryptera den ursprungliga koden och ställa in ett lösenord för att se den.

Objekt, samlingar, egenskaper och metoder

Det är dessa begrepp som måste förstås av de som ska arbeta i VBA-miljön. Först och främst måste du förstå vad ett objekt är. I Excel är dessa funktioner ark, arbetsbok, cell och intervall. Dessa objekt har en speciell hierarki, d.v.s. lyda varandra.

Den huvudsakliga är Application, som motsvarar Excel-program. Sedan kommer arbetsböcker, arbetsblad och intervall. Till exempel, för att komma åt cell A1 på ett specifikt kalkylblad, måste du ange en sökväg som tar hänsyn till hierarkin.

När det gäller begreppet "samling", är detta en grupp av objekt av samma klass, som i posten har formen ChartObjects. Dess individuella element är också föremål.

Nästa koncept är egenskaper. De är en nödvändig egenskap hos alla föremål. Till exempel, för Range är det Value eller Formula.

Metoder är kommandon som indikerar vad som behöver göras. När du skriver kod i VBA måste de separeras från objektet med en punkt. Till exempel, som kommer att visas senare, mycket ofta vid programmering i Excel, används kommandot Cells(1,1).Select. Det betyder att du måste välja en cell med koordinater

Selection.ClearContents används ofta tillsammans med det. Att utföra detta innebär att rensa innehållet i den markerade cellen.

Hur man börjar

Sedan behöver du gå till VB-applikationen, för vilken du bara behöver använda tangentkombinationen "Alt" och "F11". Ytterligare:

  • i menyraden längst upp i fönstret, klicka på ikonen bredvid Excel-ikonen;
  • välj kommandot Mudule;
  • spara genom att klicka på ikonen med bilden;
  • de skriver, låt oss säga, ett utkast till koden.

Det ser ut så här:

Underprogram()

"Vår kod

Observera att raden "Vår kod" kommer att markeras i en annan färg (grön) Anledningen är apostrof placerad i början av raden, vilket indikerar att en kommentar följer.

Nu kan du skriva vilken kod som helst och skapa ett nytt verktyg för dig själv i VBA Excel(se exempel på program nedan). Naturligtvis blir det mycket lättare för dem som är bekanta med grunderna i Visual Basic. Men även de som inte har dem kan vänja sig tillräckligt snabbt om de vill.

Makron i Excel

Detta namn döljer program skrivna i Visual Basic for Application. Således är programmering i Excel att skapa makron med den nödvändiga koden. Tack vare denna funktion utvecklar Microsofts kalkylbladsprocessor sig själv och anpassar sig till en specifik användares krav. Efter att ha kommit på hur man skapar moduler för att skriva makron kan du börja överväga specifika exempel VBA Excel-program. Det är bäst att börja med de mest grundläggande koderna.

Exempel 1

Uppgift: skriv ett program som kopierar värdet av innehållet i en cell och sedan skriver det till en annan.

För detta:

  • öppna fliken "Visa";
  • gå till "Makron"-ikonen;
  • klicka på "Spela in makro";
  • fyll i formuläret som öppnas.

För enkelhetens skull, lämna "Macro1" i fältet "Makronamn" och infoga till exempel hh i fältet "Kortkommando" (det betyder att du kan starta programmet med snabbkommandot "Ctrl+h"). Tryck enter.

Nu när makroinspelningen redan har startat, kopieras innehållet i en cell till en annan. Återgå till den ursprungliga ikonen. Klicka på "Spela in makro". Denna åtgärd innebär slutet på programmet.

  • gå tillbaka till "Makron"-raden;
  • välj "Makro 1" från listan;
  • klicka på "Kör" (samma åtgärd startas genom att starta tangentkombinationen "Ctrl+hh").

Som ett resultat inträffar åtgärden som utfördes när makrot spelades in.

Det är vettigt att se hur koden ser ut. För att göra detta, gå tillbaka till raden "Makron" och klicka på "Ändra" eller "Logga in". Som ett resultat hamnar de i VBA-miljön. Egentligen är själva makrokoden placerad mellan raderna Sub Macro1() och End Sub.

Om kopiering gjordes, till exempel från cell A1 till cell C1, kommer en av kodraderna att se ut som Range(“C1”). Välj. Översatt, det ser ut som "Range("C1"). Välj, med andra ord, det går till VBA Excel, till cell C1.

Den aktiva delen av koden fylls i av kommandot ActiveSheet.Paste. Det betyder att man skriver innehållet i den valda cellen (i detta fall A1) till den valda cellen C1.

Exempel 2

VBA-loopar hjälper dig att skapa olika makron i Excel.

VBA-loopar hjälper dig att skapa olika makron. Antag att vi har en funktion y=x + x 2 + 3x 3 - cos(x). Du måste skapa ett makro för att få dess graf. Detta kan endast göras med VBA-loopar.

De initiala och slutliga värdena för funktionsargumentet är x1=0 och x2=10. Dessutom måste du ange en konstant - värdet för argumentändringssteget och startvärdet för räknaren.

Alla VBA Excel-makroexempel skapas med samma procedur som presenterades ovan. I det här specifika fallet ser koden ut så här:

Underprogram()

steg = 0,1

Gör medan x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Cells(i, 1).Värde = x1 (värdet x1 skrivs till cellen med koordinater (i,1))

Cells(i, 2).Värde = y (y-värdet skrivs till cellen med koordinater (i,2))

i = i + 1 (räknare är i kraft);

x1 = x1 + shag (argumentet ändras med stegvärdet);

Avsluta Sub.

Som ett resultat av att köra detta makro i Excel får vi två kolumner, varav den första innehåller värdena för x och den andra för y.

Sedan byggs en graf av dem på ett standardsätt för Excel.

Exempel 3

För att implementera loopar i VBA Excel 2010, som i andra versioner, tillsammans med den redan givna Do While-konstruktionen, används For.

Överväg ett program som skapar en kolumn. I var och en av dess celler kommer kvadraterna på motsvarande radnummer att skrivas. Genom att använda For-konstruktionen kan du skriva det mycket kort, utan att använda en räknare.

Först måste du skapa ett makro enligt beskrivningen ovan. Därefter skriver vi ner själva koden. Vi antar att vi är intresserade av värdena för 10 celler. Koden ser ut så här.

För i = 1 till 10 Nästa

Kommandot översätts till "mänskligt" språk som "Upprepa från 1 till 10 i steg om ett."

Om uppgiften är att få en kolumn med kvadrater, till exempel av alla udda tal från intervallet 1 till 11, så skriver vi:

För i = 1 till 10 steg 1 Nästa.

Här är steget ett steg. I detta fall är det lika med två. Som standard betyder frånvaron av detta ord i cykeln att steget är enkelt.

De erhållna resultaten måste sparas i celler numrerade (i,1). Sedan, varje gång slingan startas, med i ökande med ett steg, kommer radnumret automatiskt att öka. På så sätt kommer koden att optimeras.

Överlag kommer koden att se ut så här:

Underprogram()

För i = 1 Till 10 Steg 1 (du kan helt enkelt skriva För i = 1 Till 10)

Cells(i, 1).Värde = i ^ 2 (dvs värdet på kvadrat i skrivs till cell (i,1)

Nästa (på sätt och vis spelar rollen som en räknare och betyder ännu en start på loopen)

Avsluta Sub.

Om allt är gjort korrekt, inklusive inspelning och körning av makrot (se instruktionerna ovan), då när du anropar det, kommer du varje gång att få en kolumn av den angivna storleken (i detta fall bestående av 10 celler).

Exempel 4

I Vardagsliv Ganska ofta uppstår behovet av att fatta ett eller annat beslut beroende på något tillstånd. Du kan inte göra utan dem i VBA Excel. Exempel på program där algoritmens vidare exekveringsförlopp är vald och inte förutbestämt initialt, använder oftast If ...Then-konstruktionen (för komplexa fall) If ...Then ...END If.

Låt oss överväga ett specifikt fall. Anta att du behöver skapa ett makro för Excel så att följande skrivs i cellen med koordinater (1,1):

1 om argumentet är positivt;

0 om argumentet är null;

-1 om argumentet är negativt.

Skapandet av ett sådant makro för Excel börjar på ett vanligt sätt, genom att använda snabbtangenterna Alt och F11. Därefter skrivs följande kod:

Underprogram()

x= Cells(1, 1).Värde (detta kommando tilldelar x värdet av innehållet i cellen vid koordinater (1, 1))

Om x>0 Då Cells(1, 1).Värde = 1

Om x=0 då Celler(1, 1). Värde = 0

Om x<0 Then Cells(1, 1).Value = -1

Avsluta Sub.

Allt som återstår är att köra makrot och få det nödvändiga värdet för argumentet i Excel.

VBA-funktioner

Som du kanske redan har märkt är programmering i Microsofts mest kända kalkylbladsprocessor inte så svårt. Speciellt om du lär dig använda VBA-funktioner. Totalt har detta programmeringsspråk, skapat speciellt för att skriva applikationer i Excel och Word, cirka 160 funktioner. De kan delas in i flera stora grupper. Detta:

  • Matematiska funktioner. Genom att tillämpa dem på argumentet får de värdet av cosinus, naturlig logaritm, heltalsdel, etc.
  • Finansiella funktioner. Tack vare deras tillgänglighet och med hjälp av Excel-programmering kan du få effektiva verktyg för redovisning och ekonomiska beräkningar.
  • Arraybehandlingsfunktioner. Dessa inkluderar Array, IsArray; LBound; UBound.
  • Excel VBA-funktioner för sträng. Det här är en ganska stor grupp. Detta inkluderar till exempel funktionerna Space för att skapa en sträng med antalet blanksteg lika med heltalsargumentet, eller Asc för att konvertera tecken till ANSI-kod. Alla används ofta och låter dig arbeta med rader i Excel och skapa applikationer som i hög grad underlättar arbetet med dessa tabeller.
  • Datatypkonverteringsfunktioner. Till exempel returnerar CVar värdet för argumentet Expression genom att konvertera det till datatypen Variant.
  • Funktioner för att arbeta med datum. De utökar standarden avsevärt, så funktionen WeekdayName returnerar namnet (helt eller delvis) på veckodagen med dess nummer. Ännu mer användbar är Timer. Den anger antalet sekunder som har gått från midnatt till en specifik punkt på dagen.
  • Funktioner för att konvertera ett numeriskt argument till olika talsystem. Till exempel matar Oct ut tal i oktal.
  • Formateringsfunktioner. Den viktigaste av dem är Format. Den returnerar ett variantvärde med ett uttryck formaterat enligt instruktionerna som anges i formatdeklarationen.
  • etc.

Att studera egenskaperna hos dessa funktioner och deras tillämpning kommer att avsevärt utöka omfattningen av Excel.

Exempel 5

Låt oss försöka gå vidare till att lösa mer komplexa problem. Till exempel:

Ett pappersdokument som rapporterar företagets faktiska kostnadsnivå ges. Nödvändig:

  • utveckla sin malldel med hjälp av Excel-kalkylarket;
  • skapa ett VBA-program som kommer att begära initiala data för att fylla i det, utföra nödvändiga beräkningar och fylla i motsvarande mallceller med dem.

Låt oss överväga ett av lösningsalternativen.

Skapa en mall

Alla åtgärder utförs på ett standardark i Excel. Fria celler är reserverade för att ange data om namnet på konsumentföretaget, kostnadsbeloppet, deras nivå och omsättning. Eftersom antalet företag (samhällen) för vilka rapporten sammanställs inte är fast, är cellerna för inmatning av värden baserade på resultaten och namnet på specialisten inte reserverade i förväg. Arbetsbladet får ett nytt namn. Till exempel "rapporter".

Variabler

För att skriva ett program för att automatiskt fylla i en mall måste du välja noter. Dessa kommer att användas för variabler:

  • NN - nummer på den aktuella tabellraden;
  • TP och TF - planerad och faktisk handelsomsättning;
  • SF och SP - faktiska och planerade kostnadsbelopp;
  • IP och IF - planerad och faktisk kostnadsnivå.

Låt oss beteckna ackumuleringen av summan för denna kolumn med samma bokstäver, men med "prefixet" Itog. Till exempel, ItogTP - hänvisar till tabellkolumnen med rubriken "planerad omsättning".

Att lösa ett problem med VBA-programmering

Med hjälp av de införda notationerna får vi formler för avvikelser. Om du behöver räkna i % har vi (F - P) / P * 100, och totalt - (F - P).

Resultaten av dessa beräkningar kan bäst matas in direkt i lämpliga celler i ett Excel-kalkylblad.

För faktiska och prognostiserade totaler erhålls de med formlerna ItogP=ItogP + P och ItogF=ItogF+ F.

För avvikelser använd = (ItogF - ItogP) / ItogP * 100 om beräkningen utförs i procent, och i fallet med ett totalt värde - (ItogF - ItogP).

Resultaten skrivs återigen omedelbart till lämpliga celler, så det finns inget behov av att tilldela dem till variabler.

Innan du kör det skapade programmet måste du spara arbetsboken, till exempel under namnet "Report1.xls".

Knappen "Skapa rapporttabell" behöver bara tryckas en gång efter att du har angett rubrikinformationen. Det finns andra regler du bör känna till. I synnerhet måste knappen "Lägg till rad" klickas varje gång efter att du har angett värden för varje typ av aktivitet i tabellen. När du har angett alla uppgifter måste du klicka på knappen "Slutför" och sedan byta till Excel-fönstret.

Nu vet du hur du löser Excel-problem med hjälp av makron. Möjligheten att använda vba excel (se exempel på program ovan) kan också behövas för att fungera i den mest populära textredigeraren för tillfället, Word. I synnerhet kan du skapa menyknappar genom att skriva, som visas i början av artikeln, eller genom att skriva kod, tack vare vilken många operationer på text kan utföras genom att trycka på funktionstangenterna eller genom fliken "Visa" och ikonen "Makron".




Topp