Hoe routinetaken in Excel te automatiseren met behulp van macro's. Een macro schrijven in Excel - VBA-macro's maken, opnemen en bewerken in Excel

Macro om op elk blad in de actieve werkmap van cel A1 te markeren. Het beweegt ook het scherm.

Sub A1SelectionEachSheet() Dim i As Integer Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("a1").Select Next Sheets(1) .Selecteer Application.ScreenUpdating = True End Sub

Macro om het huidige blad een bepaald aantal keren te kopiëren. Handig voor het testen van een soort macro's - ze hebben wijzigingen aangebracht, ze gecontroleerd op een kopie van de gegevens. Geen kopieën meer - voer de macro opnieuw uit

Sub SimpleCopy() Dim i As Integer, j As Integer i = Application.InputBox("Voer het aantal exemplaren van het huidige blad in") Application.ScreenUpdating = False For j = 1 To i ActiveSheet.Copy after:=Sheets(Sheets .Count) ActiveSheet .Name = "Kopieer" & j Volgende j Application.ScreenUpdating = True End Sub

Maak werkbladen met titels uit een opgegeven bereik op een werkblad

Sub CreateFromList() Dim cell As Range For Each cell In Selection Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = cell.Value Volgende cel End Sub

Markros verzendt e-mails met vertraging. Gewijzigde macro uit John Walkenbach's boek Professional VBA Programming

Sub SendMail() Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon On Error GoTo cleanup Set OutMail = OutApp.CreateItem(0) On Error Hervat volgende met OutMail .To = " [e-mail beveiligd]" .Subject = "Verkooprapport" .Attachments.Add "C:\Test.txt" .Body = "Message Body" .DeferredDeliveryTime = Replace(Date, ".", "/") & " 11:00:00 " .send ".Display om de e-mail te vormen en te openen End With On Error GoTo 0 Set OutMail = Niets opruimen: Set OutApp = Niets End Sub

Iets gewijzigde inhoudsopgave macro van Nikolai Pavlov.
Als het boek al een blad met de inhoudsopgave heeft, stelt de macro voor om het te verwijderen. Als dat niet het geval is, maakt u een blad "Inhoudsopgave" en voegt u koppelingen met bladnamen in

Sub TableOfContent() Dim blad als werkblad Dim cel As Range Dim Answer As Integer Application.ScreenUpdating = False Met ActiveWorkbook Voor elk werkblad in ActiveWorkbook.Worksheets If Worksheet.Name = "Table of Contents" Then Answer = MsgBox ("Er is een werkblad in de werkmap met de naam Inhoudsopgave. Verwijder het?", vbYesNo) If Answer = vbNo Then Exit Sub If Answer = vbYes Then Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If End If Next End With Sheets (Array (1)).Selecteer Sheets.Add Sheets(1).Name = "Inhoudsopgave" met ActiveWorkbook voor elk blad in ActiveWorkbook.Worksheets Als sheet.Name<>"Inhoudsopgave" Stel vervolgens cel in = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:=""" & sheet .Name & """ & "!A1" cell.Formula = sheet.Name End If Next sheet End With Rows("1:1").Delete Application.ScreenUpdating = True End Sub

Bladen sorteren van VBA-wizards. De macro sorteert ook de verborgen bladen. Werkt niet als het boek structuurbescherming heeft

Sub SORT_ALL_SHEETS() Application.ScreenUpdating = False: Application.EnableEvents = False Dim iSht As Worksheet, oDict As Object, i%, j% Set oDict = CreateObject("Scripting.Dictionary") " onthoud de zichtbaarheidsstatus van elk blad en doe alles zichtbaar voor elke iSht in ActiveWorkbook.Sheets oDict.Item (iSht.Name) = iSht.Visible: iSht.Visible = True Volgende met ActiveWorkbook " sorteer zichtbare bladen For i = 1 To .Sheets.Count - 1 For j = i + 1 To .Sheets.Count If UCase(.Sheets(i).Name) > UCase(.Sheets(j).Name) Dan .Sheets(j).Move Before:=.Sheets(i) Next j Next i Eindig met " herstel de initiële zichtbaarheidsstatus van elk blad voor elke iSht in ActiveWorkbook.Sheets iSht.Visible = oDict.Item(iSht.Name) Volgende Application.EnableEvents = True: Application.ScreenUpdating = True End Sub

