Van macrorecorder door naar VBA



Vergelijkbare documenten
Hoofdstuk 19: Macro s

VBA voor doe-het-zelvers

Inhoud. VBA Excel 2010

Automatisch handelingen uitvoeren

Taken automatiseren met Visual Basicmacro's

Hoofdstuk 23: Eenvoudig taken automatiseren met macro s

EXCEL MACRO ZET TEKST IN GESELECTEERDE CELLEN OM NAAR KLEINE LETTERS

Microsoft Excel. It s all about Excel - VBA

In het venster Blad Beveiligen wordt aangegeven wat gebruikers nog wel mogen. Daarnaast kan een wachtwoord worden ingevoerd.

Programmeren in Excel 2016 met VBA

INHOUDSOPGAVE. Inhoudsopgave

Programmeren in Excel met VBA

II. ZELFGEDEFINIEERDE FUNCTIES

EXCEL MACRO ZET TEKST IN GESELECTEERDE CELLEN OM: NAAR KLEINE LETTERS NAAR KLEINE LETTERS MET BEGINHOOFDLETTER NAAR HOOFDLETTERS

Via de het tabblad Bestand kun je bijvoorbeeld een nieuwe werkmap maken, werkmappen openen, opslaan en afdrukken.

Macro s maken Word nog sneller

9.18 Macro s: oefeningen

INHOUD. Ten geleide Excel Basis 15

9.19 Macro s: oefeningen

Word 2016 VBA Cursus Leer programmeren in Word

Programmeren in Word 2013 met VBA

Programmeren in Excel VBA. Karel Nijs 2010/09

Cursus Programmeren in Excel 2013 met VBA

INFORMATIE HALEN UIT EXCEL REKENBLADEN

VBA voor Doe het Zelvers deel 16

25 Excel tips. 25 Handige Excel tips die tijd besparen en fouten voorkomen. Ir. Fred Hirdes. Excel-leren.nl.

Excel 2010, H1 HOOFDSTUK 1

Hoofdstuk 1: Het Excel Dashboard* 2010

Vergelijkingseditor 2007

Hoofdstuk 5: Gegevens koppelen

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Macro's in OpenOffice.org

Macro s maken in Word

INLEIDING... 1 A FSPRAKEN... 2 INHOUDSOPGAVE...

Hoofdstuk 7: Als Excel vastloopt

Voorbeelden VBA Excel

Gebruikershandleiding Green Leaf Excel (2007) Tool Versie 1.2 (21 december 2010)

7.1 Inleiding. 7.2 Namen maken. Het maken van namen met werkblad scope

6. Reeksen

Technische Fiche om een commando met een passend icoontje aan te maken in de Ribbon Interface.

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Bestanden ordenen in Windows 10

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Programmeren in Access met VBA

Gebruikershandleiding Green Leaf Excel Tool Versie 1.1 (13 februari 2007)

Programmeren in Access 2016 met VBA

Tips & Trucs ARCHICAD 117: Programma van Eisen add-on voor KeyMembers

1 De werkmap beschermen

Excel 2013 Snelstartgids

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

1. Open de Bibliotheek verkenner. Dit kunt u in de Lint modus doen via View, de groep Toon, Bibliotheek Verkenner.

Een eerste applicatie

HOOFDSTUK 1. beginnen met excel

VBA voor Doe Het Zelvers deel 2

De celwijzer is een rechthoekig kader dat om de actieve cel zit. celwijzer

Handleiding voor Excel to Image

Twee types van invoegtoepassingen

Snel aan de slag met BasisOnline en InstapInternet

Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.

Sjablonen aanmaken, formulieren aanmaken, macro s maken, menubalk aanpassen.

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Europees Computer Rijbewijs. module 4. Excel Instruct, Postbus 38, 2410 AA Bodegraven - 1 e druk: september 2004 ISBN:

I N H O U D S O P G A V E

Een macro met een knop opstarten.

MA!N Rapportages en Analyses

Draaitabellen (niet alleen) voor dummies

