Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Vergelijkbare documenten
Programmeren in Excel VBA. Karel Nijs 2010/09

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Inleiding Visual Basic en VBA. Karel Nijs 2009/01

Programmeren in Excel VBA beginners. Karel Nijs 2010/09

Programmeren in Excel VBA. Karel Nijs 2010/09

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

Inhoud. VBA Excel 2010

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

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

Info-books. Toegepaste Informatica. Deel 20 : Algoritmen en programmeren in Access en Excel (Basis) AL20. Jos Gils Erik Goossens

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Hoofdstuk 7: Werken met arrays

Programmeren in Access met VBA

Programmeren in Access 2016 met VBA

Een korte samenvatting van enkele FORTRAN opdrachten

Vakgroep CW KAHO Sint-Lieven

Voorbeelden VBA Excel

Programmeren in Excel VBA. Karel Nijs 2010/09

II. ZELFGEDEFINIEERDE FUNCTIES

Doe het zelf tooling. Met VBA

Javascript oefenblad 1

Datum, Tijd en Timer-object

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

UNIVERSITEIT ANTWERPEN FACULTEIT WETENSCHAPPEN DEPARTEMENT WISKUNDE-INFORMATICA OBERON CODE CONVENTIONS

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Maak een pivot uit een Generic.List

Bijlage 1. Access VBA code voor het maken van barrièrebestanden.

Programmeren in Java les 3

6.2 VBA Syntax. Inleiding Visual Basic

Stel dat u 15 tellers nodig heeft. Dat kunt u een array van tellers als volgt declareren:

Blog-Het gebruik van variabelen in Excel VBA

Macro's in OpenOffice.org

Modelleren en Programmeren

Van macrorecorder door naar VBA

Som Van Twee Getallen

Variabelen en statements in ActionScript

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

Hoofdstuk 9: Menu s toevoegen

Programmeren: Visual Basic

Access voor beginners - hoofdstuk 25

Small Basic Programmeren Text Console 2

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Zelftest Inleiding Programmeren

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

Programmeren. Cursus Python

VBA voor Doe het Zelvers Deel 7

Scala. Korte introductie. Sylvia Stuurman

Afspraken vet voorbeeldenmap oefeningenmap

Whitepaper Implementatie contextafhankelijke opdrachtbalken in MS Excel

De keuzestructuur. Versie DD

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Hoofdstuk 6: Zelf functies maken

MS Access. Module 0. MS Access, versie 97 (NL) Nummer: 237 ( ) The Courseware Company

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Java. Basissyllabus. Egon Pas

Access. Module 0. Access, versie 97 (UK) Nummer: 012 ( ) The Courseware Company

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

Hoofdstuk 4: Nieuwe objecten

No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher.

GCE cad-app. GCE cad-service 4/16/2012

Hoofdstuk 2: Werken met variabelen

Hoofdstuk 3: Keuzestructuren

VBA voor Doe het Zelvers deel 20

ASRemote WebService. Via deze webservice kunt u:

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Modelleren en Programmeren

Analyse KeyLock versie Door MartinJM

GEDETAILLEERDE INHOUD

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Bestand: /home/karel/scripts/mkusb Pagina 1 van 6

Ontwerp van Informatiesystemen

Afspraken. Dit moet je letterlijk intypen.

Inhoud leereenheid 7c. JavaScript: Objecten en functies. Introductie 59. Leerkern 60. Samenvatting 82. Opdrachten 83. Zelftoets 89.

Inform 5-6. Toegepaste Informatica. Boekhouden-informatica Informaticabeheer. Deel 4a: Programmeren in VBA DAO-objecten (Access )

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Zelftest Programmeren in PL/I

Hoofdstuk 4: Nieuwe objecten

Lab Webdesign: Javascript 11 februari 2008

Functies. Huub de Beer. Eindhoven, 4 juni 2011

Een Multi-functioneel formulier

