ComputersSoftware

VBA Excel: sample-programma's. Macro's in Excel

Weinig mensen weten dat de eerste versie van de populaire Microsoft Excel product verscheen in 1985. Sindsdien is het aantal wijzigingen en de vraag van miljoenen gebruikers over de hele wereld heeft ondergaan. Echter, veel werk alleen met een beetje mogelijkheden van deze spreadsheet en niet eens weten hoe ze het leven makkelijker voor de mogelijkheid om Excel programmering kon maken.

Wat is VBA

Programmeren in Excel wordt gedaan door Visual Basic for Applications programmeertaal die oorspronkelijk werd gebouwd in de meest bekende spreadsheet van Microsoft.

Om zijn verdienste deskundigen schrijven het relatieve gemak van ontwikkeling. De praktijk blijkt, kan VBA beheersen de basis, ook de gebruikers die niet beschikken over professionele programmeren. Voor VBA functies zijn onder meer het uitvoeren van scripts in de office applicatie-omgeving.

Het nadeel van het programma zijn de problemen in verband met de verenigbaarheid van de verschillende versies. Ze worden veroorzaakt door het feit dat de VBA-code van het programma verwijst naar de functionaliteit die aanwezig is in de nieuwe versie van het product is, maar niet in de oude. Er is ook een groot nadeel en overdreven grote openheid van de code om het gezicht van een vreemde te veranderen. Echter, Microsoft Office en IBM Lotus Symphony stelt gebruikers in staat om encryptie toegangscode en wachtwoord instellingen toe te passen om het te bekijken.

Objecten, collecties, eigenschappen en methoden

Het is met deze concepten die u nodig hebt om degenen die gaan werken in de VBA omgeving te begrijpen. Allereerst moet u begrijpen wat het doel is. In Excel, in deze wet als een vel, een boek, en mobiele bereik. Deze voorwerpen hebben speciale hiërarchie d.w.z. gehoorzamen elkaar.

Chief onder hen is de toepassing, de bijbehorende Excel programma zelf. Gevolgde werkboeken, werkbladen, en Range. Bijvoorbeeld om te verwijzen naar cel A1 een specifiek blad moeten weg wijzen, rekening houdend met de hiërarchie.

Met betrekking tot het concept van de "collectie", deze groep objecten van dezelfde klasse, waarin de opname wordt gegeven ChartObjects. De elementen zijn ook objecten.

Volgende ding - eigenschappen. Ze zijn een noodzakelijk kenmerk van een object. Bijvoorbeeld voor de Range - is een Value of Formula.

Methoden - is het bevel aan te tonen dat u wilt maken. Bij het schrijven code VBA ze worden gescheiden van het voorwerpspunt. Bijvoorbeeld, zoals later zal worden getoond, heel vaak bij het programmeren in de "Excel" gebruik Cells opdracht (1,1) rechtenmenu.Selecteer. Het betekent dat het noodzakelijk is om een cel met coördinaten selecteren (1,1), d.w.z. A1.

Het wordt echter vaak gebruikt Selection.ClearContents. De uitvoering ervan is de goedkeuring van de inhoud van de geselecteerde cel.

Hoe te beginnen

Allereerst u het bestand wilt maken en deze opslaan, wijs een naam en selecteer het type «Boek Excel macro's ingeschakeld."

Ga dan naar de VB-applicatie, wat genoeg is om een combinatie van «Alt» toets en «F11» gebruiken. Volgende:

  • in de menubalk aan de bovenkant van het venster, klikt u op het icoontje naast het pictogram Excel;
  • Mudule geselecteerde opdracht;
  • blijven klikken op het icoontje met de diskette;
  • schrijven, laten we zeggen, een code omtrek.

Het ziet er als volgt uit:

Sub-programma ()

'Onze code

end Sub

Houd er rekening mee dat de lijn " 'Our code" zal worden gemarkeerd in een andere kleur (groen). De reden voor deze apostrof, afgeleverd aan het begin van de string, die aangeeft dat wat volgt is een reactie.

