/ / VBA Excel: exempelprogram. Excel-makron

VBA Excel: Exempelprogram. Excel-makron

Få vet att den första versionen av den populäraMicrosoft Excel dök upp 1985. Sedan dess har det gått igenom flera modifieringar och efterfrågas av miljontals användare runt om i världen. Samtidigt arbetar många människor med bara en liten del av kapaciteten hos denna kalkylarkprocessor och vet inte ens hur förmågan att programmera i Excel kan göra livet enklare.

VBA Excel-programexempel

Vad är VBA

Programmering i Excel utförs med Visual Basic for Application-programmeringsspråket, som ursprungligen är inbyggt i den mest kända kalkylprocessorn från Microsoft.

Experter hänvisar till dess fördelarjämförande enkel utveckling. Som praxis visar kan även användare som inte har professionell programmeringsförmåga behärska grunderna i VBA. VBA: s särdrag inkluderar skriptkörning i kontorsmiljön.

Nackdelarna med programmet är problemrelaterade till kompatibiliteten för olika versioner. De beror på att VBA-programkoden hänvisar till funktionalitet som finns i den nya versionen av produkten, men inte i den gamla. Nackdelarna inkluderar också den alltför höga öppenheten för koden för förändring av en utomstående. Microsoft Office och IBM Lotus Symphony tillåter dock användaren att kryptera fröet och ställa in ett lösenord för att visa det.

VBA-funktioner

Objekt, samlingar, egenskaper och metoder

Det är med dessa begrepp som du behöver för att förstå demsom ska arbeta i VBA-miljön. Först och främst måste du förstå vad ett objekt är. I Excel är detta ett ark, arbetsbok, cell och intervall. Dessa objekt har en speciell hierarki, dvs. lyda varandra.

Den viktigaste är Application,motsvarar själva Excel-programmet. Detta följs av arbetsböcker, kalkylblad och intervall. Om du till exempel vill hänvisa till cell A1 på ett visst ark måste du ange en sökväg baserat på hierarkin.

När det gäller begreppet "samling" är det en grupp objekt av samma klass som i posten har formen ChartObjects. Dess enskilda element är också objekt.

Nästa koncept är egenskaper. De är en nödvändig egenskap hos alla objekt. Till exempel för Range är detta värde eller formel.

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

Selection.ClearContents används ofta med det. Dess körning innebär att rensa innehållet i den valda cellen.

VBA-slingor

Hur man börjar

Det första steget är att skapa en fil och spara den genom att ge den ett namn och välja typen "Excel Macro-Enabled Workbook".

Då måste du gå till VB-applikationen, för vilken det räcker att använda kombinationen av tangenterna "Alt" och "F11". Ytterligare:

  • i menyraden högst upp i fönstret klickar du på ikonen bredvid Excel-ikonen;
  • välj Mudule-teamet;
  • spara genom att klicka på diskettikonen;
  • skriv, låt oss säga, en kodskiss.

Det ser ut så här:

Underprogram ()

"Vår kod

Avsluta sub

Observera att raden "" Vår kod "kommer att markeras i en annan färg (grön). Orsaken ligger i apostrofen i början av raden, vilket innebär att en kommentar följer.

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

Excel-makron

Detta namn döljer programskriven på Visual Basic for Application-språket. Således handlar programmering i Excel om att skapa makron med rätt kod. Tack vare den här funktionen utvecklas Microsofts kalkylprocessor själv och anpassar sig till kraven för en viss användare. Nu när du vet hur du skapar moduler för att skriva makron kan du börja titta på specifika VBA Excel-exempel. Det är bäst att börja med de mest rudimentära koder.

Exempel 1

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

För detta:

  • öppna fliken "Visa";
  • gå till makronikonen;
  • klicka på "Spela in makro";
  • fyll i det öppnade formuläret.

För enkelhetens skull lämnar du "Makro1" i fältet "Makronamn" och infogar till exempel hh i fältet "Kortkommando" (detta innebär att du kan starta programmet med blitz-kommandot "Ctrl + h"). Tryck enter.

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

Ytterligare:

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