Programmeren VBA 2. Colofon: Uitgave 1.1 : M.M. Witkam, januari 2003 Nummer : 1022 Auteur : drs. M.M. Witkam Profieldeel : Profiel : Wiskunde Prijs

Hoofdstuk 2: Werken met variabelen

E-Basic. E-Studio. E-Run Real-Time Experiment Generator. E-Merge. E-DataAid Spreadsheet Application for E-Prime Data Files

1) Een sequentieel bestand schrijven

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Opgaven. Python Assessment

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur

Korte uitleg: Wat doet de shell met mijn commandoregel?

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

Modelleren en Programmeren

Informatietechnologie 2. JavaScript. Functies, Objecten en toegang tot de DOM. Kristof Michiels

Transcriptie:

Inleiding Visual Basic en VBA Karel Nijs 2009/01

Leswijze Eerst wat theorie Begeleid met (korte) oefeningen Ms Excel 2003 Online hulp: http://www.ozgrid.com/vba/ http://msdn.microsoft.com/en-us/library/sh9ywfdk(vs.80).aspx http://www.microsoft.com/technet/scriptcenter/topics/office/vba.mspx http://www.kbcopenleren.be/ Offline hulp (op CD-ROM): Boek "VBA voor Word, Excel en Access" VBA-handleiding - vanuit Excel.doc Korte pauze rond 20u

Inleiding Visual Basic en VBA: intro Inleiding tot programmeren Visual Basic intro Constanten, variabelen, declaraties en arrays Operatoren Selecties en iteraties Functies en subroutines Werken met bestanden

Inleiding Visual Basic en VBA les 3 Constanten, variabelen, declaraties en arrays Functies en subroutines Werken met bestanden

Constanten, variabelen, declaraties en arrays Herhaling les 1 varia: String concatenatie: Bv. Mijnheer & strvoornaam & strnaam Waardes tonen aan de gebruiker: Bv. MsgBox Dit is het bericht,, Titel Waardes vragen aan de gebruiker: Bv. strwaarde = InputBox( Geef iets, Titel ) Meerdere declaraties op één regel: Bv. Dim igetal1 As Integer, igetal2 As Integer Commentaar met een enkele quote: Bv. dit is commentaar en wordt genegeerd

Inleiding Visual Basic en VBA les 3 Herhaling les 2: Besluitvormingsstructuren: If Then End If If Then Else End If If Then ElsIf Else End If If ( tijd < 12u ) Then MsgBox "Goedemorgen!" ElseIf ( tijd < 15u ) Then MsgBox "Goedemiddag!" ElseIf ( tijd < 18u ) Then MsgBox "Goede namiddag!" ElseIf ( tijd < 22u ) Then MsgBox "Goede avond!" Else End If MsgBox "Goedenacht!"

Inleiding Visual Basic en VBA les 3 Herhaling les 2: Besluitvormingsstructuren: Select Case Dim iuur as Integer iuur = InputBox("Welk uur is het?") Select Case iuur Case 8 MsgBox "Goedemorgen!" Case 12 MsgBox "Goedemiddag!" Case 16 MsgBox "Goede namiddag!" Case Else MsgBox "Hallo!" End Select

Inleiding Visual Basic en VBA les 3 Herhaling les 2: Lusstructuren: For iteller = 0 To 5... Loop For iteller = 0 To 5 Step 1... Loop iteller = 0 Do While ( iteller < 6)... iteller = iteller + 1 Loop iteller = 0 Do... iteller = iteller + 1 Loop While ( iteller < 6) iteller = 0 Do Until ( iteller >= 6)... iteller = iteller + 1 Loop

Inleiding Visual Basic en VBA les 3 Constanten, variabelen, declaraties en arrays Functies en subroutines Werken met bestanden