Trainingsmateriaal Osiris 6. Tentamenbureau

Macro s. 4.2 Een macro maken

Onze Microsoft gecertificeerde unieke Excel e-learning cursussen zijn incl.:

Sneltoetsen Excel 2010

Voordat u gebruik kunt maken van ZorgMail in KraamZorgCompleet, zijn een aantal instellingen nodig:

EXCEL Inleiding tot Macro s Mod VII. CEVORA vzw - opleidingscentrum van het ANPCB (PC218)

Wiskunde en ICT 1. Met het lettertype wiskunde.ttf kan je onderstaande wiskundige symbolen invoegen.

WERKEN MET GOOGLE ADMINISTRATIEF WERK MAART 2017

Handleiding Reinder.NET.Tasks.SQL versie 2

Als we Outlook opstarten zien we het hiernaast afgebeelde scherm, wat voor de meeste mensen toch wel enige uitleg behoeft, van boven naar onder:

Inhoud Basiscursus. Excel 2010

De knoppen op het lint verkennen Elk tabblad op het lint bevat groepen en elke groep bevat een reeks gerelateerde opdrachten.

Informatie Voor algemene vragen/opmerkingen omtrent de inhoud van deze site kunt u bellen of en met: Cargo Data Systems BV

Excel Elektronisch rekenblad Dhr. Goeminne

Excellerend Kwartaaltip

Hoofdstuk 7 Configuratie Bestanden

De knoppen op het lint verkennen Elk tabblad op het lint bevat groepen en elke groep bevat een reeks gerelateerde opdrachten.

6.2 VBA Syntax. Inleiding Visual Basic

Quick Guide VivianCMS

LAVS uploaden adressenlijst

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Sneltoetsen bij Microsoft

Een functie is een kant en klare formule. Via de knop Som in de groep Bewerken van het tabblad Start kun je een aantal veelgebruikte functies kiezen:


Afspraken. Dit moet je letterlijk intypen.

1. Document Management

Een toekomst voor ieder kind.

Gebruikershandleiding Green Leaf Excel Tool Versie 1.2 (1december 2009)

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Programmeren in Excel VBA. Karel Nijs 2010/09

Inhoud. Informatica. Hoofdstuk 5 Scripting. Context. Editor voor Programmeercode. Scripting 1

Transcriptie:

Van macrorecorder door naar VBA Geo van Dijk Excel Experience Day 2014

Opbouw van de sessie Waarom macro s/ VBA? VBA procedures opnemen met de macrorecorder. De VBA Editor (VBE). Macro s opnemen die van toepassing zijn op in grootte variërende bereiken. Code begrijpen: Het RANGE object. Beperkingen van de macrorecorder. Tips voor tijdens het opnemen. Hoe verder met VBA?

Macro s of VBA? Macro Een script dat (Excel) handelingen (taken) uitvoert. Kan worden aangemaakt worden zonder nadere VBA kennis met de macrorecorder van Excel. Elke macro wordt opgeslagen als procedure in een VBA module. VBA (Visual Basic for Applications) De programmeertaal (afgeleid van Visual Basic). De Editor (VBE) het programma waarmee VBA procedures kunnen worden bewerkt. Het geheel van projecten, modules, procedures, functies etc. aangemaakt met de Editor gebruik makend van de programmeertaal.

Waarom je eigen macro s/vba? Automatiseren van telkens terugkerende handelingen en taken: Hogere efficiëntie. Minder fouten. Complexe taken kunnen door iedereen worden uitgevoerd. Uitbreiden en toespitsen van functionaliteit.

In Excel: de macrorecorder Hulpmiddel waarmee (eenvoudige) macro s kunnen worden aangemaakt. Handelingen die worden uitgevoerd in Excel worden tijdens een opname vertaald naar opdrachtregels in een VBA procedure. Voordeel: procedures kunnen zonder VBA kennis worden aangemaakt. Nadeel: procedures zijn statisch, vaak niet optimaal en kunnen zonder VBA kennis moeilijk worden aangepast.

