• Keine Ergebnisse gefunden

Programmieren in Anwendungen

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmieren in Anwendungen"

Copied!
36
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmieren in Anwendungen

Annette Bieniusa

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

24.04.2014

(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 SS14

I Vorlesung: donnerstags, 17:15 - 19:00, in Raum 52-207

I Saal¨ubung: freitags, Fr 13:45h - 15:15h, in Raum 48-379

I Wenn m¨oglich, Raumwechsel in Terminalraum 32-411

I Flexibler Wechsel zwischen Vorlesung und ¨Ubung wegen der vielen Feiertage im Sommersemester

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

(4)

Fragen ¨ uber Fragen

I Vorwissen: Welche Veranstaltungen haben Sie bisher besucht?

I Informatik-Vorlesungen

I Programmierkurse

I Einf¨uhrung in Statistik oder Wahrscheinlichkeitsrechnung

I K¨onnen Sie selbst¨andig arbeiten?

I Abschluss: Klausur oder Projektausarbeitung?

I Was erwarten Sie von dieser Veranstaltung?

(5)

Fragen ¨ uber Fragen

I Vorwissen: Welche Veranstaltungen haben Sie bisher besucht?

I Informatik-Vorlesungen

I Programmierkurse

I Einf¨uhrung in Statistik oder Wahrscheinlichkeitsrechnung

I K¨onnen Sie selbst¨andig arbeiten?

I Abschluss: Klausur oder Projektausarbeitung?

I Was erwarten Sie von dieser Veranstaltung?

(6)

Fragen ¨ uber Fragen

I Vorwissen: Welche Veranstaltungen haben Sie bisher besucht?

I Informatik-Vorlesungen

I Programmierkurse

I Einf¨uhrung in Statistik oder Wahrscheinlichkeitsrechnung

I K¨onnen Sie selbst¨andig arbeiten?

I Abschluss: Klausur oder Projektausarbeitung?

I Was erwarten Sie von dieser Veranstaltung?

(7)

Fragen ¨ uber Fragen

I Vorwissen: Welche Veranstaltungen haben Sie bisher besucht?

I Informatik-Vorlesungen

I Programmierkurse

I Einf¨uhrung in Statistik oder Wahrscheinlichkeitsrechnung

I K¨onnen Sie selbst¨andig arbeiten?

I Abschluss: Klausur oder Projektausarbeitung?

I Was erwarten Sie von dieser Veranstaltung?

(8)

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 mit VBA in Word und Excel

Statistik und Grafiken mit R

I Einf¨uhrung in die Statistiksoftware R

I Wiederholung grundlegender Konzepte der Statistik und Datenanalyse

I Datenvisualisierung und Datenanalyse in R an ausgew¨ahlten Fallstudien

(9)

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 2010, 1.

Auflage, Okt 2010 (erh¨altlich im Rechenzentrum bzw.

HERDT-Verlag)

(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)

Microsoft Office-Anwendungen

Word Textverarbeitung, Seriendruck

Excel Tabellenkalkulation, Formeln, Diagramme Access Relationale

Datenbanken, Formulare

PowerPoint Folienpr¨asentation, Begleitmaterial Outlook E-Mail,

Terminplanung, Adressb¨ucher

(12)

Die VBA-Entwicklungsumgebung

(13)

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.

(14)

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.

(15)

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.

(16)

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

(17)

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!

(18)

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.

(19)

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

(20)

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.

(21)

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 "

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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.

(28)

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.

(29)

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

(30)

Ausblick

In der n¨achsten Vorlesung:

I Funktionen

I Datentypen

I Ausdr¨ucke (Konstanten, Operatoren)

I Kontrollstrukturen: Fallauswahl und Schleifen

(31)

Datentypen

I Der Datentyp definiert die Art sowie den Wertebereich einer Variablen oder Konstanten.

I Abh¨angig vom Datentyp wird Speicherplatz f¨ur Variablen bzw.

Konstanten reserviert.

I Bei impliziten Deklarationen wird in VBA der DatentypVariant

verwendet.

(32)

Ubersicht: Datentypen ¨

Integer % Ganze Zahlen -32.768 bis 32.767

Long & Ganze Zahlen -2.147.483.648 bis 2.147.483.647

Single ! Fliesskommazahlen 7 Ziffern Genauigkeit

Double # Fliesskommazahlen 15 Ziffern Genauigkeit

Currency @ Fliesskommazahlen 15 Vor- und 4 Nachkommastellen

String $ Zeichenketten bis zu 65.535 Zeichen

Date Datum und Uhrzeit

Boolean Logische Werte Trueund False

Variant Double,Stringoder Date

(33)

Datentypen in Variablendeklarationen

Dim V a r N a m e 1 As D a t e n t y p 1 , V a r N a m e 2 as D a t e n t y p 2 , ...

Dim V a r N a m e 1 T y p k e n n z e i c h e n , V a r N a m e 2 T y p k e n n z e i c h e n , ...

Beispiele:

Dim A l t e r As Integer, N a m e as S t r i n g Dim K u n d e n n u m m e r & , R e c h n u n g s b e t r a g @

I Numerische Variablen werden mit 0 initialisiert.

I Variant-Variablen werden mitEmpty initialisiert.

I String-Variablen werden mit “” (leerer String) initialisiert.

(34)

Umgang mit Datentypen

Sub E r m i t t l e M o n a t 1 () Dim s t r W e r t As S t r i n g

s t r W e r t = " 2 4 . 1 2 . 2 0 1 2 "

M s g B o x " M o n a t : " & Mid( strWert , 4 , 2) End Sub

Funktioniert nicht bei"strWert = "1.1.2012"!

Sub E r m i t t l e M o n a t 2 () Dim d a t W e r t As D a t e

d a t W e r t = # 1 2 / 2 4 / 2 0 1 2 #

M s g B o x " M o n a t : " & M o n t h( d a t W e r t ) End Sub

(35)

Umgang mit Datentypen

Sub E r m i t t l e M o n a t 1 () Dim s t r W e r t As S t r i n g

s t r W e r t = " 2 4 . 1 2 . 2 0 1 2 "

M s g B o x " M o n a t : " & Mid( strWert , 4 , 2) End Sub

Funktioniert nicht bei"strWert = "1.1.2012"!

Sub E r m i t t l e M o n a t 2 () Dim d a t W e r t As D a t e

d a t W e r t = # 1 2 / 2 4 / 2 0 1 2 #

M s g B o x " M o n a t : " & M o n t h( d a t W e r t ) End Sub

(36)

Umgang mit Datentypen

Sub E r m i t t l e M o n a t 1 () Dim s t r W e r t As S t r i n g

s t r W e r t = " 2 4 . 1 2 . 2 0 1 2 "

M s g B o x " M o n a t : " & Mid( strWert , 4 , 2) End Sub

Funktioniert nicht bei"strWert = "1.1.2012"!

Sub E r m i t t l e M o n a t 2 () Dim d a t W e r t As D a t e

d a t W e r t = # 1 2 / 2 4 / 2 0 1 2 #

M s g B o x " M o n a t : " & M o n t h( d a t W e r t ) End Sub

Referenzen

ÄHNLICHE DOKUMENTE

5 Kärtchen richtig aufeinanderlegen: unten Schlusskärtchen, Buchstaben von hinten nach vorne, oben Deckblatt.. 6 Seiten an den Linien

Wenn wir einen Buchstaben schreiben oder drucken, setzt sich die Buchstabenform aus geraden bzw. krummen und aus

Schneide die Puzzleteile aus, ordne sie und setze sie zu den Buchstaben zusammen.. Schneide die Puzzleteile aus, ordne sie und setze sie zu den

Lassen Sie Einzelbuchstaben dazu „kaufen“ und legen Sie so Reimwörter. Kanne (P-T) Rose (D-L-H-k)

[r]

Dem Kind werden die Wörter langsam vorgelesen und es muss sagen, welchen Buchstaben es vor einem bestimmten Buchstaben gehört hat?. Welchen Buchstaben hörst du vor

Wenn ich im Winter ohne Schuhe draußen spiele ist es mir noch Wenn ich im Winter nur in Badebekleidung draußen spiele ist es mir?. Das Gegenteil von kalt

• Statt alle Buchstaben des Alphabets in ei- nem Spiel zu verwenden, können auch nur die Vokal-Kartenpaare, die Lautgruppen- Kartenpaare oder aber die Kartenpaare mit für