Ereignisgesteuerte Programmierung mit VBA

Slides:



Advertisements
Ähnliche Präsentationen
Support.ebsco.com Lernprogramm zum Erstellen einer lokalen Sammlung.
Advertisements

Die Installation von Windows 95 erfordert etwas Vorarbeit: Als erstes müssen Sie mit einer Windows 95 Startdiskette den Computer booten.... Dabei wird.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
10. Grundlagen imperativer Programmiersprachen
Objektorientierte Programmierung mit Java unter BlueJ
Objektorientierung mit VBA
Objektorientierung mit VBA
SendEplanung Datenbank
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
ARRAY oder FELD oder VEKTOR
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 7 Claudio Moraga, Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Teil I - Erstellen einer Excel-Tabelle zur Deckungsbeitragsrechnung
Inhalte und Maßnahmen eingegeben haben,
Einführung MySQL mit PHP
Presenter: Daniel Walzenbach Technologieberater
Tipps und Tricks für Word 2000 Aytac, Felix, Steffen 04/05.
Erstellen eines Zufallsgenerators
Objektorientierte Modellierung
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Neue variable Lernkontrollen mit Diagnose und Förderplanung
Ingenieurbüro für Informationssysteme Konzepte und Marketing Himmelsweg 4-4a Tostedt Telefon (04182) Telefax (04182) D110 - IFI-Dienstplan.
Delphi II - OOP IFB Fortbildung
Druckerinstallation HP1050C
PowerPoint.
OMRON 1 FINS Befehle schicken mit CX – Server Lite Aufgabe :
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Polynome und schnelle Fourier-Transformation
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Mo., – Uhr Ort: Hörsaal 5.01, Institut für Physik, Universitätsplatz 5, A-8010.
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
SAP Seminar 2007 Materialstammsätze anlegen
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Willkommen zur Präsentation „Sendung anlegen“:
Variablen in Programmiersprachen
Analyseprodukte numerischer Modelle
Erste Schritte in DELPHI
1 © Holger Meyer, Scheeßel 2008 Schönes Haus! … aber es verbraucht zuviel.
Formulare in HTML.
Anmeldung via Mit Mausklick Sprache wechseln Verfügbare Funktionen Maskenbeschrieb aufrufen - geschloss. Menü (640x480) + geöffnetes Menü (800x600)
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
1 Tagesüberblick 4 Lösung Hausaufgabe/Fragen Mustervergleiche.
Tabellen in Word for Windowscomputeria, Urdorf Tabellen in Word for Windows computeria Urdorf / Dieter Eckstein.
Musterlösung zum Arbeitsblatt Nr. 1
Snagit Ein „Allround-Programm“ für die Aufzeichnung von Bildschirm- Darstellungen verschiedenster Art, wie Bilder Filmsequenzen Texte Bilder in Web-Seiten.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
VBA-Schulung /28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Tutorial Schritt 1: Über den Link im VP gelangen Sie auf die Seite
1 VeranstaltungThemaTeilnehmerBetreuer AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG Peter RENDL Helfried TUISEL Peter ZYCH Heinz STEGBAUER.
Delphi Chars und Strings
 Präsentation transkript:

Ereignisgesteuerte Programmierung mit VBA User Forms Ereignissteuerung Übungen Christoph Oberweis 2007

Agenda In dieser Einheit werden die grundlegenden Elemente von Dialogfeldern und die Möglichkeiten einer ereignisgesteuerten Programmierung unter VBA vorgestellt. Die praktische Übungen orientieren sich thematisch größtenteils an Aufgabenstellungen der kaufmännischen Informationsverarbeitung. Ereignisgesteuerte Programmierung C.O.

Einführungsbeispiel Ereignisgesteuerte Programmierung Aufgabe: Im Umfeld einer Fakturierung existiert eine Methode zur Be- rechnung des Bruttopreises. Anforderung an die Problemlösung: Es wird eine Maske mit den üb-lichen Windows – Eigenschaften (Dialogfelder, Buttons usw.) erwartet. Ereignisgesteuerte Programmierung C.O.

Einführungsbeispiel Ereignisgesteuerte Programmierung Aufgabe: Im Umfeld einer Fakturierung existiert eine Methode zur Be- rechnung des Bruttopreises. Anforderung an die Problemlösung: Es wird eine Maske mit den üb-lichen Windows – Eigenschaften (Dialogfelder, Buttons usw.) erwartet. Ereignisgesteuerte Programmierung Bezeichnungsfelder (Label) Schaltflächen (Button) Textfelder (Ein - und Ausgabefelder) C.O.

Hier zunächst die Praxis „Normalerweise“ sollte nun die Benutzeroberfläche und das Fachkonzept modelliert werden. Zunächst erfolgt hier aber nun eine Einführung in die Technik der Erstellung von User Forms. Es wird ein neutrales Beispiel gewählt, welches sich durch wenige Mausklicks und Eintragungen auf Standard - Aufgabenstellungen anpassen lässt. Ereignisgesteuerte Programmierung C.O.

