• Keine Ergebnisse gefunden

Programmieren in Anwendungen

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmieren in Anwendungen"

Copied!
29
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmieren in Anwendungen

Annette Bieniusa

Technische Universit¨at Kaiserslautern bieniusa@cs.uni-kl.de

23.04.2015

(2)

Uberblick ¨

Organisatorisches

Einf¨uhrung in VBA Was ist VBA?

Entwicklungsumgebung Arbeiten mit Makros

(3)

Administratives

I Homepage mit Informationen und Material

http://softech.informatik.uni-kl.de/Homepage/PIA SS15

I Vorlesung: donnerstags, 17:15 - 19:00, in Raum 48-379

I Ubungen: freitags, 13:45 - 15:15 Raum 32-411¨

I Bitte im KIS anmelden, um aktuelle Informationen per Email zu erhalten!

(4)

Pr¨ ufungsmodalit¨ aten

I Ubungen werden nicht korrigiert, aber gemeinsam besprochen¨

I M¨undliche Pr¨ufung

I Zulassungsvoraussetzung: Projektausarbeitung am Semesterende (Bearbeitungszeit: 3 Wochen)

(5)

Themen

Visual Basic for Applications(VBA)

I Wiederholung grundlegender Konzepte der imperativen Programmierung anhand der Programmiersprache VB (Visual Basic)

I Einf¨uhrung in die ereignisorientierte Programmierung

I Anwendungsbeispiele in Word, Excel, Powerpoint und Outlook

Statistik und Grafiken mit R

I Einf¨uhrung in die Statistiksoftware R

I Wiederholung grundlegender Konzepte der Statistik und Datenanalyse

I Datenvisualisierung und Datenanalyse anhand von Fallstudien

(6)

Vorwissen

Vorwissen: Welche Veranstaltungen haben Sie bisher besucht?

I Informatik-Vorlesungen

I Programmierkurse

I Einf¨uhrung in Statistik oder Wahrscheinlichkeitsrechnung

(7)

Warum sind Sie hier?

Was erwarten Sie von der Veranstaltung?

Welche Themen wollen Sie gerne vertiefend behandeln?

(8)

Visual Basic for Applications (VBA)

I Skriptsprache zur Automatisierung und Anpassung von Microsoft Office Programmen

I Basiert auf der Syntax von Visual Basic (nicht mehr kompatibel seit VB.NET)

I Propriet¨arer Microsoft-Standard

I Modul-orientiert und prozedural

Literaturhinweis

VBA-Programmierung - Integrierte L¨osungen mit Office 2013, 1.

Auflage, Okt 2013 (erh¨altlich im HERDT-Verlag)

(9)

Microsoft Office-Anwendungen

Word Textverarbeitung, Seriendruck

Excel Tabellenkalkulation, Formeln, Diagramme Access Relationale

Datenbanken, Formulare

PowerPoint Folienpr¨asentation, Begleitmaterial Outlook E-Mail,

Terminplanung, Adressb¨ucher

(10)

Typische Einsatzgebiete

I Automatisiertes Erzeugen von Dokumenten wie Serienbriefen

I Benutzerdefinierte Dialogfenster oder Fehlermeldungen

I Dokumentstatistiken erstellen

I Daten aus anderen Anwendungen einbinden (insbesondere Access-Datenbanken)

I Einbinden von Funktionalit¨at spezifischer Office-Anwendungen (integrierte L¨osungen)

I Umsatz- und Budgetzahlen aus einer Access-Datenbank werden in Excel ausgewertet und visualisiert.

I Umfangreiche Excel-Tabellen k¨onnen ¨uber Word kompakt gedruckt werden.

(11)

Die VBA-Entwicklungsumgebung

(12)

Elemente der VBA-Entwicklungsumgebung

Editor, Werkzeuge, Projektverwaltung

Projekt-Explorer gibt eine hierarchisch geordnete ¨Ubersicht von allen Elemente eines Projekts.

Eigenschaftenfenster listet die Eigenschaften und aktuellen Eigenschaftswerte des markierten Elements.