Eerst tabblad Ontwikkelaars activeren!

Een nieuwe macro opnemen Optie Macro opnemen op tabblad Ontwikkelaars 2 1

Een macro opnemen Macronaam (verplicht) Geen spaties toegestaan! Sneltoets (niet verplicht) Ctrl + x toetsencombinatie waarmee de macro gestart kan worden. Opslaglocatie (verplichte keuze) Persoonlijke macrowerkmap. Deze werkmap. Eigen map. Beschrijving (niet verplicht) Documentatie.

Macro s opslaan Bestanden met macroondersteuning Alle VBA code wordt opgeslagen een Excel file van het type:.xlsm (standaard macro enabled bestandsformaat).xlsb (binair formaat)..xltm (template formaat)..xlam (invoegtoepassing). Bedenk dat bij het bepalen van de opslaglocatie dat alleen macro s/vba procedures in geopende bestanden beschikbaar zijn om uit te voeren.

Macrorecorder relatief of absoluut opnemen Met relatieve verwijzingen opnemen. Vastgelegd wordt het aantal rijen en kolommen waarover de celwijzer wordt verplaatst. Met absolute verwijzingen opnemen. De kolomletter en rijnummer (Bijvoorbeeld C23 of AH1654 ) worden hard vastgelegd van de cellen of celbereiken die tijdens de opname worden benaderd en bewerkt. Tijdens een opname kan worden geswitcht tussen relatief en absoluut opnemen. Achteraf kan code niet automatisch worden omgezet van relatief naar absoluut v.v.

Macrorecorder relatief of absoluut opnemen Relatief of absoluut opnemen Keuze Relatieve verwijzingen gebruiken op linttab

Macrorecorder opname beëindigen Keuze Opname stoppen op linttab of knop in statusbalk

De Editor starten om de opgenomen code te bekijken (Alt + F11) Projectvenster In deze module bevindt zich de opgenomen procedure Codevenster

Het Project venster Projecten en Modules. Voor elk geopend Excel bestand een project. Een project bevat modules. Een module bevat VBA procedures (macro s). Open een module door dubbelklik op modulenaam.

Voorbeeld VBA procedure (opgenomen met macrorecorder en absolute verwijzingen) Sub NAW_Gegevens_Invoegen() ' ' NAW_Gegevens_Invoegen Macro ' De macro is opgenomen als voorbeeld tijdens een Excel VBA cursus ' ' Sneltoets: CTRL+SHIFT+N ' Range("A6").Select ActiveCell.FormulaR1C1 = Vakmedianet" Range("A7").Select ActiveCell.FormulaR1C1 = Binnensingel 3" Range("A8").Select ActiveCell.FormulaR1C1 = 7411 PL Deventer" Range("A6:A8").Select Selection.Font.Bold = True Selection.Font.Italic = True Range("A1").Select End Sub Alle programmaregels vanaf Sub t/m End Sub horen bij de procedure NAW_Gegevens_Invoegen. Haakjes () na procedurenaam verplicht. In groen na teken: Commentaar. Blauwe tekst is een VBA sleutelwoord. De zwarte regels in het voorbeeld zijn opgenomen handelingen met een geselecteerd cel(bereik)..formular1c1 verwijst naar de waarde in een cel.

Voorbeeld VBA procedure (opgenomen met macrorecorder en relatieve verwijzingen) Sub AdresRelatief() ' ' AdresRelatief Macro ' Deze procedure is aangemaakt met de macrorecorder met gebruik van relatieve verwijzingen. End Sub ActiveCell.FormulaR1C1 = "Vakmedianet" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = Binnensingel 3" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = " 7411 PL Deventer" ActiveCell.Offset(-2, 0).Range("A1:A3").Select Selection.Font.Bold = True ActiveCell.Select De opdracht.offset(x,y) verplaatst de celwijzer over x rijen en y kolommen.