Praktische Übung: Allgemeine Dialobox Hier wurden zwei Eingabefelder und ein Ausgabefeld (Ergebnis der Verarbeitung) festgelegt. Zwei unterschiedliche Ereignisse können ausgelöst werden: Klick auf Button „Aktion 1“ bzw. „Aktion 2“. Ereignisgesteuerte Programmierung C.O.

Funktionalitäten Ereignisgesteuerte Programmierung In die Eingabefelder 1 und 2 können kleine Texte (z. B. Vor- und Zuname) eingegeben werden. Ein Klick auf „Aktion 1“ löst eine Ereignisprozedur aus, welche diese beiden Texte aneinanderfügt und das Ergebnis im Ausgabefeld anzeigt. Ein Klick auf Aktion 2 bewirkt, dass alle drei Felder wieder gelöscht werden. Beendet wird das Programm, wie alle Windows-Programme beendet werden können: Klick auf X. Ereignisgesteuerte Programmierung C.O.

User Form anlegen Ereignisgesteuerte Programmierung C.O.

Label Ereignisgesteuerte Programmierung C.O.

Textfelder Ereignisgesteuerte Programmierung C.O.

Schaltfläche Ereignisgesteuerte Programmierung C.O.

Quellcode hinterlegen Ereignisgesteuerte Programmierung C.O.

Quellcode hinterlegen Ereignisgesteuerte Programmierung C.O.

Quellcode hinterlegen Ereignisgesteuerte Programmierung C.O.

Quellcode hinterlegen Ereignisgesteuerte Programmierung C.O.

Botschaften und Ereignisse „Botschaften senden“ ist eine zentrale Sichtweise der objektorientierten Programmierung. Es handelt sich dabei um eine Aufforderung eines „Senders“ (der ein Objekt sein kann) an ein Objekt, eine seiner (public) Methoden auszuführen. Ereignisgesteuerte Programmierung C.O.

Modellierung der Botschaften und Ereignisse Während der Ablauf in einer Methode (wie oben, z. B. MWST berechnen) nach einem festgelegten Plan (Struktogramm) abläuft, ist dies für die gesamte Programmsteuerung nicht so. Das Laufzeitsystem reagiert bei einem ereignisgesteuerten Programm perma-nent auf Benutzereingaben – ein Struktogramm kann dies nicht visualisieren. UML bietet hierzu professionelle Möglichkeiten an, die allerdings an dieser Stelle etwas zu komplex wären. Eine einfache Möglichkeit, welche die Modellierung kleinerer Problemstellungen gestattet, ist die Ereignistabelle: Ereignisgesteuerte Programmierung C.O.

Modellierung der GUI Ereignisgesteuerte Programmierung C.O.

Modellierung der GUI Ereignisgesteuerte Programmierung C.O.

Modellierung der Assoziation Ereignisgesteuerte Programmierung C.O.

Einführungsbeispiel: Klasse Option Explicit Private mNetto_Preis As Double Public Property Let Nettopreis(NPr As Double) mNetto_Preis = NPr End Property Public Function Ermitteln_Brutto() Dim Mwst_Betrag Mwst_Betrag = (mNetto_Preis * 19 / 100) Ermitteln_Brutto = mNetto_Preis + Mwst_Betrag End Function Public Function Ermitteln_Mwst() Ermitteln_Mwst = (mNetto_Preis * 19 / 100) Ereignisgesteuerte Programmierung C.O.

Einführungsbeispiel: Form Option Explicit Dim oBrutto As clsBrutto Dim net As Double Private Sub CommandButton1_Click() Set oBrutto = New clsBrutto net = TextBox1 oBrutto.Nettopreis = net TextBox2 = oBrutto.Ermitteln_Brutto TextBox3 = oBrutto.Ermitteln_Mwst Set oBrutto = Nothing End Sub Private Sub CommandButton2_Click() TextBox1.text = " " TextBox2.text = " " TextBox3.text = " " Ereignisgesteuerte Programmierung C.O.

Aufgaben: Sequenz Ereignisgesteuerte Programmierung Aufgabe 1: Erstellen Sie bitte ein Programm zur Zinsberechnung! Benutzen Sie folgende Formel: Zinsen = Kapital * Zinssatz * Tage / 100 * 360 Aufgabe 2: Ermitteln Sie mit Hilfe eines Programms den durchschnittlichen Benzinverbrauch eines Wagens! Aufgabe 3: Eine Pizzeria bietet zusätzlich zu den „normalen“ Pizza-Angebot für jede Pizzasorte eine Riesenpizza für sieben Personen an. Einzugeben ist der Preis für eine kleine Pizza der gewünschten Pizzasorte; ausgegeben wird der Preis der Riesenpizza. Dieser Preis berechnet sich aus dem Preis der kleinen Pizza multipliziert mit 7 minus einem Preisnachlass von 5,00 Euro. Ereignisgesteuerte Programmierung C.O.