Nu kunt u een code te schrijven en creëren voor zichzelf een nieuwe tool in VBA Excel (zie de steekproef programma's. Etc.). Natuurlijk, degenen die bekend zijn met de basisprincipes van Visual Basic, zal het veel gemakkelijker zijn. Echter, zelfs degenen die niet hebben, als je wilt in staat zijn om vrij snel comfortabel te krijgen.

Macro's in Excel

Achter deze naam schuilt programma's geschreven in Visual Basic for Application taal. Zo is de programmering naar Excel - is om een macro te creëren om de gewenste code. Met deze mogelijkheid, Microsoft spreadsheet zelf ontwikkelt, aan te passen aan de eisen van een bepaalde gebruiker. Na behandeld hoe u modules te creëren voor het schrijven van macro's, is het mogelijk om door te gaan met concrete voorbeelden van VBA Excel-programma. Het is het beste om te beginnen met de meest elementaire codes.

Voorbeeld 1

Opdracht: Schrijf een programma dat de waarde van de inhoud van een cel zal kopiëren en vervolgens te schrijven naar de andere.

Om dit te doen:

  • Open het tabblad "View";
  • Verplaats het pictogram "macros";
  • schudden om de "Record Macro";
  • vullen geopend formulier.

Voor de eenvoud, in de "Macro Name" laten "Makros1" en in de "Sneltoets" ingevoegd, bijvoorbeeld, hh (dit betekent dat u kunt uitvoeren het voorbeeld programma «Ctrl + h» blitz team). Druk op Enter.

Nu dat u bent begonnen met het opnemen van de macro, make-up van de inhoud van een cel naar de andere. Keer terug naar de oorspronkelijke pictogram. Klik op de "Record Macro". Deze actie markeert de voltooiing van applets.

Volgende:

  • weer verhuizen naar de string "Macro's";
  • is geselecteerd in de lijst "Macro 1";
  • klik op "Run" (dezelfde actie begint Gelanceerd sneltoetsen «Ctrl + hh»).

Als gevolg hiervan, de actie die is uitgevoerd tijdens het opnemen van de macro.

Het is zinvol om te zien hoe de code eruit ziet. Om dit te doen, ga terug naar de string "Macro's" en klik op "Edit" of "Enter". Als gevolg daarvan, bevinden zij zich in de VBA omgeving. Eigenlijk is de code zelf is gelegen tussen de lijnen macro Makros1 Sub () en End Sub.

Als het kopiëren is uitgevoerd, bijvoorbeeld, uit een cel A1 in cel C1, één van de lijnen van de code eruit zal zien Range ( "C1"). Selecteer. In vertaling, het ziet eruit als "Range (" C1 "). Kies", met andere woorden, maakt een overgang naar VBA Excel, in cel C1.

Een actieve deel van de code ActiveSheet.Paste team compleet. Betekent het opnemen van de inhoud geselecteerde cel (in dit geval, A1) in de geselecteerde cel C1.

Voorbeeld 2

VBA cycli helpen creëren verschillende macro's in Excel.

VBA cycli helpen creëren verschillende macro's. Neem aan dat er een functie y = x + x 3 + 3x 2 - cos (x). U wilt een macro om zijn graphics te creëren. Dit kan alleen worden gedaan door het gebruik van VBA cycli.

Van de begin- en eindwaarde redenering functies nemen x1 = 0 en x2 = 10. Bovendien is het noodzakelijk een constante introduceren - de waarde voor stap verandert het argument en een initiële waarde voor de teller.

Alle voorbeelden van VBA Excel macro's worden gemaakt met behulp van dezelfde procedure als hierboven uiteengezet. In dit specifieke geval, de code eruit ziet:

Sub programma ()

x1 = 1

x2 = 10

shag = 0,1

i = 1

Terwijl hoeft x1

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

Cellen (i, 1) .Value = x1 (x1 waarde geschreven in het geheugen met de coördinaten (i, 1))

Cellen (i, 2) .Value = Y (y-waarde wordt geschreven in de cel met de coördinaten (i, 2))

i = i + 1 (geldig telling);

x1 = x1 + shag (argument veranderd naar de stapgrootte);

lus

End Sub.

Als resultaat van deze proef macro "Excel" staan twee kolommen, waarvan de eerste opgenomen de waarden voor x en de tweede - y.

Dan plannen kunnen bouwen op hen, de standaard voor "Excel".

Voorbeeld 3

Om cycli implementeren in VBA Excel 2010, evenals in andere versies, samen met de reeds verlaagde doen terwijl ontwerp gebruikt.

Overweeg een programma dat een kolom creëert. In elke cel zal worden opgenomen vierkanten overeenkomstige lijnnummer. Voor het gebruik van het ontwerp zal toelaten om het heel kort op te nemen, zonder het gebruik van een teller.

Ten eerste is het noodzakelijk om een macro te maken, zoals hierboven beschreven. Vervolgens schrijf de code zelf. Wij zijn van mening dat we geïnteresseerd zijn in de waarden voor de 10 cellen. De code is als volgt.

Voor i = 1 tot 10 Volgende

Het commando wordt overgebracht naar de "menselijke" taal zoals "herhaalde 1-10 in stappen van één."

Als de taak om de kolom met vierkanten te ontvangen, bijvoorbeeld alle oneven getallen tussen 1 en 11, we schrijven:

Voor i = 1 tot 10 stap 1 Next.

Hier stap - stap. In dit geval is gelijk aan twee. Standaard is de afwezigheid van het woord in de loop betekent dat een enkele stap.

De resultaten moeten worden opgeslagen in celaantal (i, 1). Dan elke keer dat u de cyclus met een stijging van de waarde begin van i stap wordt automatisch groeien en lijnnummer. Zo zal er code optimalisatie.

In het algemeen zou het er als volgt uitzien:

Sub-programma ()

Voor i = 1 Aan 10 Stap 1 (kan worden geschreven alleen voor i = 1 tot 10)

Cellen (i, 1) .Value = i ^ 2 (d.w.z. kwadratische waarde wordt geschreven naar de cel (i, 1) i)

Next (in zekere zin speelt de rol van de teller middelen en een andere cyclus start)

End Sub.

Indien correct uitgevoerd, waaronder het opnemen en afspelen van macro (zie. De bovenstaande instructies), dan spreekt men telkens een bepaalde grootte wordt verkregen kolom (hier bestaande uit 10 cellen).

Voorbeeld 4

In het dagelijks leven, heel vaak is het noodzakelijk om dit of dat besluit te nemen, afhankelijk van een aantal voorwaarden. Kan niet zonder ze in VBA Excel. Voorbeelden van programma's waarbij het verdere verloop van het algoritme wordt gekozen in plaats van aanvankelijk voorafbepaalde meest gebruikte ontwerp If ... Then (voor moeilijke gevallen) Als ... Dan ... END If.

Beschouw het specifieke geval. Stel dat u een macro voor "Excel" te creëren om de cel met de coördinaten (1,1) is opgenomen:

1 als het argument positief is;

0 als het argument nul;

1, als het argument negatief is.

De oprichting van een dergelijke macro voor "Excel" begint op een standaard manier, door gebruik te maken van de toetsen "hot" Alt en F11. Verder geschreven de volgende code:

Sub-programma ()

x = Cells (1, 1) .Value (Dit commando wijst de waarde van de x-coördinaten van de celinhoud (1, 1))

Als x> 0 toen Cells (1, 1) .Value = 1

Als x = 0 Then Cells (1, 1) .Value = 0

Als x <0 toen Cells (1, 1) .Value = -1

End Sub.

Het blijft een macro gewenste waarde draaien en krijgen in "Excel" voor het argument.

VBA-functies

Zoals je misschien al gemerkt, in de meest bekende programma Microsoft spreadsheet-applicatie is niet te moeilijk. Vooral als je leert hoe je VBA functies. In totaal zijn deze programmeertaal speciaal gemaakt voor het schrijven van applicaties in "Excel" en het Woord, ongeveer 160 functies. Ze kunnen worden onderverdeeld in verschillende grote groepen. Ze zijn:

  • Wiskundige functies. Het toepassen van hen om het argument van de cosinus waarde wordt verkregen, de natuurlijke logaritme, en dus de hele deel.
  • Financiële functies. Door hun beschikbaarheid en het gebruik programmeren in Excel, kunt u doeltreffende instrumenten voor de financiële administratie en nederzettingen te krijgen.
  • Array bewerkingsfuncties. Deze omvatten Array, IsArray; LBound; UBound.
  • VBA Excel-functie voor de lijn. Dit is een vrij grote groep. Het omvat bijvoorbeeld Space functie om een string met een aantal gaten dat gelijk is aan de integerargument of Asc transfers symbolen ANSI code. Allemaal zijn ze veel gebruikt en kunt u werken met strijkers in de "Excel" om applicaties veel gemakkelijker om te werken met deze tabellen te creëren.
  • data type conversie functies. Bijvoorbeeld CVaR retourneert Expression argument converteren naar Variant gegevenstype.
  • Datumfuncties. Zij hebben de standaard functies van de "Excel" sterk uit te breiden. Dus, WeekdayName functie geeft de naam (geheel of gedeeltelijk) van de dag van de week op nummer. Nog nuttiger is de Timer. Hij geeft het aantal seconden dat sinds middernacht zijn verstreken om een bepaald moment van de dag.
  • Functie om een numeriek argument om te zetten in het verschillend aantal systemen. Bijvoorbeeld oktober voert naar octaal van het getal.
  • opmaak functies. De belangrijkste daarvan is het formaat. Het retourneert een Variant met een uitdrukking geformatteerd overeenkomstig instructies van de beschrijving van het formaat.
  • enzovoort.

De studie van de eigenschappen van deze functies en de toepassing ervan zal aanzienlijk uitbreiding van het toepassingsgebied van de "Excel".

Voorbeeld 5

Laten we proberen om meer complexe problemen op te lossen. Bijvoorbeeld:

Dan papieren document van de werkelijke hoogte van de kosten van de onderneming verslag. vereist:

  • ontwikkeling van het patroondeel van spreadsheet "Excel";
  • maak een VBA-programma dat zal vragen om ruwe data te vullen, de nodige berekeningen uit te voeren en in de sjabloon van de corresponderende cel in te vullen.

Denk aan een van de volgende oplossingen.

Het creëren van een sjabloon

Alle acties worden uitgevoerd op een standaard vel in Excel. Gratis cellen gereserveerd voor het invoeren van gegevens over de maand, jaar, titel consumentgerichte bedrijven, het bedrag van de kosten, het niveau van hun omzet. Aangezien het aantal bedrijven (bedrijven), ten aanzien waarvan het rapport niet is opgenomen, de cellen te maken op basis van de waarden en professionele naam is niet van tevoren gereserveerd. Werkblad toegewezen aan een nieuwe naam. Bijvoorbeeld, "Օ Report".

variabelen

Te schrijven het programma automatisch in de sjabloon invullen, selecteert u de notatie. Zij zullen worden gebruikt voor de variabelen:

  • NN-nummer van de huidige rij van de tabel;
  • TP en TF - geplande en werkelijke omzet;
  • SF en SP - actuele en geplande totale kosten;
  • IP en IF - geplande en werkelijke kosten niveau.

We geven door dezelfde letters, maar met een "voorvoegsel» Itog accumulatie totaal voor die kolom. Bijvoorbeeld, ItogTP - Met betrekking tot de kolom, als "de geplande omzet."

Oplossing van het probleem met behulp van VBA programmering

Met behulp van deze notatie, krijgen we de formule voor de variantie. Als u de berekening uit te voeren in% hebben we (F - P) / P * 100, en in het bedrag van - (F - P).

De resultaten van deze berekeningen kan het best alleen maar om "Excel" spreadsheet te maken in de juiste cellen.

De uitkomst en prognose in feite verkregen door formules ItogP = ItogP + P en ItogF = ItogF + B.

Afwijkingen gebruiken = (ItogF - ItogP) / ItogP * 100 wanneer de berekening wordt uitgevoerd in procenten wordt uitgevoerd, en als de totale waarde - (ItogF - ItogP).

De resultaten wederom opgenomen in de juiste cellen, dus er is geen noodzaak om ze toe te wijzen aan variabelen.

Voordat u begint met een programma maakt u de werkmap wilt opslaan, bijvoorbeeld, onder de naam "Otchet1.xls".

Druk op "Maak een rapportage tafel," moet u op slechts 1 keer na het invoeren van de header informatie. U moet weten en andere regels. Met name de "Add a line" dient iedere keer worden ingedrukt na het sluiten van de tabel van waarden voor elke activiteit. Na het invoeren van alle nodige druk op de knop "Finish", en dan overschakelen naar "Excel" in het venster van gegevens.

Nu je weet hoe het probleem op te lossen voor Excel met macro's. De mogelijkheid om VBA Excel (zie voorbeeld programma's. Hierboven) en u kan nodig zijn om te werken in de omgeving van de meest populaire op het moment, de teksteditor "Woord". In het bijzonder door het opnemen, zoals in het begin van dit artikel, of door het schrijven van code om de menuknoppen, waardoor veel van de operaties op de tekst kan worden gedaan door het indrukken van de toetsen op plicht of via het pictogram "View" en het tabblad "Macro's" te creëren.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 birmiss.com. Theme powered by WordPress.