Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.

Slides:



Advertisements
Verwante presentaties
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Advertisements

HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
SAP ABAP A short introduction. SAP ABAP • Selectie: – IF …… ENDIF. – IF …. ELSE … ENDIF. – IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. – IF condition_1.
Deltion College Engels C1 Gesprekken voeren [Edu/002]/ subvaardigheid lezen thema: Order, order…. can-do : kan een bijeenkomst voorzitten © Anne Beeker.
JQuery en ASP.NET Bart De Meyer.
Nationale Officedag6 maart 2008 VBA voor Word door Lenny Hoeks.
Visual Basic 2008 – What’s new André Obelink, MCSD – MVP MarYor | software & consultancy | |
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Programmeren in Java met BlueJ
Gegevensstructuren: list boxen en lijsten
COSTA Common Set of Tools for Assimilation of Data OpenDA/COSTA voor operationele modellen en kalibratie rivier toepassingen Nils van Velzen Simona gebruikersdag.
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
Objecten Hoofdstuk 6 Hoofdstuk 6 Hoofdstuk 6 1.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
VBA en VBS Een introductie.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
AAHA (voor intern gebruik)
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Informatica Universiteit AntwerpenScripting 5.1 Informatica 1rste BAC Biologie Hoofdstuk 5 Scripting.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
Klassen schrijven Hoofdstuk 10. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe schrijf je een klasse Constructormethodes Public methoden Variabelen.
Herhaling: For, While en Do
Spatial classificatie
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoorcollege 14 Vijanden, excepties. Wat zit allemaal in een level? Startpositie van de speler Waterdruppels Tiles Vijanden Einde van het level Achtergronden.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Visual Basic.
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
Tussentoets Digitale Techniek. 1 november 2001, 11:00 tot 13:00 uur. Opmerkingen: 1. Als u een gemiddeld huiswerkcijfer hebt gehaald van zes (6) of hoger,
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
Hoofdstuk 5 – Object Based Programmeren
Hoofdstuk 2 - Inleiding tot Visual Studio .NET IDE
Visual Basic.Net - Overzicht
Nationale Officedag6 maart 2008 VBA voor Excel door Lenny Hoeks.
Hoofdstuk 9 Objecten en klassen.
Samenwerken via Internet Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
Microsoft Operations Manager & Scripting
Visual Basic 2005/2008 OOP in praktijk André Obelink - MCSD, MVP Web: Web: -
Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Auteur, VBcentral.nl Microsoft MVP Visual Basic Microsoft MVP Visual.
Afdrukken met Visual Basic 2008
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Visual Basic.NET voor studenten De VB- ontwikkelomgeving Hoofdstuk 2.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 5 Herhaling, game object interactie. Ball class class Ball { Texture2D colorRed, colorGreen, colorBlue; Texture2D currentColor; Vector2 position,
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Dag van de Trader - Een casus in TA-script
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Les 7 Multiple Document Interface Programmeren met Visual Basic Karl Moens.
Arrays Hoofdstuk 14 Hoofdstuk 14.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Hoofdstuk 6 – Objectgeoriënteerd Programmeren: Overerving
Encapsulatie: Every man is an island upon himself.
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Polymorfie Hoofdstuk 24. Visual Basic.NET voor studenten2 Inleiding Polymorfie zorgt ervoor dat een gegeven object verschillende “vormen” kan aannemen.
Objectgeoriënteerd Programmeren (2)
Transcript van de presentatie:

Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009

Wat is een Objectgeoriënteerd programmeren?  Objectgeoriënteerd, vaak afgekort tot OO, is een paradigma dat gebruikt wordt bij het objectgeoriënteerd programmeren en objectgeoriënteerde opslag van data. Bij deze benadering wordt een systeem opgebouwd uit objecten, waarbij ieder object gemaakt is vanuit de definitie van een klasse.paradigmasysteemklasse  Belangrijke eigenschappen van objectgeoriënteerd programmeren zijn:  Encapsulation (Informatie verbergen): het kunnen verbergen van de interne werking van objecten, waardoor op een hoger niveau geprogrammeerd kan worden.  Modulariteit: programma's zijn eenvoudig uit te breiden en klasses zijn makkelijk te hergebruiken  (Overerving: het specifieker kunnen maken van een klasse, waarbij (een deel van) een generieke klasse kan worden overgeërfd.)  (Polymorfisme: een functie kan geschreven worden voor generieke objecten, en uitgevoerd worden op specifiekere objecten, zonder dat de functie van het bestaan van de specifiekere objecten hoeft af te weten.)Polymorfisme

Objecten  Eigenschappen  (Word: activedocument.name)  Methoden  (Word: activedocument.save)  Gebeurtenissen  (Word: Document_Close())

Begin van OO Type Employee Name As String Address As String Salary As Double End Type

Eigenschappen - I P ublic strNaam As String  In klassemodule (bijv. clsUser)  Publieke eigenschap  Geen code mogelijk

Gebruik van object  Declareren Dim x As New clsUser  Vullen x.strNaam = "Jan“  Lezen Msgbox x.strNaam

Eigenschappen = II  Nu wel code mogelijk  Members / Property Get / Property Let Private mAdres As String Property Get strAdres() As String strAdres = mAdres End Property Property Let strAdres(strAdres As String) mAdres = strAdres End Property

Methode (als Sub) Private mBericht As String Private mMailAdres As String Property Let strMailAdres(strAdres As String) mMailAdres = strAdres End Property Property Let strBericht(strBericht As String) mBericht = strBericht End Property Public Sub mailenmaar() Rem code voor mail Rem mail.to = mMailAdres Rem mail.body = strBericht Rem mail.send MsgBox "Bericht voor " & mAdres & vbCr & mBericht End Sub

Methode (als Function) Public Function mailenmaar2() As Boolean Rem code voor mail Rem mail.to = mMailAdres Rem mail.body = strBericht Rem mail.send On Error GoTo foutje: MsgBox "Bericht voor " & mAdres & vbCr & mBericht mailenmaar2 = True Exit Function foutje: mailenmaar2 = False End Function

Gebruik van methoden Dim x As New clsUser x.strNaam = "Jan" x.strAdres = “Gracht 13" x.strMailAdres = x.strBericht = "Groeten " & Time x.Mailenmaar If x.mailenmaar2 = True Then MsgBox "Mail is verzonden" End If

Collections.. Dim objlistNamen As New Collection objlistNamen.Add x Dim intAantal As integer intAantal = objlistNamen.Count For i = 1 To intAantal MsgBox objlistNamen.Item(i).strNaam Next Dim objTest As New clsUser For Each objTest In objlistNamen MsgBox objTest.strNaam Next

Demo – Formulier en Klasse  Klasse met gebeurtenissen  Updatemax  updatetext  Formulier dat regeert op gebeurtenissen in Klasse  objTikker_UpdateMax  objTikker_UpdateText

Events in de Klasse Public Event Updatetext(ByVal dblJump As Double) Public Event UpdateMax(ByVal intqwerty As Integer) Public Sub tikkenmaar() RaiseEvent UpdateMax(mintMax) For j = 1 To 15 For i = 1 To Next RaiseEvent Updatetext(j) Next End Sub

Reageren in het formulier op Klasse-events Private WithEvents objTikker As clstimer Private Sub objTikker_UpdateMax(ByVal intqwerty As Integer) Me.Label3.Caption = intqwerty End Sub Private Sub objTikker_Updatetext(ByVal dblJump As Double) Me.Label1.Caption = dblJump Me.Label2.Width = dblJump * 15 DoEvents End Sub

Start en einde Klasse Private Sub Class_Initialize() Rem code bij initialiseren van de klasse MsgBox "Welkom" mintMax = 200 mintMin = 0 End Sub Private Sub Class_Terminate() Rem code bij afsluiten van de klasse MsgBox "Tot ziens" End Sub

Complete code op formulier Private WithEvents objTikker As clstimer Private Sub CommandButton1_Click() Set objTikker = New clstimer Call objTikker.tikkenmaar End Sub Private Sub objTikker_UpdateMax(ByVal intqwerty As Integer) Me.Label3.Caption = intqwerty End Sub Private Sub objTikker_Updatetext(ByVal dblJump As Double) Me.Label1.Caption = dblJump Me.Label2.Width = dblJump * 15 DoEvents End Sub

Formulier met progressbar

Public Event Updatetext(ByVal dblJump As Double) Public Event UpdateMax(ByVal intqwerty As Integer) Private mintMax As Integer Private mintMin As Integer Property Get intMax() As Integer intMax = mintMax End Property Property Let intMax(intinvoer As Integer) If intinvoer > 200 Then intinvoer = 200 If intinvoer < 0 Then intinvoer = 100 mintMax = intinvoer End Property Public Sub tikkenmaar() RaiseEvent UpdateMax(mintMax) For j = 1 To 15 For i = 1 To Next RaiseEvent Updatetext(j) Next End Sub Private Sub Class_Initialize() Rem code die wordt doorlopen bij initialiseren van de klasse MsgBox "Welkom" mintMax = 200 mintMin = 0 End Sub Private Sub Class_Terminate() Rem code die wordt doorlopen bij afsluiten van de klasse MsgBox "Tot ziens" End Sub

Hyperlinks  nl.wikipedia.org/wiki/Objectgeori%C3%AB nteerd nl.wikipedia.org/wiki/Objectgeori%C3%AB nteerd   