Importeer kolommen "Veld1" en "Veld2" van blad "Blad1" van Excel-bestand "C:\Manager.xls" via ADODB-verbinding en voeg inhoud in vanaf cel A1 van het huidige blad

Om repetitieve taken te automatiseren, kunt u een macro opnemen met behulp van de Macro Recorder in Microsoft Excel. Stel je voor dat je datums in willekeurige formaten hebt en dat je op iedereen hetzelfde formaat wilt toepassen. Dit kan met een macro. U kunt een macro opnemen in het gewenste formaat en de macro indien nodig afspelen.

Wanneer u een macro opneemt, worden alle noodzakelijke acties vastgelegd als Visual Basic for Applications (VBA)-code. Deze acties kunnen bestaan ​​uit het invoeren van tekst of getallen, het selecteren van cellen of opdrachten op het lint of menu, het opmaken van cellen, rijen of kolommen en zelfs het importeren van gegevens uit een externe bron zoals Microsoft Access. Visual Basic for Applications (VBA) is onderdeel van de programmeertaal Visual Basic. Het is beschikbaar in de meeste Office-toepassingen. Hoewel u met VBA processen binnen en tussen Office-toepassingen kunt automatiseren, hoeft u niet te weten hoe u moet programmeren of de VBA-taal te kennen, aangezien de macrorecorder voor alles zorgt.

Het is belangrijk om te weten dat wanneer u een macro opneemt, bijna alles wat u doet wordt opgenomen. Dus als je een fout maakt, zoals het indrukken van de verkeerde knop, zal de macrorecorder die actie loggen. In een dergelijk geval kunt u de hele reeks herschrijven of de VBA-code wijzigen. Voordat u het proces opneemt, moet u het daarom goed uitwerken. Hoe nauwkeuriger u de reeks schrijft, hoe effectiever de macro zal werken.

Ontwikkelaar, die standaard verborgen is, dus u moet deze eerst inschakelen. Zie Het tabblad Ontwikkelaar weergeven voor meer informatie.

Macro-opname

Op het tabblad Ontwikkelaar Klik Macro's om de macro's te bekijken die aan de werkmap zijn gekoppeld. U kunt ook op de toetsen drukken ALT+F8. Dit opent een dialoogvenster. macro.


Aandacht:

Meer informatie over macro-beveiligingsinstellingen en hun betekenis.

Macro's kunnen op verschillende manieren worden uitgevoerd, zoals een sneltoets, een grafisch object, de werkbalk Snelle toegang, een knop of zelfs wanneer een werkmap wordt geopend.

U kunt de Visual Basic Editor gebruiken om macro's te bewerken die aan een werkmap zijn gekoppeld.

    een macro toewijzen.

    In veld Macro toewijzen

Leer hoe u macro's in Office-bestanden in- en uitschakelt.

Druk op de toetsen ALT+F11.

Werken met geschreven code in de Visual Basic Editor (VBE)

Met de Visual Basic Editor (VBE) kunt u uw eigen variabelen, besturingsstructuren en andere elementen aan de opgenomen code toevoegen die de macrorecorder niet ondersteunt. Aangezien de macrorecorder bijna elke stap vastlegt die tijdens het opnemen plaatsvindt, moet u mogelijk ook onnodige code verwijderen. Het bekijken van opgenomen code is een geweldige manier om VBA-programmeren te leren of je vaardigheden aan te scherpen.

Een voorbeeld van het aanpassen van de opgenomen code is te vinden in het artikel Aan de slag met VBA in Excel.

Macro-opname

Voordat u macro's opneemt, is het handig om het volgende te weten:

    Een macro die is geschreven om op een Excel-bereik te werken, wordt alleen uitgevoerd op cellen in dat bereik. Als u daarom een ​​nieuwe regel aan het bereik toevoegt, is de macro er niet op van toepassing.

    Als u een lange reeks taken moet opnemen, raden we aan om in plaats daarvan meerdere kleinere macro's te gebruiken.

    Een macro kan ook niet-Excel-taken bevatten. Het macroproces kan andere Office-toepassingen en andere programma's omvatten die Visual Basic for Applications (VBA) ondersteunen. U kunt bijvoorbeeld een macro opnemen die eerst een spreadsheet bijwerkt in Excel en vervolgens Outlook opent om deze te e-mailen.