Code-Fenster/Modulfenster dient zum Eingeben und Bearbeiten des Programmcodes.

Direktfenster erlaubt es einzelne Anweisungen direkt auszuf¨uhren.

Lokal-Fenster zeigt die Werte aller lokaler Variablen im Debug-Modus an.

(13)

Module

I VBA-Programme bestehen aus einer Kombination von Modulen.

I Jedes Modul enth¨alt Deklarationen von Konstanten, Variablen und Prozeduren.

Standardmodule sind f¨ur ein gesamtes Projekt g¨ultig.

Klassenmodule definieren ein neues Objekt mit

zugeh¨origen Eigenschaften und Methoden.

Dokumentenmodule sind an ein konkretes Dokument gebunden.

UserForm-Dialoge geh¨oren zu einem benutzerdefinierten Formular und beinhalten die zugeh¨origen Ereignisprozeduren.

(14)

Organisation von Modulen

I Module k¨onnen an ganze Dateien oder an einzelne Dateielemente gebunden werden.

I Gruppieren Sie Prozeduren, die zusammen geh¨oren, in jeweils eigene Module!

I Benennen Sie Module mit aussagekr¨aftigen Namen (z.B.

Verwaltung oderDokumentstatistik) statt der automatisch erzeugten NamenModul1,Modul2, etc. !

I Module k¨onnen exportiert und importiert werden. Beim Exportieren werden sie in Textdateien mit der Dateiendung

*.bas gespeichert.

(15)

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 P r o z e d u r n a m e () ...

End Sub

I Syntax von Prozeduraufrufen (ohne Parameter)

P r o z e d u r n a m e C a l l P r o z e d u r n a m e

(16)

Prozedurnamen und andere Bezeichner

I Bezeichner sind frei w¨ahlbare Namen, mit denen Prozeduren, Variablen und Konstanten benannt werden.

I Sie d¨urfen nicht mit Schl¨usselw¨ortern ¨ubereinstimmen.

I Sie m¨ussen mit einem Buchstaben beginnen und k¨onnen bis zu 255 Buchstaben, Zahlen oder Unterstriche enthalten, jedoch keine Punkte oder Leerzeichen.

I VBA ist nichtcase sensitive, d.h. Groß- und Kleinschreibung werden nicht unterschieden.

I Bezeichner sollten eindeutig und aussagekr¨aftig sein!

(17)

Beispiel: Meldungsfenster mit allgemeiner Information

’ I n f o r m a t i o n zu D a t u m und A n w e n d u n g Sub A l l g e m e i n e I n f o ()

M s g B o x " H e u t e ist " & D a t e & " und Sie a r b e i t e n mit " &

A p p l i c a t i o n .N a m e End Sub

I Kommentare beginnen mit ’.

I Mit & werden Zeichenketten (Strings) zusammengef¨ugt (Konkatenation).

I Date liefert das Datum des heutigen Tages.

I Auf Eigenschaften von Objekten (wie z.B.Application) wird mit .zugegriffen.

(18)

Meldungsfenster

I Meldungsfenster k¨onnen dazu genutzt werden, dem Benutzer Informationen mitzuteilen und auch abzufragen. Sie bestehen aus demMeldungstext und standardm¨aßig der Schaltfl¨ache

“OK”. Sie kann optional mit einem Titel,

Informationssymbolen und weiteren Schaltfl¨achen erg¨anzt werden.

I Einfaches Meldungsfenster

M s g B o x " M e l d u n g s t e x t "

I Meldungsfenster mit Titel und Informationssymbol

M s g B o x " M e l d u n g s t e x t ", v b I n f o r m a t i o n , " T i t e l "

I Andere Symbole: vbCritical,vbQuestion,vbExclamation

(19)

Meldungsfenster mit R¨ uckgabewert

I Uber¨ Schaltfl¨achen (Buttons)kann der Benutzer die Anwendung interaktiv steuern.

