View
396
Download
1
Category
Preview:
Citation preview
Titel der Präsentation
Office-Entwicklung mit Visual Basic for
Applications
Microsoft Student Partner TechDay 28.02.2011
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: joern.bosse@studentpartners.de
1. VBA Grundlagen
-Was ist VBA?
2. Coding for Beginners
3. Officeübergreifendes VBA
2. Fragen
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
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
1. VBA Grundlagen
-Erstes Beispiel
2. Coding for Beginners
3. Officeübergreifendes VBA
2. Fragen
Beispiel „Hello World“ Schritt 1
7
Beispiel „Hello World“ – Schritt 2
8
Beispiel „Hello World“ – Schritt 3
9
1. VBA Grundlagen
2. Coding for Beginners
-Datentypen
3. Officeübergreifendes VBA
4. Fragen
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
Datentypen - Übersicht
• Weitere Datentypen
• - Char (1 Zeichen)
• - String (Zeichenkette, Maximal 256 Zeichen)
• - Bool (Wahrheitswert, 1 Bit)
• - Date (Gleitkommazahl mit Datum und Zeit)
12
1. VBA Grundlagen
2. Coding for Beginners
-Vergleichsoperatoren
3. Officeübergreifendes VBA
4. Fragen
Ü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
1. VBA Grundlagen
2. Coding for Beginners
-Entscheidungsstrukturen
3. Officeübergreifendes VBA
4. Fragen
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
Verknüpfung mit ElseIf
• Grundstruktur:
• IF….. THEN
• ……
• ELSEIF ….. THEN
• ……
• ELSE
• ……
• END IF
• Auswertung mehrerer möglicher bekannter
Ergebnisse
17
Beispiel IF-Klausel
18
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
Beispiel SELECT CASE
20
1. VBA Grundlagen
2. Coding for Beginners
-Schleifen
3. Officeübergreifendes VBA
4. Fragen
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
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
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
1. VBA Grundlagen
2. Coding for Beginners
-Funktionen und Subs
3. Officeübergreifendes VBA
4. Fragen
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
Beispiel Subroutinen
27
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
Beispiel Funktionen
29
1. VBA Grundlagen
2. Coding for Beginners
-Modifikatoren
3. Officeübergreifendes VBA
4. Fragen
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
1. VBA Grundlagen
2. Coding for Beginners
-Klassen
3. Officeübergreifendes VBA
4. Fragen
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
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
Beispiele - Klassencode
35
Beispiel - Aufruf einer Klasse
36
1. VBA Grundlagen
2. Coding for Beginners
3. Officeübergreifendes VBA
-Verweise
4. Fragen
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
Early-Binding: Verweis setzen
39
Early Binding: Codebeispiel
40
Late-Binding: Codebeispiel
41
1. VBA Grundlagen
2. Coding for Beginners
3. Officeübergreifendes VBA
-Livedemo
4. Fragen
1. VBA Grundlagen
2. Coding for Beginners
3. Officeübergreifendes VBA
4. Fragen
Noch Fragen ?
Vielen Dank für Ihre
Aufmerksamkeit
Recommended