Macro's en VBA-tools staan ​​op het tabblad Ontwikkelaar, die standaard verborgen is, dus u moet deze eerst inschakelen.

    Selecteer excelleren > Opties> Tape en paneel.

Volg de onderstaande instructies om een ​​macro op te nemen.

Werken met macro's opgenomen in Excel

Op het tabblad Ontwikkelaar Klik Macro's om de macro's te bekijken die aan de werkmap zijn gekoppeld. Dit opent een dialoogvenster. macro.

Opmerking: Macro's kunnen niet ongedaan worden gemaakt. Voordat u een opgenomen macro voor de eerste keer uitvoert, moet u de werkmap opslaan of een kopie maken om ongewenste wijzigingen te voorkomen. Als u niet tevreden bent met de resultaten van het uitvoeren van een macro, kunt u de werkmap sluiten zonder deze op te slaan.

Hieronder vindt u meer informatie over het werken met macro's in Excel.

Leer hoe u macro's in- en uitschakelt in Excel voor Mac.

Om tijd te besparen bij het uitvoeren van vaak terugkerende taken, kunt u de bijbehorende volgorde van acties vastleggen in de vorm van een macro. Leer hoe u macro's maakt en uitvoert.

Als een werkmap een VBA-macro bevat die u ergens anders wilt gebruiken, kunt u de module naar een andere werkmap kopiëren met behulp van Microsoft Visual Basic Editor.

Een macro toewijzen aan een object, vorm of grafisch element

    Klik op het werkblad met de rechtermuisknop op het object, de afbeelding, de vorm of het element waaraan u een bestaande macro wilt toewijzen en klik vervolgens op een macro toewijzen.

    In veld Macro toewijzen selecteer de macro die u wilt toewijzen.

U kunt een macro toewijzen aan een pictogram en deze toevoegen aan de werkbalk Snelle toegang of het lint.

U kunt macro's toewijzen aan formulieren en ActiveX-besturingselementen op een werkblad.

De Visual Basic-editor openen

Op het tabblad Ontwikkelaar Klik Visuele Basis of selecteer Onderhoud > macro > Visual Basic-editor.

Leer hoe u hulp kunt vinden voor Visual Basic-elementen.

Extra informatie

U kunt altijd een vraag stellen aan de Excel Tech Community, om hulp vragen in de Answers-community of een nieuwe functie of verbetering op de website voorstellen

Goedenmiddag!

Ik wil dit artikel wijden aan zo'n groot deel van MS Excel als macro's, of liever, laten we opnieuw beginnen en kijken hoe je een macro in Excel kunt maken, waar het voor is en hoe je het in je werk kunt gebruiken.

Zoals u uit eigen ervaring weet, is er bij het werken met een macro veel "routine", dat wil zeggen dat dezelfde bewerkingen en acties worden uitgevoerd die nodig zijn om een ​​resultaat te verkrijgen, het kan het invullen van hetzelfde type tabellen zijn of formulieren, gegevensverwerking, vergelijkbaar met wekelijkse tweelingen, maandelijkse rapporten, enz. Maar het gebruik van macro's stelt u in staat om deze acties automatisch uit te voeren, waarbij u de mogelijkheden van Excel ten volle gebruikt, en deze routinematige en eentonige bewerkingen op de krachtige schouders van Excel afwerpen. De reden voor het gebruik van macro's kan ook zijn om de nodige functies toe te voegen die nog niet zijn geïmplementeerd in standaard Excel-functies (bijvoorbeeld uitvoer, gegevensverzameling op één blad, enz.).

Als je nog nooit van een macro hebt gehoord, zou de meest nauwkeurige definitie zijn: dit zijn acties die voor een bepaalde volgorde zijn geprogrammeerd en in de programmeeromgeving zijn geschreven in de taal Visual Basic for Applications (VBA). Het uitvoeren van een macro kan herhaaldelijk worden gedaan en dit zal Excel dwingen elke reeks acties uit te voeren die we nodig hebben, wat we gewoon niet leuk vinden of niet handmatig willen doen. Ondanks de grote verscheidenheid aan programmeertalen voor het hele Microsoft Office-complex, is VBA de standaard en werkt het in elke toepassing van de kantoorsuite.