Aufgaben: Abfragen Ereignisgesteuerte Programmierung Aufgabe 4: Eine Versicherung erstattet ihren Mitgliedern einen Teil des Jahresbeitrags zurück: bei mehr als 5-jähriger Mitgliedschaft 9%, andernfalls 4%. Aufgabe 5: Ein Weingut liefert an seine Kunden Wein frei Haus. Eine bestimmte Sorte kostet in einem Sonderangebot 4,00 Euro. Wenn ein Auftrag unter 100 Euro liegt, werden noch 8 Euro für die Verpackung verlangt. Ein Programm soll für eine einzugebene Anzahl Flaschen (Sonderangebot) den Nettopreis berechnen. Aufgabe 6: Ein Programm soll die Lösungen einer quadratischen Gleichung berechnen bzw. angeben, ob und wie viele Lösungen existieren. Einzugeben sind die Koeffizienten. Ereignisgesteuerte Programmierung C.O.

Aufgaben: Schleifen Ereignisgesteuerte Programmierung Aufgabe 7: Die Organisationsleitung einer Messe „Informationstechnologie für das Büro“ möchte wissen, wie viele Personen diese Messe pro Tag durchschnittlich besuchten. Nach der Eingabe der Messedauer (Tage) werden die absoluten Werte (Anzahl der Besucher) pro Tag eingegeben, der Durchschnitt berechnet und das Ergebnis ausgegeben. Aufgabe 8 (ist schon bekannt, hier mit neuem Gesicht, s. nächste Folie): Es ist ein Programm zu erstellen, welchen den Tilgungsplan eines Kredits ausgibt (Annuitätentilgung). Nach der Eingabe der Kredithöhe, des Zinssatzes, der jährlichen Rückzahlung und der Laufzeit soll eine Tabelle mit folgenden Angaben ausgegeben werden: Jahr Zins (in Euro) Tilgung Restkredit Wird eine Laufzeit < 1 oder größer 15 eingegeben, wird standardmäßig eine Laufzeit von 15 Jahren angenommen. Ereignisgesteuerte Programmierung C.O.

GUI zur Aufgabe 8 Ereignisgesteuerte Programmierung C.O.

Tipp: Arbeiten mit einem Listfeld Tilgungsplan.ListBox1.Clear ……………… While k > r z = (k * p) / 100 t = r - z k = k – t ………… If z < 100 Then a2 = " 00.00 " Else If z < 1000 Then a2 = " 000.00 " If z < 10000 Then a2 = " 0000.00 " If z < 100000 Then a2 = " 00000.00 " a2 = "0000000.00 " End If Tilgungsplan.ListBox1.AddItem Format(j, a1) & Format(z, a2) & Format(t, a3) & Format(k, a4) j = j + 1 Wend Gehört in das Fachkonzept Ereignisgesteuerte Programmierung Formatierung C.O.

Dateiverarbeitung Ereignisgesteuerte Programmierung Programm: Es werden Daten zu verschiedenen Artikeln erfasst, alle Daten können auf die Festplatte als Datei abgespeichert werden. Es soll möglich sein, die Datei wieder zu laden und die Artikeldaten in einem Blättern - Modus anzuzeigen. Die Datensatzstruktur hat folgenden Aufbau: Artikelnummer: 8 Zeichen, String Artikelbezeichnung: 20 Zeichen, String Artikelpreis: 10 Zeichen, Double C.O.

Dateiverarbeitung Ereignisgesteuerte Programmierung Hinweise zur Problemlösung: Bei der hier formulierten Artikelverwaltung handelt es sich um die erste vereinfachte Version eines Programms, welches später hinsichtlich der Daten und der Funktionen ausgebaut werden sollte. Für die Erfassung der Artikel ist ein Array zu vereinbaren; die einzelnen Array-Elemente bestehen aus Datensätzen (Datenstruktur RECORD). Maximal können (zunächst) 500 Datensätze erfasst und gespeichert werden. Die Datensätze werden durch Mausklick alle abgespeichert oder geladen. Die GUI-Klasse „weiß“ nichts über dieses Datenmodell bzw. darüber, wie die Daten abgespeichert werden. Dies ist Aufgabe einer separaten Klasse. (Ausblick: 3 – Schichten – Modell) Ereignisgesteuerte Programmierung C.O.

Dateiverarbeitung Ereignisgesteuerte Programmierung Hinweise zur Codierung: Public Sub Dat_oeffnen() Open "h:\Artikeldatei" For Input As #1 For mI = 1 To max Input #1, Artikeltabelle(mI).mA_nummer, Artikeltabelle(mI).mA_bezeichnung, Artikeltabelle(mI).mA_preis Next mI Close #1 mI = 1 umspeichern_neu End Sub Public Sub Dat_speichern() umspeichern_alt Open "h:\Artikeldatei" For Output As #1 Write #1, Artikeltabelle(mI).mA_nummer, Artikeltabelle(mI).mA_bezeichnung, Artikeltabelle(mI).mA_preis Ereignisgesteuerte Programmierung C.O.

Quellen HELD, B. (2000): EXCEL-VBA-Programmierung. - München, Mark und Technik-Verlag JANKA, A. (2005): VBA mit Word. – Bonn, Galileo Computing – Verlag MARTIN, R. (1999): VBA mit Office 2000 lernen. – Bonn, Addison-Wesley – Verlag Ereignisgesteuerte Programmierung C.O.