27
Programmieren in Anwendungen Annette Bieniusa Technische Universit¨ at Kaiserslautern [email protected] 18.04.2013 1 / 27

Programmieren in Anwendungen - softech.informatik.uni-kl.de · kompatibel seit VB.NET) I Modul-orientiert und prozedural Literaturhinweis VBA-Programmierung - Integrierte L osungen

  • Upload
    dodang

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Programmieren in Anwendungen

Annette Bieniusa

Technische Universitat Kaiserslautern

[email protected]

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

Die VBA-Entwicklungsumgebung

10 / 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

Ausblick

In der nachsten Vorlesung:

I Funktionen

I Datentypen

I Ausdrucke (Konstanten, Operatoren)

I Kontrollstrukturen: Fallauswahl und Schleifen

27 / 27