Er zijn dus 2 manieren om een ​​macro in Excel te maken:

Macro maken in Excelmet macrorecorder

Laten we om te beginnen even verduidelijken wat een macrorecorder is en wat een macro ermee te maken heeft.

macrorecorder- dit is een klein programma dat is ingebed in Excel dat elke gebruikersactie in de VBA-programmeertaalcodes interpreteert en de opdrachten die tijdens het werk worden verkregen, in de programmamodule schrijft. Dat wil zeggen, als we, met de macrorecorder ingeschakeld, het dagelijkse rapport maken dat we nodig hebben, zal de macrorecorder stap voor stap alles in zijn opdrachten opnemen en als resultaat een macro maken die automatisch een dagelijks rapport maakt.

Deze methode is erg handig voor degenen die niet over de vaardigheden en kennis beschikken om in de VBA-taalomgeving te werken. Maar zo'n gemakkelijke uitvoering en opname van een macro heeft zijn nadelen, maar ook voordelen:

  • De macrorecorder kan alleen opnemen wat hij kan voelen, wat betekent dat hij alleen acties kan opnemen wanneer knoppen, pictogrammen, menuopdrachten en dergelijke worden gebruikt, opties die er niet voor beschikbaar zijn;
  • Mocht er tijdens de opnameperiode een fout zijn gemaakt, dan wordt deze ook geregistreerd. Maar u kunt de knop laatste actie ongedaan maken gebruiken om de laatste opdracht te wissen die u verkeerd in VBA hebt geschreven;
  • Opname in de macrorecorder wordt alleen uitgevoerd binnen de grenzen van het MS Excel-venster, en in het geval dat u het programma sluit of een ander programma inschakelt, wordt de opname gestopt en wordt deze niet meer uitgevoerd.

Om de macrorecorder in te schakelen voor opname, moet u de volgende acties uitvoeren:


De volgende stap in het werken met de macrorecorder is het instellen van de parameters voor verdere macro-opname, dit kan in het venster worden gedaan "Macro-opname", waar:

  • veld macronaam- u kunt een naam schrijven die u in elke taal begrijpt, maar deze moet beginnen met een letter en mag geen leesteken en spaties bevatten;
  • sneltoetsveld voor toetsenbord- zal in de toekomst door u worden gebruikt om uw macro snel te starten. In het geval dat u een nieuwe moet registreren, is deze optie beschikbaar in het menu "Service" - "Macro" - "Macro's" - "Uitvoeren" of op het tabblad "Ontwikkelaar" op een knop drukken "Macro's";
  • "Opslaan in..." veld- u kunt de plaats specificeren waar de macrotekst wordt opgeslagen (maar niet verzonden), en dit zijn 3 opties:
    • "Dit boek"— de macro wordt weggeschreven naar de module van de huidige werkmap en kan alleen worden uitgevoerd als deze Excel-werkmap geopend is;
    • "Een nieuw boek"- de macro wordt opgeslagen in de sjabloon op basis waarvan een lege nieuwe werkmap wordt aangemaakt in Excel, waardoor de macro beschikbaar komt in alle werkmappen die voortaan op deze computer worden aangemaakt;
    • "Persoonlijk macroboek" is een speciale Excel-macrowerkmap genaamd "Persoonlijk.xls" en wordt gebruikt als een speciale repository-bibliotheek van macro's. Bij het opstarten worden macro's uit het Personal.xls-boek in het geheugen geladen en kunnen op elk moment in elk boek worden uitgevoerd.
  • Beschrijving veld- hier kunt u beschrijven wat en hoe de macro zou moeten doen, waarom deze is gemaakt en welke functies deze heeft, dit is een puur informatief veld, dat geheugen wordt genoemd.

Nadat u uw macro hebt gestart en opgenomen, nadat u alle noodzakelijke acties hebt uitgevoerd, kunt u de opname stoppen met het commando "Stop met opnemen" en uw macro met macrorecorder wordt gemaakt.

Macro maken in Excelin de Visual Basic-editor.

In deze methode zullen we kijken hoe we een macro in Excel kunnen maken via de VBA-programma-editor, die, zoals ik hierboven al zei, in elke versie van Excel is ingebouwd.

