Programmieren in Anwendungen - softech.informatik.uni-kl.de · kompatibel seit VB.NET) I...
Transcript of Programmieren in Anwendungen - softech.informatik.uni-kl.de · kompatibel seit VB.NET) I...
Programmieren in Anwendungen
Annette Bieniusa
Technische Universitat Kaiserslautern
18.04.2013
1 / 27
Uberblick
Organisatorisches
Einfuhrung in VBAWas ist VBA?EntwicklungsumgebungArbeiten mit Makros
2 / 27
Vorlesung
I Homepage mit Informationen und Materialhttp://softech.informatik.uni-kl.de/Homepage/PIA SS13
I Ort und Zeit: donnerstags, 17:15 - 19:00, in Raum 52-207
I Saalubung: freitags, Fr 13:45h - 15:15h, in Raum 48-379
I Klausur oder Projektausarbeitung?
3 / 27
Vorlesung
I Homepage mit Informationen und Materialhttp://softech.informatik.uni-kl.de/Homepage/PIA SS13
I Ort und Zeit: donnerstags, 17:15 - 19:00, in Raum 52-207
I Saalubung: freitags, Fr 13:45h - 15:15h, in Raum 48-379
I Klausur oder Projektausarbeitung?
4 / 27
Ubungen
I Korrektur: Jan Starz (j [email protected])
I Abgabe der Ubungblatter: montags bis 12:00
I Abgabe in Teams von 1 - 3 Personen moglich
I 50% der Punkte mussen jeweils auf Blatt 1 - 5 und Blatt 6 -10 erreicht werden
5 / 27
Themen
Visual Basic for Applications(VBA)
I Wiederholung grundlegender Konzepte der imperativenProgrammierung anhand der neuen Sprache VB (Visual Basic)
I Einfuhrung in die ereignisorientierte Programmierung
I Anwendungsbeispiele mit VBA in Word und Excel
Statistik und Grafiken mit R
I Einfuhrung in die Statistiksoftware R
I Wiederholung grundlegender Konzepte der Statistik undDatenanalyse
I Datenvisualisierung und Datenanalyse in R an ausgewahltenFallstudien
6 / 27
Visual Basic for Applications (VBA)
I Skriptsprache zur Automatisierung und Anpassung vonMicrosoft Office Programmen
I Basiert auf der Syntax von Visual Basic (nicht mehrkompatibel seit VB.NET)
I Modul-orientiert und prozedural
LiteraturhinweisVBA-Programmierung - Integrierte Losungen mit Office 2010, 1.Auflage, Okt 2010 (erhaltlich im Rechenzentrum bzw.HERDT-Verlag)
7 / 27
Typische Einsatzgebiete
I Automatisiertes Erzeugen von Dokumenten wie Serienbriefen
I Benutzerdefinierte Dialogfenster oder Fehlermeldungen
I Dokumentstatistiken erstellen
I Daten aus anderen Anwendungen einbinden (insbesondereAccess-Datenbanken)
I Einbinden von Funktionalitat spezifischer Office-Anwendungen(integrierte Losungen)
I Umsatz- und Budgetzahlen aus einer Access-Datenbankwerden in Excel ausgewertet und visualisiert.
I Umfangreiche Excel-Tabellen konnen uber Word kompaktgedruckt werden.
8 / 27
Microsoft Office-Anwendungen
Word Textverarbeitung,Seriendruck
Excel Tabellenkalkulation,Formeln, Diagramme
Access RelationaleDatenbanken,Formulare
PowerPoint Folienprasentation,Begleitmaterial
Outlook E-Mail,Terminplanung,Adressbucher
9 / 27
Elemente der VBA-Entwicklungsumgebung
Editor, Werkzeuge, Projektverwaltung
Projekt-Explorer gibt eine hierarchisch geordnete Ubersichtvon allen Elemente eines Projekts.
Eigenschaftenfenster listet die Eigenschaften und aktuellenEigenschaftswerte des markiertenElements.
Code-Fenster/Modulfenster dient zum Eingeben und Bearbeiten desProgrammcodes.
Direktfenster erlaubt es einzelne Anweisungen direktauszufuhren.
Lokal-Fenster zeigt die Werte aller lokaler Variablen imDebug-Modus an.
11 / 27
Module
I VBA-Programme bestehen aus einer Kombination vonModulen.
I Jedes Modul enthalt Deklarationen von Konstanten, Variablenund Prozeduren.
Standardmodule sind fur ein gesamtes Projekt gultig.
Klassenmodule definieren ein neues Objekt mitzugehorigen Eigenschaften und Methoden.
Dokumentenmodule sind an ein konkretes Dokumentgebunden.
UserForm-Dialoge gehoren zu einem benutzerdefiniertenFormular und beinhalten die zugehorigenEreignisprozeduren.
12 / 27
Organisation von Modulen
I Module konnen an ganze Dateien oder an einzelneDateielemente gebunden werden.
I Gruppieren Sie Prozeduren, die zusammen gehoren, in jeweilseigene Module.
I Benennen Sie Module mit aussagekraftigen Namen (z.B.Verwaltung oder Dokumentstatistik) statt derautomatisch erzeugten Namen Modul1, Modul2, etc.
I Module konnen exportiert und importiert werden. BeimExportieren werden sie in Textdateien mit der Dateiendung*.bas gespeichert.
13 / 27
Sub-Prozeduren
I Sub-Prozeduren bestehen aus einer Folge von Anweisungen(z.B. Zuweisungen von Variablen, Prozeduraufrufen,Verzweigungen, Schleifen, ...)
I Syntax von einfachen Sub-Prozeduren
Sub Prozedurname ()
...
End Sub
I Syntax von Prozeduraufrufen (ohne Parameter)
Prozedurname
Call Prozedurname
14 / 27
Prozedurnamen und andere Bezeichner
I Bezeichner sind frei wahlbare Namen, mit denen Prozeduren,Variablen und Konstanten benannt werden.
I Sie durfen nicht mit Schlusselwortern ubereinstimmen.
I Sie mussen mit einem Buchstaben beginnen und konnen biszu 255 Buchstaben, Zahlen oder Unterstriche enthalten,jedoch keine Punkte oder Leerzeichen.
I VBA ist nicht case sensitive, d.h. Groß- und Kleinschreibungwerden nicht unterschieden.
I Bezeichner sollten eindeutig und aussagekraftig sein!
15 / 27
Beispiel: Meldungsfenster mit allgemeiner Information
’Information zu Datum und Anwendung
Sub AllgemeineInfo ()
MsgBox "Heute ist " & Date & " und Sie arbeiten mit " &
Application.Name
End Sub
I Kommentare beginnen mit ’.
I Mit & werden Zeichenketten (Strings) zusammengefugt(Konkatenation).
I Date liefert das Datum des heutigen Tages.
I Auf Eigenschaften von Objekten (wie z.B. Application) wirdmit . zugegriffen.
16 / 27
Meldungsfenster
I Meldungsfenster konnen dazu genutzt werden, dem BenutzerInformationen mitzuteilen und auch abzufragen. Sie bestehenaus dem Meldungstext und standardmaßig der Schaltflache“OK”. Sie kann optional mit einem Titel,Informationssymbolen und weiteren Schaltflachen erganztwerden.
I Einfaches Meldungsfenster
MsgBox "Meldungstext"
I Meldungsfenster mit Titel und Informationssymbol
MsgBox "Meldungstext", vbInformation , "Titel"
I Andere Symbole: vbCritical, vbQuestion, vbExclamation
17 / 27
Meldungsfenster mit Ruckgabewert
I Uber Schaltflachen (Buttons) kann der Benutzer dieAnwendung interaktiv steuern.
I Ergebniswert = MsgBox ("Text", Buttons + Symbole , "
Titel")
I Mit Ruckgabewert werden die Parameter in Klammernangegeben!
I Um Schaltflachen mit Symbolen zu kombinieren, werden diesemit + addiert.
18 / 27
Ubersicht: Schaltflachen
Konstante Wert Schaltflache
vbOkOnly 0 OKvbOkCancel 1 OK und AbbrechenvbAbortRetryIgnore 2 Abbrechen, Wiederholen und IgnorierenvbYesNoCancel 3 Ja, Nein und AbbrechenvbYesNo 4 Ja und NeinvbRetryCancel 5 Wiederholen und Abbrechen
Die Verwendung der Konstanten ist aussagekraftiger als die derWerte:
MsgBox "Das ist ein Test", 0, "Das ist der Titel"
MsgBox "Das ist ein Test", vbOkOnly , "Das ist der Titel"
19 / 27
Ubersicht: Ruckgabewerte von Schaltflachen
Konstante Wert gewahlte Schaltflache
vbOk 1 OKvbCancel 2 AbbrechenvbAbort 3 AbbrechenvbRetry 4 WiederholenvbIgnore 5 IgnorierenvbYes 6 JavbNo 7 Nein
20 / 27
Beispiel: Verwendung von Schaltflachen
’Abfrage von Essensgewohnheiten
Sub Essensgewohnheiten ()
Wahl = MsgBox("Waren Sie heute in der Mensa essen?",
vbYesNo + vbQuestion , "Essensgewohnheiten")
If Wahl = vbYes Then
MsgBox "Ein Mensabesucher!"
Else ’Wahl = vbNo
MsgBox "Ein Hobbykoch!"
End If
End Sub
21 / 27
Verzweigungen
I Bei Verzweigungen werden Programmteile abhangig von einerBedingung ausgewertet.
I Einseitige Auswahl
If Ausdruck Then
...
End If
If Temperatur >= -3 Then
MsgBox "Gefrierschrank
defekt"
End If
I Zweiseitige Auswahl
If Ausdruck Then
...
Else
...
End If
If Alter >= 18 Then
MsgBox "Normaltarif"
Else
MsgBox "Jugendtarif"
End If
22 / 27
Variablen
I Mit Hilfe von Variablen kann man (temporar) Werte speichernund diese in den Prozeduren verwenden.
I Der Wert einer Variablen kann durch eine Zuweisungverandert werden.
I Variablen werden uber Bezeichner (Variablennamen)referenziert.
I Die Deklaration einer Variablen ist das Vereinbaren einerVariablen vor ihrem ersten Gebrauch.
Dim Variablenname As Datentype
I Beispiele:
Dim Anzahl As Integer
Dim AusgabeText As String
Dim Alter As Integer , Temperatur As Integer
Dim Gestern As Date
23 / 27
Deklaration und Sichtbarkeit von Variablen
I Variablen, die im Deklarationsteil zu Beginn eines deklariertwerden, sind im gesamten Modul gultig.
I Variablen, die am Anfang einer Prozedur deklariert werden,sind nur innerhalb der Prozedur gultig.
I VBA erlaubt die implizite und explizite Deklaration vonVariablen.
Implizite Deklaration
I Variablen mussen vor ihrerersten Verwendung nichtdeklariert werden.
Explizite Deklaration
I Variablen mussen vor ihrerersten Verwendungdeklariert werden.
I Angabe von Option Explicit
zu Beginn des Modulserforderlich.
24 / 27
Beispiel: Verwendung von Variablen
’Dauer des Semesters
Sub AnzahlTage ()
Dim Heute As Date , Semesterende As Date , Ausgabe As
String
Heute = Date
Semesterende = DateValue("20.07.2013")
Ausgabe = "Bis zum Semesterende sind es noch " &
DateDiff("d", Heute , Semesterende) & " Tage."
MsgBox Ausgabe
End Sub
I Date ist der Datentyp fur ein Datum
I DateValue berechnet fur eine Datum im String-Format denWert im Datumsformat
I DateDiff liefert die Differenz in Tagen ("d") fur zweiDatumswerte.
25 / 27
Zusammenfassung
I Allgemeine Informationen zu VBA und Microsoft Office
I VBA-Entwicklungsumgebung
I Interaktion mit dem Benutzer uber MeldungsfensterI Programmieren in VBA
I ModuleI ProzedurenI Anweisungen (einfache Prozeduraufrufe, Kontrollstrukturen:
Verzweigungen, Zuweisungen)I Variablen
26 / 27