Office-Programmierung mit VBA

46
Titel der Präsentation Office-Entwicklung mit Visual Basic for Applications Microsoft Student Partner TechDay 28.02.2011

Transcript of Office-Programmierung mit VBA

Page 1: Office-Programmierung mit VBA

Titel der Präsentation

Office-Entwicklung mit Visual Basic for

Applications

Microsoft Student Partner TechDay 28.02.2011

Page 2: Office-Programmierung mit VBA

Vorstellung

2

• Jörn Bosse

• Wirtschaftsingenieurwesen-Maschinenbau

• TU-Ilmenau

• Microsoft Community Student Partner

• MCC für MS Access&SQL-Server

• .NET und VBA Entwickler

Kontakt: [email protected]

Page 3: Office-Programmierung mit VBA

1. VBA Grundlagen

-Was ist VBA?

2. Coding for Beginners

3. Officeübergreifendes VBA

2. Fragen

Page 4: Office-Programmierung mit VBA

Was ist VBA?

• Visual Basic for Applications

• Von Basic abgeleiteter Dialekt

• Prozedurale Sprache

• Bietet keine Integration in .NET

• Findet man in vielen Anwendungen um diese

automatisieren zu können

• Beispiele: MS-Office, Autodesk-Software(Inventor)

• Office für Mac 2011 unterstützt wieder VBA

4

Page 5: Office-Programmierung mit VBA

Wie schreibe ich VBA-Code?

• Jedes Wirtsprogramm stellt einen VBA-Editor zur

Verfügung, mit dem Code geschrieben, debuggt und

vorkompiliert werden kann

• VBA-Editor in Office über ALT+F11 erreichbar

• Alternativ über das Menüband erreichbar

5

Page 6: Office-Programmierung mit VBA

1. VBA Grundlagen

-Erstes Beispiel

2. Coding for Beginners

3. Officeübergreifendes VBA

2. Fragen

Page 7: Office-Programmierung mit VBA

Beispiel „Hello World“ Schritt 1

7

Page 8: Office-Programmierung mit VBA

Beispiel „Hello World“ – Schritt 2

8

Page 9: Office-Programmierung mit VBA

Beispiel „Hello World“ – Schritt 3

9

Page 10: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Datentypen

3. Officeübergreifendes VBA

4. Fragen

Page 11: Office-Programmierung mit VBA

Datentypen - Übersicht

• Numerische Datentypen:

• - Byte (0 bis 255)

• - Integer (−32.768 bis 32.767)

• - Long (−2.147.483.648 bis 2.147.483.647)

• - Single (1,5·10−45 bis 3,4·1038 , 8 Stellen)

• - Double (5,0·10−324 bis 1,7·10308 , 16 Stellen)

11

Page 12: Office-Programmierung mit VBA

Datentypen - Übersicht

• Weitere Datentypen

• - Char (1 Zeichen)

• - String (Zeichenkette, Maximal 256 Zeichen)

• - Bool (Wahrheitswert, 1 Bit)

• - Date (Gleitkommazahl mit Datum und Zeit)

12

Page 13: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Vergleichsoperatoren

3. Officeübergreifendes VBA

4. Fragen

Page 14: Office-Programmierung mit VBA

Übersicht Vergleichsoperatoren

Operator Bedeutung

= Vergleich ob Werte „gleich“ sind

<> Vergleich ob Werte „ungleich“ sind

< Wert Links kleiner als Wert Rechts

> Wert Rechts kleiner als Wert Links

<= Wert Links kleiner oder gleich Wert Rechts

>= analog

14

Page 15: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Entscheidungsstrukturen

3. Officeübergreifendes VBA

4. Fragen

Page 16: Office-Programmierung mit VBA

Entscheidungen – IF-Klausel

• Grundstruktur:

• IF….. THEN

• ……

• ELSE

• ……

• END IF

• Verschachtelung beliebig oft möglich

• Abschluss mit END IF nur nötig bei mehreren Zeilen

16

Page 17: Office-Programmierung mit VBA

Verknüpfung mit ElseIf

• Grundstruktur:

• IF….. THEN

• ……

• ELSEIF ….. THEN

• ……

• ELSE

• ……

• END IF

• Auswertung mehrerer möglicher bekannter

Ergebnisse

17

Page 18: Office-Programmierung mit VBA

Beispiel IF-Klausel

18

Page 19: Office-Programmierung mit VBA

Entscheidungsstrukturen - SELECT CASE

• Grundstruktur:

Select Case ….

Case 1

…….

Case 2

…….

Case Else

…….

End Select

• Einleitung mit SELECT Case, Abschluss mit

END Select

• Keine Verschachtelung möglich

19

Page 20: Office-Programmierung mit VBA

Beispiel SELECT CASE

20

Page 21: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Schleifen

3. Officeübergreifendes VBA

4. Fragen

Page 22: Office-Programmierung mit VBA

For-Schleife

• Syntax:

For i = 0 To 100 Step 1

…….

i = i+1

Next i

• Vorteilhaft bei bekannter Anzahl von

Schleifendurchläufen

• Bedingung wird am Anfang der Schleife überprüft

22

Page 23: Office-Programmierung mit VBA

While-Schleife

• Syntax:

While Bedingung=False/True

.........

Wend

• Überprüfung am Anfang einer der Schleife

• Abschluss mit Wend (While End)

• Sollte bei einer unbekannten Anzahl von Durchläufen

genutzt werden

23

Page 24: Office-Programmierung mit VBA

Do-Loop Schleife

• Syntax (Bedingung am Anfang) Do Until Bedingung=False/True

……….

Loop

• Syntax (Bedingung am Ende) Do

……….

Loop Until Bedingung=False/True

• Bei der Bedingung am Ende wird die Schleife

mindestens einmal durchgelaufen

• Sollte bei einer unbekannten Anzahl an Durchläufen

eingesetzt werden.

24

Page 25: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Funktionen und Subs

3. Officeübergreifendes VBA

4. Fragen

Page 26: Office-Programmierung mit VBA

Subroutinen

• Subroutinen sind Prozeduren, die keinen

Rückgabewert haben

• Können mit oder ohne Parameter genutzt werden

• Syntax: Sub NameDerSub()

……

End Sub

Sub NameDerSub(Parameter1 As Integer, Parameter2 As String)

……

End Sub

26

Page 27: Office-Programmierung mit VBA

Beispiel Subroutinen

27

Page 28: Office-Programmierung mit VBA

Funktionen

• Haben einen bestimmten Datentyp als Rückgabewert

• Können ohne und mit Parametern aufgerufen werden

• Syntax: • Function Funktion1() As Integer

» Funktion1 = 1

• End Function

• Function Funktion2(a As Integer, b As Integer) As Integer

» Funktion2 = a+b

• End Function

28

Page 29: Office-Programmierung mit VBA

Beispiel Funktionen

29

Page 30: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Modifikatoren

3. Officeübergreifendes VBA

4. Fragen

Page 31: Office-Programmierung mit VBA

Modifikatoren

Modifikator Einsatzort Bemerkung

Dim Überall Je nach Deklarierungsort Sichtbar

Public Sub/Funct Modul oder Klasse, Sichtbar für alle Subs/Functions

Private Überall Nur für Sub/Function/Modul/Klasse

Friend Klassen Nur für Subs und Functions innerhalb von Klassen

31

Page 32: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

-Klassen

3. Officeübergreifendes VBA

4. Fragen

Page 33: Office-Programmierung mit VBA

Klassen

• Einfügen von Klassenmodulen

• Erstellung von Membervariabeln

• Erstellung von Funktionen und Subroutinen

• Erstellung von Properties

• Achtung: VBA kennt nur den Standardkonstruktor

• Überladung demnach nicht möglich

33

Page 34: Office-Programmierung mit VBA

Klassen - Properties

• Eigenschaften von Variablen

• Einsatz bei privaten Membervariabeln

• Bestehen aus einem Getter, einem Setter und einem

Letter

• Get stellt den Wert der Variable zur Verfügung

• Set und Let schreiben Werte an die Membervariable

• Set wird bei privaten Objekten genutzt

• Let wird bei allen anderen privaten Objekten genutzt

34

Page 35: Office-Programmierung mit VBA

Beispiele - Klassencode

35

Page 36: Office-Programmierung mit VBA

Beispiel - Aufruf einer Klasse

36

Page 37: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

3. Officeübergreifendes VBA

-Verweise

4. Fragen

Page 38: Office-Programmierung mit VBA

Verweise setzen

• Verweise werden benötigt, um auf das Objektmodell

der gewünschten Applikation zugreifen zu können

• Einbinden ist möglich mittels Early-Binding oder Late-

Binding

38

Early-Binding Late-Binding

-Verweis auf das Objekt setzen

->Objekt ist bekannt

->IntelliSense ist verfügbar

-Ein Objekt vom Typ „Object“

deklarieren

-mittels GetObject auf bestehende

zugreifen

-mittels CreateObject ein neues

Objekt instanziieren

->Kein Intellisense verfügbar

Page 39: Office-Programmierung mit VBA

Early-Binding: Verweis setzen

39

Page 40: Office-Programmierung mit VBA

Early Binding: Codebeispiel

40

Page 41: Office-Programmierung mit VBA

Late-Binding: Codebeispiel

41

Page 42: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

3. Officeübergreifendes VBA

-Livedemo

4. Fragen

Page 43: Office-Programmierung mit VBA
Page 44: Office-Programmierung mit VBA

1. VBA Grundlagen

2. Coding for Beginners

3. Officeübergreifendes VBA

4. Fragen

Page 45: Office-Programmierung mit VBA

Noch Fragen ?

Page 46: Office-Programmierung mit VBA

Vielen Dank für Ihre

Aufmerksamkeit