Het starten van de VBA-programma-editor is anders, afhankelijk van de versie van uw Excel-programma:

  • in versies van Excel 2003 en later, we nodig hebben in het menu "Onderhoud", selecteer item "Macro" en druk op "Visuele basiseditor";
  • in versies van Excel 2007 en later, we moeten tab "Ontwikkelaar" druk op de knop "Visuele basiseditor". In het geval dat u dit tabblad niet kunt vinden, moet u het activeren door het menu-item te selecteren "Bestand" - "Opties" - "Lint aanpassen" en vink in het dialoogvenster het vakje aan om het tabblad te activeren "Ontwikkelaar".

In het venster dat opent, zie je de interface van de VBA-editor, alles is hier in het Engels geschreven en er zijn geen lokalisaties, je hoeft niet te zoeken, maar accepteer en werk, vooral omdat het in het begin alleen onbegrijpelijk is, en dan zal alles vertrouwd zijn.

Dus, hoe te werken in de VBA-editor, waar wat wordt opgeslagen en hoe een macro in Excel te maken. Vragen van deze aard rijzen zodra je de editor ziet, en nu zullen we ze allemaal overwegen.

Al onze macro's worden opgeslagen in zogenaamde softwaremodules. In elk van de boeken van elke versie van Excel kunnen we alle programmamodules in elke hoeveelheid maken en daarin alle macro's plaatsen die we hebben gemaakt. Eén module kan een willekeurig aantal macro's bevatten dat u nodig hebt of maakt. Modules beschikbaar in venster Projectverkenner en bevinden zich in de linkerbovenhoek van de macro-editor (deze kan ook worden opgeroepen met de toetsencombinatie CTRL+R).

Programmamodules in de VBA-editor bestaan ​​in verschillende vormen en worden voor verschillende opties en situaties gebruikt:


Eigenlijk ziet de macro zelf er, als je in een standaardmodule werkt, als volgt uit:

Beschouw het voorbeeld van een werkende macro:

  • Alle macro's beginnen noodzakelijkerwijs met de operator Sub, gevolgd door de naam van uw macro en een lijst met argumenten tussen haakjes. In gevallen waar er geen argumenten zijn, moeten haakjes leeg worden gelaten;
  • Zonder falen eindigen alle macro's met de operator einde sub;
  • Gegevens tussen operators Sub en einde sub, is de hoofdtekst van de macro die wordt uitgevoerd wanneer de macro wordt uitgevoerd. In het voorbeeld controleert de macro en vindt deze bij invoer in de databaselijst en , waarbij de waarde wordt uitgevoerd die is gespecificeerd door de criteria.

Zoals je kunt zien, is de tweede manier moeilijker te gebruiken en te begrijpen als je geen programmeerervaring in het algemeen of VBA in het bijzonder hebt. Het is erg moeilijk om te begrijpen en te begrijpen welke commando's en hoe ze worden ingevoerd, welke argumenten het gebruikt om de macro zijn werk automatisch te laten doen. Maar de weg zal worden beheerst door de wandelende, zoals de oude wijzen zeiden, en daarom moet je niet opgeven, maar de geboden van grootvader Lenin volgen ...

Een knop maken om macro's in de werkbalk uit te voeren

Zoals ik al eerder zei, kun je een macroprocedure aanroepen met een sneltoetscombinatie, maar het is erg vervelend om te onthouden welke combinatie aan wie is toegewezen, dus het beste is om een ​​knop te maken om de macro uit te voeren. Er kunnen verschillende soorten knoppen worden gemaakt, namelijk:


Deze methode is beschikbaar voor elke versie van MS Excel en houdt in dat we de knop rechtstreeks naar ons werkblad zullen brengen als een grafisch object. Hiervoor heb je nodig:

  • In MS Excel 2003 en hoger ga naar menu "Weergave", Kiezen "Werkbalk" en druk op de knop "Formulieren".
  • In MS Excel 2007 en nieuwer je nodig hebt op het tabblad "Ontwikkelaar" vervolgkeuzemenu openen "Invoegen" en selecteer object "Knop".

Na dit alles moet je een knop op je blad tekenen terwijl je de linkermuisknop ingedrukt houdt. Na het einde van het tekenproces wordt automatisch een venster geopend waarin u de macro moet selecteren die moet worden uitgevoerd wanneer u op uw knop klikt.