Resultatet är den åtgärd som utfördes under inspelningen av makrot.

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 "Enter". Som ett resultat befinner de sig i VBA-miljön. Egentligen ligger själva makrokoden mellan raderna Sub Macro1 () och End Sub.

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

ActiveSheet.Paste-kommandot avslutar den aktiva delen av koden. Det betyder att skriva 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 det finns en funktion y = x + x2 + 3x3 - cos (x). Det krävs att du skapar ett makro för att få grafen. Detta kan endast göras med VBA-loopar.

För det initiala och slutliga värdet av funktionsargumentet, ta x1 = 0 och x2 = 10. Dessutom måste du ange en konstant - värdet för steget att ändra argumentet och det ursprungliga värdet för räknaren.

Alla VBA Excel-makroprover skapas enligt samma procedur som ovan. I det här specifika fallet ser koden ut som:

Underprogram ()

x1 = 1

x2 = 10

shag = 0,1

jag = 1

Gör medan x1 <x2 (slingan körs så länge uttrycket x1 <x2 är sant)

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

Celler (i, 1) .Värde = x1 (x1-värde skrivs till cell med koordinater (i, 1))

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

i = i + 1 (räknaren är aktiv);

x1 = x1 + shag (argumentet ändras med stegstorleken);

Slinga

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.

Därefter ritas en graf med hjälp av dem på ett vanligt sätt för Excel.

Excel-programmering

Exempel 3

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

Tänk på ett program som skapar en kolumn.Varje cell innehåller kvadraterna för motsvarande rad. Med hjälp av For-konstruktionen kan du skriva det mycket snart, 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ärden 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 fyrkanter, till exempel alla udda siffror från intervallet 1 till 11, skriver vi:

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

Här är steget ett steg. I det här fallet är det lika med två. Som standard betyder frånvaron av detta ord i slingan att steget är ett.

De erhållna resultaten måste sparas i celler mednummer (i, 1). Därefter, vid varje start av cykeln, med en ökning av i med stegstorleken, ökar också radnumret automatiskt. Således kommer koden att optimeras.

I allmänhet kommer koden att se ut:

Underprogram ()

För i = 1 till 10 steg 1 (du kan helt enkelt skriva för i = 1 till 10)

Celler (i, 1) .Värde = i ^ 2 (dvs. värdet på kvadraten i skrivs in i cellen (i, 1))

Nästa (i viss mening spelar rollen som en räknare och betyder en ny start av slingan)

Avsluta sub.

Om allt görs korrekt, inklusive inspelning och körning av makrot (se instruktionerna ovan), kommer varje kolumn av den angivna storleken att erhållas (i det här fallet, bestående av 10 celler) varje gång det anropas.

VBA Excel-makroexempel

Exempel 4

I vardagen finns det alltför oftabehovet av att ta ett eller annat beslut beroende på något tillstånd. Du kan inte göra det utan dem i VBA Excel. Exempel på program där den fortsatta förloppet för algoritmkörningen är valt och inte förutbestämt initialt, använder oftast If ... Then (för komplexa fall) If ... Then ... END If construct.

Låt oss överväga ett specifikt fall. Antag att du måste skapa ett makro för Excel så att cellen med koordinater (1,1) skrivs:

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å vanligt sätt med snabbtangenterna Alt och F11. Sedan skrivs följande kod:

Underprogram ()

x = Celler (1, 1). Värde (detta kommando tilldelar x värdet på cellinnehållet vid koordinater (1, 1))

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

Om x = 0 är celler (1, 1) .Värde = 0

Om x <0 Då celler (1, 1) .Värde = -1

Avsluta sub.

Det återstår att köra makrot och få önskat värde för argumentet i Excel.

VBA-funktioner