Constanten, variabelen, declaraties Arrays: en arrays = verzameling van dezelfde gegevens Bv. verzameling van Integers, Strings, Dates, Objects, Elk element apart raadpleegbaar mbv. indexering ~ gewone variabelen: Moet gedeclareerd worden Unieke naam met beperkingen Afspraak: CamelCase en Hungarian notation Scope te bepalen: Private, Public of Dim Geen constanten mogelijk! http://www.ozgrid.com/forum/showthread.php?t=34314

Constanten, variabelen, declaraties en arrays Arrays: Voorbeeld: startpositie eindpositie Dim arrleden(1 To 5) As String Maakt een array aan van Strings arrleden arrleden(1) arrleden(2) arrleden(3) arrleden(4) arrleden(5)

Constanten, variabelen, declaraties en arrays Arrays: Voorbeeld: Dim arrleden(1 To 5) As String arrleden(1) = "joris" Maakt een array aan van Strings joris arrleden arrleden(1)

Constanten, variabelen, declaraties en arrays Arrays: Startpositie is instelbaar Dim arrleden(1 To 100) As String Start vanaf 1 Gaat van 1 t/m 100 Dim arrleden(100) As String Start vanaf 0 Gaat van 0 t/m 100 Opgelet: staat fout in boek!

Constanten, variabelen, declaraties en arrays Arrays multi- dimensionaal: Voorbeeld: Dim arrleden(1 To 5, 1 To 3) As String Maakt een array aan van arrays van Strings arrleden arrleden(1) arrleden(3) arrleden(5) arrleden(2) arrleden(4)

Constanten, variabelen, declaraties en arrays Arrays: Voorbeeld: Dim arrleden(1 To 5, 1 To 3) As String arrleden(1,2) = "joris" Maakt een array aan van Strings arrleden joris arrleden(1,2)

Constanten, variabelen, declaraties en arrays Arrays: Grootte later pas declareren: Dim arrleden() As String ReDim arrleden(20) As String Nuttig wanneer je de grootte op voorhand niet kent Grootte heraanpassen lukt niet: Dim arrleden(1 To 5) As String ReDim arrleden(20) As String

Constanten, variabelen, declaraties en arrays Arrays: Opvragen van de grenzen: Ondergrens: LBound( array ) Bovengrens: UBound( array ) Voorbeeld: Dim arrleden(4) As String Dim arrwerknemers(0 To 4) As String MsgBox LBound( arrleden ) MsgBox LBound( arrwerknemers ) MsgBox UBound( arrleden ) MsgBox UBound( arrwerknemers )

Selecties en iteraties For Each Next: Overlopen van een collectie Dim vitem As Variant Variant type verplicht Collectie; bv. array For Each vitem In arrleden Next... wordt uitgevoerd voor elk element in de collectie

Selecties en iteraties For Each Next: Voorbeeld Dim vitem As Variant Dim saordersinfactuur(3) As String saordersinfactuur(0) = beer saordersinfactuur(1) = Lego saordersinfactuur(2) = bal saordersinfactuur(3) = GI Joe For Each vitem In saordersinfactuur Next MsgBox vitem Toont in deze volgorde: beer, Lego, bal en GI Joe

Selecties en iteraties Oefening 1: Maak een programma dat het totaal van een factuur berekent. In één array steek je de productnamen (String) In de andere array steek je de productprijzen (Double) Doel: toon het totaal van de factuur aan de gebruiker Verplichting: gebruik een For Each... Next Tips: Met For Each... Next kan je maar één collectie (hier: array) te gelijk overlopen Je hebt dus nog een hulpvariabele nodig: een extra teller

Selecties en iteraties Oefening 1: Oplossing:

Inleiding Visual Basic en VBA les 3 Constanten, variabelen, declaraties en arrays Functies en subroutines Werken met bestanden

Functies en subroutines Procedure = stuk code omsloten door Sub of End Sub Function End Function Procedures steken altijd in modules