E r g e b n i s w e r t = M s g B o x (" T e x t ", B u t t o n s + Symbole , "

T i t e l ")

I Mit R¨uckgabewert werden die Parameter in Klammern angegeben!

I Um Schaltfl¨achen mit Symbolen zu kombinieren, werden diese mit +addiert.

(20)

Ubersicht: Schaltfl¨ ¨ achen

Konstante Wert Schaltfl¨ache

vbOkOnly 0 OK

vbOkCancel 1 OK und Abbrechen

vbAbortRetryIgnore 2 Abbrechen, Wiederholen und Ignorieren

vbYesNoCancel 3 Ja, Nein und Abbrechen

vbYesNo 4 Ja und Nein

vbRetryCancel 5 Wiederholen und Abbrechen

Die Verwendung der Konstanten ist aussagekr¨aftiger als die der Werte:

M s g B o x " Das ist ein T e s t ", 0 , " Das ist der T i t e l "

M s g B o x " Das ist ein T e s t ", v b O k O n l y , " Das ist der T i t e l "

(21)

Ubersicht: R¨ ¨ uckgabewerte von Schaltfl¨ achen

Konstante Wert gew¨ahlte Schaltfl¨ache

vbOk 1 OK

vbCancel 2 Abbrechen

vbAbort 3 Abbrechen

vbRetry 4 Wiederholen

vbIgnore 5 Ignorieren

vbYes 6 Ja

vbNo 7 Nein

(22)

Beispiel: Verwendung von Schaltfl¨ achen

’ A b f r a g e von E s s e n s g e w o h n h e i t e n Sub E s s e n s g e w o h n h e i t e n ()

W a h l = M s g B o x(" W a r e n Sie h e u t e in der M e n s a e s s e n ? ", v b Y e s N o + v b Q u e s t i o n , " E s s e n s g e w o h n h e i t e n ") If W a h l = v b Y e s T h e n

M s g B o x " Ein M e n s a b e s u c h e r ! "

E l s e ’ W a h l = v b N o

M s g B o x " Ein H o b b y k o c h ! "

End If End Sub

(23)

Verzweigungen

I Bei Verzweigungen werden Programmteile abh¨angig von einer Bedingung ausgewertet.

I Einseitige Auswahl

If A u s d r u c k T h e n ...

End If

If T e m p e r a t u r >= -3 T h e n M s g B o x " G e f r i e r s c h r a n k

d e f e k t "

End If

I Zweiseitige Auswahl

If A u s d r u c k T h e n ...

E l s e ...

End If

If A l t e r >= 18 T h e n M s g B o x " N o r m a l t a r i f "

E l s e

M s g B o x " J u g e n d t a r i f "

End If

(24)

Verzweigungen

Mehrstufige Auswahl

If A u s d r u c k 1 T h e n ...

E l s e I f A u s d r u c k 2 T h e n ...

E l s e I f A u s d r u c k 3 T h e n ...

E l s e ...

End If

If T e m p e r a t u r < 0 T h e n M s g B o x " F r o s t ! "

E l s e I f T e m p e r a t u r < 20 T h e n M s g B o x "

D u r c h s c h n i t t s t e m p e r a t u r

"

E l s e I f T e m p e r a t u r < 30 T h e n M s g B o x " S o m m e r f e e l i n g "

E l s e

M s g B o x " H i t z e w e l l e ! "

End If

(25)

Variablen

I Mit Hilfe von Variablen kann man (tempor¨ar) Werte speichern und diese in den Prozeduren verwenden.

I Der Wert einer Variablen kann durch eine Zuweisung ver¨andert werden.

I Variablen werden ¨uber Bezeichner (Variablennamen) referenziert.

I Die Deklarationeiner Variablen ist das Vereinbaren einer Variablen vor ihrem ersten Gebrauch.

Dim V a r i a b l e n n a m e As D a t e n t y p e

I Beispiele:

Dim A n z a h l As I n t e g e r Dim A u s g a b e T e x t As S t r i n g

Dim A l t e r As Integer, T e m p e r a t u r As I n t e g e r Dim G e s t e r n As D a t e

(26)

Deklaration und Sichtbarkeit von Variablen

I Variablen, die im Deklarationsteil zu Beginn eines deklariert werden, sind im gesamten Modul g¨ultig.

I Variablen, die am Anfang einer Prozedur deklariert werden, sind nur innerhalb der Prozedur g¨ultig.

I VBA erlaubt die implizite und explizite Deklaration von Variablen.

Implizite Deklaration

I Variablen m¨ussen vor ihrer ersten Verwendung nicht deklariert werden.

Explizite Deklaration

I Variablen m¨ussen vor ihrer ersten Verwendung

deklariert werden.

I Angabe von Option Explicit

zu Beginn des Moduls erforderlich.

(27)

Beispiel: Verwendung von Variablen

’ D a u e r des S e m e s t e r s Sub A n z a h l T a g e ()

Dim H e u t e As Date, S e m e s t e r e n d e As Date, A u s g a b e As S t r i n g

H e u t e = D a t e

S e m e s t e r e n d e = D a t e V a l u e(" 2 5 . 0 7 . 2 0 1 4 ")

A u s g a b e = " Bis zum E n d e der V o r l e s u n g s z e i t s i n d es n o c h " & D a t e D i f f(" d ", Heute , S e m e s t e r e n d e ) & "

T a g e . "

M s g B o x A u s g a b e End Sub

I Date ist der Datentyp f¨ur ein Datum

I DateValue berechnet f¨ur eine Datum im String-Format den Wert im Datumsformat

I DateDiff liefert die Differenz in Tagen ("d") f¨ur zwei Datumswerte.

(28)

Zusammenfassung

I Allgemeine Informationen zu VBA und Microsoft Office

I VBA-Entwicklungsumgebung

I Interaktion mit dem Benutzer ¨uber Meldungsfenster

I Programmieren in VBA

I Module

I Prozeduren

I Anweisungen (einfache Prozeduraufrufe, Kontrollstrukturen:

Verzweigungen, Zuweisungen)

I Variablen

(29)

Ausblick

In der n¨achsten Vorlesung:

I Programmierbasics:

I Funktionen

I Datentypen

I Ausdr¨ucke (Konstanten, Operatoren)

I Kontrollstrukturen: Fallauswahl und Schleifen

I Objekte in Word und Excel

Referenzen

ÄHNLICHE DOKUMENTE

I Der Datentyp definiert die Art sowie den Wertebereich einer Variablen oder Konstanten.. I Abh¨ angig vom Datentyp wird Speicherplatz f¨ ur

I Ein Punktsch¨ atzer sch¨ atzt eine relevante Kenngr¨ oße einer Verteilung durch die Angabe eines einzelnen Wertes.. I Beispiel: Ein Sch¨ atzer f¨ ur den

I Lineare Abh¨ angigkeit der abh¨ angigen Variablen von den einzelnen Faktoren.. Kunden, die diesen Artikel gekauft haben,

I Variablen, die am Anfang einer Prozedur deklariert werden, sind nur innerhalb der Prozedur g¨ ultig. I VBA erlaubt die implizite und explizite Deklaration

I Ausdr¨ ucke: Variablen, Konstanten, zusammengesetzte Ausdr¨ ucke mit Operatoren, Funktionsaufrufe. I Anweisungen (Statements): Prozeduraufrufe, Kontrollstrukturen

I Die CreateObject -Funktion startet die zugrunde liegende Anweisung und liefert einen Objektverweis auf eine neue Objektinstanz zur¨ uck. I Mit dem Sch¨ usselwort New wird die

Eine reelle Zufallsvariable ist eine Funktion X : Ω −→ R , die jedem Ereignis ω ∈ Ω eine reelle Zahl X (ω) zuordnet und, dass die Menge aller Ereignisse, deren

data=w, (Definition eigener Data frame) aes(group=x, (Linien nach Kriterium x) color=x), (Farben der Kriterien). position=“z“ (Anordnung der