Aangepaste functies maken in VBA

Het aanmaken van zogenaamde door de gebruiker gedefinieerde functies verschilt in principe niet veel van het aanmaken van een normale macro in een standaard programmamodule. Het verschil tussen deze concepten is dat de macro de bijbehorende acties uitvoert met de objecten van het boek of blad (dit zijn formules, cellen, enz.), Maar de door de gebruiker gedefinieerde functie werkt alleen met de waarden \u200bdat het van ons ontvangt en zijn dezelfde argumenten initiële gegevens voor berekeningen.

Om bijvoorbeeld een aangepaste functie voor belasting over de toegevoegde waarde te maken, ook wel btw genoemd, moeten we onze VBA-editor openen en een nieuwe module toevoegen, selecteren in het menu "Invoegen" paragraaf module en voer daar de tekst voor onze functie in: Opgemerkt moet worden dat het belangrijkste verschil tussen een functie en een macro de header is functie vervangen Sub en er is een gevulde lijst met argumenten, in ons voorbeeld is dat Summa. Nadat onze code is ingevoerd, wordt deze beschikbaar in het standaardvenster van de Functiewizard, die zich in het menu bevindt "Formules", alinea "Functie invoegen".
En kies een categorie "Gebruiker gedefinieerde" waarin onze geschreven functie wordt weergegeven NDS.
Nadat je onze functie hebt geselecteerd, kun je de cursor op de cel plaatsen met het argument, dat het bedrag zal bevatten waarvoor we btw berekenen, alles gebeurt, zoals bij een gewone functie.
En dat is alles wat ik heb! Ik hoop echt dat artikel over het maken van een macro in Excel was duidelijk en behulpzaam voor je. Ik zou erg dankbaar zijn voor de reacties die zijn achtergelaten, omdat dit een indicator is van leesbaarheid en me inspireert om nieuwe artikelen te schrijven! Deel met je vrienden lees en like!

Als je niet sterk bent in programmeren, maar tegelijkertijd iets moet implementeren,een taak die verder gaat dan de standaard functies en commando's van MS Excel, je kunt een oplossing zoeken op internet. De oplossing is hoogstwaarschijnlijk in de vorm van VBA-code die u moet kopiëren en in uw werkmap moet plakken en vervolgens op de een of andere manier deze code voor u moet laten werken. In dit artikel zal ik u vertellen hoe u dit moet doen.

Overweeg twee voorbeelden:

1. Een team zoeken en gebruiken

We hebben bijvoorbeeld een opdracht nodig waarmee het getal "1" in de geselecteerde cellen wordt ingevoegd. We starten de zoekmachine, typen de zoekterm in, krijgen de resultaten, beginnen met browsen, vinden de code in zoiets als dit:

Sub Insert1() Dim q As Object On Error Hervat volgende set q = Cellen voor elke q In selectie q = 1 Next q End Sub

Selecteer deze code (zonder regelnummering, beginnend met het woord Sub) en druk op ctrl+c. Ga naar uw MS Excel-werkmap en druk op de sneltoets Alt+F11, je hebt een VBA-editorvenster geopend:

Selecteer (klik) in het linkervenster "Project - VBA Project" onze werkmap waarin u de macro wilt invoegen, bijvoorbeeld "VBAProject (Book2)":

Selecteer in het menu-item "Invoegen" "Module":

In het linkervenster "Project - VBA Project" zou je een nieuwe map "Modules" en een nieuw object "Module1" moeten hebben:

Verplaats de cursor naar het rechter invoerveld "Groot" en druk op ctrl+v, wordt de gekopieerde macro in de module geplakt:

Macro's in MS Excel kunnen op de volgende plaatsen worden ingevoegd:

  • In de module voegen ze meestal de code van macro's in, die worden gestart door de gebruiker op een knop te drukken (zoals bijvoorbeeld in ons geval) of de code van functies (formules);
  • In het werkblad voegen ze meestal de code van macro's in, waarvan de lancering automatisch zou moeten plaatsvinden, afhankelijk van de acties van de gebruiker of wijzigingen in de gegevens in het blad (de gegevens zijn gewijzigd, de macro is uitgevoerd);
  • In de werkmap voegen ze meestal de code van macro's in, waarvan de lancering automatisch zou moeten plaatsvinden, afhankelijk van de acties die op het boek (bestand) zijn uitgevoerd. Bijvoorbeeld een macro die wordt uitgevoerd wanneer een werkmap wordt geopend of gesloten, of wanneer deze wordt opgeslagen;
  • Macro's kunnen ook onderdeel zijn van een userform.