Functies en subroutines Procedure Procedures steken altijd in modules ThisWorkBook en Bladx zijn eigenlijk ook modules! Scope of toegang of aanroepbaarheid of Public Toegankelijk voor andere procedures buiten de module Bv. procedure om robot te besturen Private Enkel toegankelijk voor andere procedures binnen de module Code hiding Bv. (interne) procedure om de snelheid te berekenen

Functies en subroutines Sub... End Sub Subroutine Géén terugkeerwaarde Uitbreken met: Exit Sub Voorbeeld: publieke toegang begin naam parameters Public Sub RijVooruit( )... If(... ) Then Exit Sub uitbreken... einde End Sub

Functies en subroutines Function... End Function Functie Met één terugkeerwaarde Type te specifiëren in functiebeschrijving Toekenning terugkeer- of functiewaarde door: <functienaam> = <waarde> Uitbreken met: Exit Function

Functies en subroutines Function End Function: Voorbeeld: naam parameters publieke toegang begin terugkeertype Public Function GeefSnelheid( ) As Double... einde If(... ) Then Exit Function... uitbreken GeefSnelheid = 25.3 End Function terugkeerwaarde toekennen

Functies en subroutines Parameters Soorten: geen, optionele en normale Bij zowel subroutines als functies Type zelf mee te geven Als ontbreekt Variant ~ variabelen: Moeten gedeclareerd worden Unieke naam met beperkingen Afspraak: CamelCase en Hungarian notation Scope = procedure zelf (na procedure is geheugen vrij) Dim keyword niet nodig Geen constanten

Functies en subroutines Procedure Parameters voorbeelden: Geen parameters: Sub Demo() Wel, met type: Sub Demo( s1 As String, s2 As String ) Wel, zonder type: Beide worden gedeclareerd als Variant Sub Demo( s1, s2 )

Functies en subroutines Procedure Parameters voorbeelden: Optionele, zonder standaardwaarde Als niet meegegeven standaardwaarde van type wordt gebruikt Bv. Integer 0 Sub Demo( Optional s1 As String ) Optionele, mét standaardwaarde Als niet meegegeven standaardwaarde van declaratie wordt gebruikt Sub Demo( Optional s1 As String = blah )

Functies en subroutines Procedure Parameters voorbeelden: MsgBox functie MsgBox "Dit is het bericht",, "Titel" MsgBox "Dit is het bericht", vbcritical + vbokcancel, "Titel"

Functies en subroutines Parameters Doorgeven: Voorbeeld: Public Sub RijVooruit( iafstand As Integer)... End Sub Call RijVooruit( 20 ) Call RijVooruit() Call RijVooruit( 20, 10 )

Functies en subroutines Oproepen Verschillende manieren: Bv. BerekenAfstand Bv. BerekenAfstand() Bv.Call BerekenAfstand Bv.Call BerekenAfstand() Bv.Call ZetSnelheid( 20 ) Met Call: Duidelijker dat je procedure oproept Haakjes () niet verplicht wanneer parameters ontbreken Enkel bruikbaar als je géén terugkeerwaarde verwacht!

Functies en subroutines Oproepen Als je een terugkeerwaarde hebt: Haakjes gebruiken! Call niet gebruiken bij oproepen Bv. waarde = InputBox( Geef getal ) Zonder terugkeerwaarde: Haakjes niet verplicht Bv. MsgBox Geef getal Bv. Call MsgBox("Dit is het bericht",, "Titel") Optionele parameters weglaten Bv. MsgBox Geef getal,, Titel

Functies en subroutines Oproepen Ook mogelijk om de parameters zelf te specifiëren Voorbeeld: MsgBox prompt:="dit is het bericht", _ title:="titel" Waarom Leesbaarder in sommige gevallen het nieuwe regel teken Geen komma s nodig bij het ontbreken van optionele parameters Bv. MsgBox Bericht,, Titel