Het RANGE object Meest gebruikte object in VBA procedures die zijn gemaakt met de macrorecorder. Doet zich dan vaak voor als gevolg van methode Select van RANGE object als: Bij meervoudige selecties: SELECTION Bij enkelvoudige selecties: ACTIVECELL Voorbeelden verwijzingen naar RANGE object: Range ( A1 ).Select ActiveCell.FormulaR1C1 = Binnensingel 3" Selection.Copy

Objecten bekijken met F2 Vanuit Editor functietoets F2 voor opstarten Object Browser. Kies bibliotheek Excel voor objecten van Excel. Selecteer object in kolom Klassen en zie properties en methods van het geselecteerde object bij Leden van. F1 (Help) geeft extra info over property of method.

Eigenschappen van door de recorder aangemaakte code Code is specifiek en dikwijls afhankelijk van lokale instellingen en opties. Bestaande macro s kunnen niet worden aangepast met nieuwe opgenomen code. Dit moet achteraf handmatig gebeuren. Code is dikwijls onnodig uitgebreid en het verdient aanbeveling dat achteraf op te schonen. Code is inefficiënt vergeleken met zelf geprogrammeerde code. (o.a. door onnodige Selects ).

Tips voor het opnemen met de macrorecorder (1) Maak vooraf een (uitgeschreven) scenario. Denk goed na over wanneer tijdens de opname geschakeld moet worden naar relatief of absoluut opnemen. In veel gevallen moet relatief worden opgenomen voor het juiste resultaat. Let op: dit is NIET de standaardinstelling! Zet tijdens de opname het venster met de Editor op het scherm. Als er iets fout gaat tijdens de opname is opnieuw opnemen leidt vaak efficienter als opgenomen code bewerken.

Tips voor tijdens het opnemen met de macrorecorder (2) Gebruik bij het navigeren in datasets met een wisselende grootte uitsluitend toetsen(combinaties) als: Ctrl + * (Selectie van de current region bij aaneengesloten bereiken). Alternatief: combinaties als Ctrl + en Ctrl +. Tel in situaties waarbij sprake is van een wisselend aantal op te tellen cellen met formules als =SOM(E$2:E10).

Tips voor tijdens het opnemen met de macrorecorder (3) Verdeel de gewenste functionaliteit in delen. Neem voor elk deel een eigen macroprocedure op. Schoon de aangemaakte code waar mogelijk op (vereist enige basiskennis van VBA). Stel m.b.v. de VBA Editor een nieuwe samengestelde procedure samen die de deelprocedures sequentieel uitvoert.

Wat je niet kunt met de macrorecorder Als je meer wilt dan je kunt voordoen tijdens de macro opname bijvoorbeeld: Flexibiliteit aanbrengen voor gebruik in context van bijvoorbeeld verschillende bladen of mappen. Een bericht geven of een vraag stellen aan de gebruiker. Een beslissing nemen op basis van een criterium (IF.. THEN.. ELSE). Eenzelfde handeling op basis van een criterium meerdere keren uitvoeren (FOR.NEXT of DO LOOP lus). Foutsituaties afhandelen. (ON ERROR GOTO ) Eigen dialoogvensters (User Forms) maken. Gegevens overbrengen naar een ander programma. Eigen functies maken. Eigen invoegtoepassingen (Add Ins) maken. Code optimaliseren. In dat geval: programmeren, d.w.z. handmatig VBA code maken!

Stappen om in Excel met VBA te kunnen programmeren 1. Structuur van VBA begrijpen : projecten modules procedures. 2. Het (Excel) objectconcept begrijpen. 3. Basis programmeervaardigheden beheersen o.a.: Omgaan met variabelen. Beslissingsstructuur (If Then Else, Select Case). Lusstructuur (o.a. For Next). VBA functies kunnen toepassen.

Hoe kan je efficiënt programmeren in Excel met VBA leren? 1. Een uitstekende kennis van Excel hebben. 2. Een goede VBA (basis)cursus volgen. 3. Verdere ervaring opdoen via Trial and Error op basis van een concreet project.