Meestal geeft de persoon die de code publiceert aan waar deze moet worden ingevoegd, in een module, in een werkblad of in een werkmap.

Om code in een werkblad in te voegen, selecteert u het juiste blad in het linkervenster van de VBA-editor, dubbelklikt u erop met de linkermuisknop, verplaatst u de cursor naar het rechter invoerveld en plakt u de code.

Om code in een Boek in te voegen, selecteer "ThisBook":


Laten we oefenen. Plak de onderstaande code in "Blad1".

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox("Cell" & Target.Address & " = 2") End If a: Sub afsluiten End Sub

Deze macro geeft een informatief bericht weer als u "2" invoert in een cel van het blad.

Keer terug naar de werkmap, ga naar "Blad1" en voer het nummer "2" in cel "A1" in en druk op Binnenkomen, waarna u het volgende bericht zou moeten zien:

Als je dit bericht ziet, heb je alles goed gedaan. Zo niet, dan heb je de code ergens op de verkeerde plaats geplakt, probeer het opnieuw.

Wanneer u code plakt, moet u voorzichtig zijn waar u deze plakt. Dit kan worden gedaan door te kijken naar wat er in de titel van het VBA-editorvenster staat:

2. Een functie zoeken en gebruiken

Op internet vinden we de VBA-code van een functie die bijvoorbeeld het aantal woorden in een cel telt:

Publieke functie CountWordsInCell(Cell As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Cell.Value), " ") CountWordsInCell = UBound(q) + 1 End Function

Kopieer de code, druk op de sneltoets Alt+F11, wordt de VBA-editor geopend:


We voegen een nieuwe module toe aan ons boek en plakken de gekopieerde code in deze module:


Sluit de VBA-editor en ga naar uw werkmap. Maak een nieuw blad (optioneel) in een cel A1 voer de tekst in "mam waste het frame". We staan ​​in de cel waarin we het resultaat willen krijgen (aantal woorden), klik in het menu "Formules" op de knop "Functie invoegen":

Selecteer in het geopende venster "Functie invoegen" in het veld "Categorie" de optie "Door gebruiker gedefinieerd"

Selecteer in de lijst met beschikbare functies "Aantal woorden in de cel", klik op "OK":

Voer de vereiste argumenten in en klik op "OK":

We krijgen het resultaat:

Belangrijk:

Als u de werkmap waarin u de macro hebt ingevoegd niet opslaat als een "Macro-enabled werkmap", worden alle modules met macro's verwijderd en moet u al dit werk later opnieuw doen.

Als u bij het invoegen van een macro in een module rode tekens ziet in plaats van tekst " ???????? "

Dit betekent dat u een coderingsprobleem heeft, wat wordt waargenomen bij het kopiëren van Cyrillische tekst uit sommige browsers. Om dit probleem op te lossen, kunt u proberen de gekopieerde code als "Unicode-tekst" in een leeg MS Excel-blad te plakken. Ga hiervoor naar de MS Excel-werkmap, selecteer of maak een leeg blad, ga in cel "A1" staan ​​en druk op de sneltoetsen Ctrl+Alt+V. Het menu "Plakken speciaal" zou moeten verschijnen, selecteer "Unicode-tekst" en klik op "OK".

De code moet zonder vraagtekens in het werkblad worden geplakt:

Kopieer daarna nogmaals de code die in het blad is geplakt en plak deze in de module.

Als u het venster "Project - VBA-project" niet ziet in de VBA-editor, gaat u naar het menutabblad "Beeld" en selecteert u "Projectverkenner" in de lijst of drukt u op de sneltoets ctrl+r:

Objecten zoals macro's in Excel helpen om het werkproces in Excel competent te organiseren.

Laten we alle functies van het werken met deze objecten in het MS Office-softwarepakket nader bekijken.