Som du kanske har märkt, programmerar du inMicrosofts mest kända kalkylarkprocessor är inte så svår. Speciellt om du lär dig hur du använder 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. Det:

  • Matematiska funktioner. Genom att tillämpa dem på argumentet får du värdet av cosinus, naturlig logaritm, heltal etc.
  • Ekonomiska funktioner. Tack vare deras närvaro och användning av programmering i Excel kan du få effektiva verktyg för redovisning och ekonomiska beräkningar.
  • Array bearbetningsfunktioner. Dessa inkluderar Array, IsArray; LBound; UBound.
  • VBA Excel-funktioner för sträng.Det här är en ganska stor grupp. Den inkluderar till exempel mellanslagsfunktionerna för att skapa en sträng med ett antal mellanslag lika med ett heltalargument, eller Asc för att översätta tecken till ANSI-kod. Alla används ofta och låter dig arbeta med rader i Excel och skapa applikationer som underlättar arbetet med dessa tabeller.
  • Konverteringsfunktioner för datatyp. Till exempel returnerar CVar värdet på argumentet Expression genom att konvertera det till datatypen Variant.
  • Funktioner för att arbeta med datum.De utökar avsevärt standardfunktionerna i Excel. Till exempel returnerar WeekdayName-funktionen veckodagens namn (helt eller delvis) med dess nummer. Timern är ännu mer användbar. Det ger dig antalet sekunder som har gått från midnatt till en viss punkt på dagen.
  • Funktioner för att konvertera ett numeriskt argument till olika nummersystem. Exempelvis matar oktober ut ett tal i oktalrepresentation.
  • Formateringsfunktioner. Den viktigaste av dessa är Format. Den returnerar en variant med ett uttryck formaterat enligt instruktionerna i formatbeskrivningen.
  • och så vidare

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

Exempel 5

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

Ett pappersdokument över rapporten om den faktiska nivån på företagskostnader ges. Nödvändig:

  • att utveckla sin malldel med hjälp av Excel-kalkylprocessorn;
  • skapa ett VBA-program som begär de ursprungliga uppgifterna för att fylla det, utföra nödvändiga beräkningar och fylla dem i motsvarande celler i mallen.

Låt oss överväga en av lösningarna.

Skapa mall

Alla åtgärder utförs på ett standardbladi Excel. Gratisceller är reserverade för att mata in data per månad, år, namnet på konsumentföretaget, kostnaderna, deras nivå och omsättning. Eftersom antalet företag (företag) för vilka rapporten upprättas inte är fast, är cellerna för inmatning av värdena för resultaten och specialistens fullständiga namn inte reserverade i förväg. Kalkylbladet får ett nytt namn. Till exempel "Օ rapporterar".

Variabler

För att skriva ett program för automatisk fyllning av en mall måste du välja notationen. De kommer att användas för variabler:

  • NN– nummer för aktuell tabellrad;
  • TP och TF - planerad och faktisk omsättning;
  • SF och SP - faktiska och planerade kostnader;
  • IP och IF - den planerade och faktiska kostnadsnivån.

Låt oss beteckna med samma bokstäver, men med "prefixet" Itog, ackumuleringen av summan för denna kolumn. Exempelvis hänvisar ItogTP till en tabellkolumn med titeln "Projected Turnover".

makron i Excel

Lösa ett problem med VBA-programmering

Med de introducerade beteckningarna får vi formler för avvikelser. Om du vill beräkna i% har vi (F - P) / P * 100 och totalt - (F - P).

Resultaten av dessa beräkningar kan bäst anges direkt i lämpliga celler i Excel-tabellen.

För resultat och fakta 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 för det totala värdet - (ItogF - ItogP).

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

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

Nyckeln "Skapa rapporteringstabell" krävertryck bara en gång efter att du har angett rubrikinformation. Det finns andra regler att vara medveten om. I synnerhet måste knappen "Lägg till rad" tryckas varje gång efter att du har angett värdena för varje aktivitet i tabellen. När du har angett alla data måste du klicka på "Slutför" -knappen och sedan växla till "Excel" -fönstret.

VBA Excel 2010

Nu vet du hur man löser Excel-problem medmed makron. Möjligheten att använda vba excel (se exempel på program ovan) kan också behövas för att arbeta i miljön hos den för närvarande mest populära textredigeraren "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å texten kan utföras genom att trycka på knapparna i tjänst eller genom att visa fliken och makronikonen.

gillade:
0
Populära inlägg
Andlig utveckling
mat
y