Functies en subroutines Parameters - geavanceerd ByVal Optional. Specifies that the procedure can modify the underlying variable element in the calling code the same way the calling code itself can. Bv. Public Sub Demo( ByVal sparam1 As String ) ByRef Optional. Specifies that the procedure cannot replace or reassign the variable element underlying the corresponding argument in the calling code. Bv. Public Sub Demo( ByRef sparam1 As String ) ParamArray Optional. Specifies that the last parameter in the parameter list is an optional array of elements of the specified data type. This lets the calling code pass an arbitrary number of arguments to the procedure. Bv. Public Sub Demo( ParamArray saparams() As Variant ) Call Demo( "a", "b", 5, Date ) http://msdn.microsoft.com/en-us/library/cbs7z96t.aspx

Functies en subroutines Samenvatting Procedures kunnen parameters hebben Procedures hebben een scope Er zijn twee soorten procedures: Sub en Function Functies hebben een terugkeerwaarde Procedure parameters: Hebben een type Kunnen optioneel zijn Procedures kunnen op verschillende manieren opgeroepen worden

Inleiding Visual Basic en VBA les 3 Constanten, variabelen, declaraties en arrays Functies en subroutines Werken met bestanden

Werken met bestanden Tot hier toe: alle gegevens beschikbaar binnen Ms Excel Soms ook toegang tot bestanden nodig Ophalen van klantenlijst Kijken of een database(bestand) bestaat Tijdelijke log aanmaken en verwijderen toegang tot de buitenwereld

Werken met bestanden Mogelijkheden zijn legio: Kopiëren Verplaatsen Hernoemen Verwijderen Attributen uitlezen en aanpassen Toepasbaar op zowel bestanden als mappen

Werken met bestanden Sleutelwoorden voor acties op mappen: ChDir andere actieve map kiezen ChDrive andere drive kiezen CurDir huidige map opvragen Dir overzicht van bestanden in map krijgen MkDir map aanmaken RmDir map verwijderen

Werken met bestanden Opgelet! Je bent acties aan het doen op het bestandssysteem van je computer Met één regel kan je hele mappen verwijderen Ongedaan maken is niet meer mogelijk!

Werken met bestanden Oefening 2 Maak een functie BestaatMap() met twee parameters: Een mapnaam Een optionele logische waarde die zegt of de map aangemaakt moet worden als hij niet bestaat Standaard is deze False

Werken met bestanden Oefening 2 Als de map bestaat, wordt dit gemeld aan de gebruiker. Bv. baangemaakt = BestaatMap( c:\temp\ ) Als de map niet bestaat én er moet een map aangemaakt worden, wordt deze aangemaakt en daarna gemeld aan de gebruiker Bv.bAangemaakt = BestaatMap( c:\temp\blah, True )

Werken met bestanden Sleutelwoorden voor acties op bestanden: FileCopy bestand kopiëren Kill bestand verwijderen Name bestand hernoemen Sleutelwoorden voor acties op attributen: FileDateTime datum van laatste wijziging FileLen bestandsgrootte in bytes GetAttr attribuut opvragen geeft getal terug SetAttr attribuut instellen constante doorgeven

Werken met bestanden Attributen: SetAttr GetAttr Betekenis vbnormal 0 normaal vbreadonly 1 alleen-lezen vbhidden 2 verborgen vbsystem 4 systeembestand vbdirectory 16 map vbarchive 32 archiveren nodig vbalias 64 bestandsnaam is alias

Inleiding Visual Basic en VBA Niet behandeld in deze cursus: Error handling/trapping Datums Objecten Eigen klassen External libraries Recursiviteit Formulieren Properties Events OLE

Inleiding Visual Basic en VBA En nu? Verdere cursussen in OpenLeren: VBA met Ms Word VBA met Ms Access VBA met Ms Excell VBScript op websites http://www.w3schools.com/vbscript/default.asp Visual Basic zelf leren Vooral: oefenen, oefenen, oefenen,

Bedankt voor jullie aandacht!