Door het gebruik van macro's kan elke cel in uw document worden geautomatiseerd. Dit komt doordat de gebruiker alle acties registreert op het moment dat ze worden gemaakt.

Wat zijn macro's en waarom zijn ze nodig?

U kunt met macro's werken in elk van de MS Office-programma's. Allereerst zijn ze nodig om het werk van de gebruiker in het programma competent te organiseren.

Ze zijn nodig om niet tientallen keren hetzelfde soort taken en acties uit te voeren.

Het maken en gebruiken ervan zal helpen om aanzienlijk tijd te besparen en het werk in het programma zoveel mogelijk te automatiseren.

Belangrijk! Dankzij de gemaakte macro kun je het werk gewoon direct doen, terwijl het veel tijd zou kosten om het handmatig te doen.

Het lichaam bestaat in feite uit instructies die het programma vertellen wat het moet doen als gebruikers het een of het ander selecteren.

Het concept van een macro kom je ook tegen in het programma Word, maar in Excel heeft het verschillende voordelen:

  • Ten eerste combineert het alle instructies in één compleet uitvoeringsscript, waarmee u de belasting van het programma kunt optimaliseren en sneller kunt gaan werken;
  • U kunt het oproepen met de toets op de werkbalk of met een speciale toetsencombinatie. Hierdoor kan de gebruiker tijdens het werk niet loskomen van het toetsenbord;

We merken nog twee artikelen op die kunnen:je zal nodig hebben:

Uw eigen macro's maken in Excel 2010, 2007, 2013

Laten we voorbeelden van creatie in Excel 2007, 2013 in meer detail bekijken:

  • Open het document waarmee u werkt en waarvoor u een macro wilt maken. Overigens moet elke cel waarop een actie wordt uitgevoerd worden uitgewerkt;
  • Geef het ontwikkelaarstabblad in het lint weer. Open hiervoor het menu-item "Bestand" en open de opties, zoals weergegeven in de afbeelding;

  • Selecteer vervolgens de lintaanpassing en voeg het ontwikkelaarsvenster toe aan de lijst met hoofdvensters, zoals weergegeven in de onderstaande afbeelding;

  • Nu kunt u direct naar het maken van de gebruikersmacro zelf gaan.
    Nadat deze is gemaakt, wordt elke cel geautomatiseerd - dit betekent dat elke cel in het gebruikersdocument hetzelfde type actie zal uitvoeren dat de gebruiker opgeeft;
  • Zoek in het ontwikkelaarstabblad een speciale sleutel om te maken. De locatie wordt weergegeven in de onderstaande afbeelding;

  • Klik op de sleutel. Er verschijnt een aanmaakvenster waarin u een naam moet opgeven, een sneltoets waarmee deze wordt ingeschakeld. U kunt ook een korte beschrijving toevoegen van hoe de macro werkt.
    Dit moet worden gedaan als je er te veel hebt, om niet in de war te raken;

  • Klik vervolgens op OK. Het venster wordt gesloten en het opnameproces begint. Om de opname te stoppen, drukt u op de overeenkomstige toets op het bedieningspaneel;

  • Begin nu met het uitvoeren van de acties die in de macro worden vastgelegd. Elke cel kan worden gevuld met bepaalde gegevens.
    U kunt ook met slechts één cel werken, na het opnemen en inschakelen van de macro wordt dezelfde cel opgenomen volgens het gespecificeerde algoritme;
  • Vergeet niet op de stopknop voor het opnemen van gegevens te drukken. Na het voltooien van alle bovenstaande stappen, wordt het opgenomen en opgeslagen in het programma.

Macro's inschakelen en ermee werken in Excel

Volg hiervoor de onderstaande instructies:

  • Zoek op het tabblad Ontwikkelaar naar een knop met de naam "Macro's". Klik erop;

  • Selecteer de macro die je nodig hebt uit de lijst en klik op de knop "Uitvoeren";

  • U kunt de benodigde macro ook uitvoeren met behulp van de sneltoets die door de gebruiker is opgegeven in de beginfase van het maken ervan;
  • Nadat u op de knop Uitvoeren hebt geklikt, worden alle acties die tijdens de opname zijn uitgevoerd opnieuw uitgevoerd.

Een macro kan het beste worden gebruikt wanneer een bepaalde cel meerdere keren moet worden gekopieerd.