1. Microsoft Student Partner TechDay 28.02.2011
Office-Entwicklung
Titel der
mit Visual Basic for
Applications
Präsentation
2. Vorstellung
• 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
2
3. 1. VBA Grundlagen
-Was ist VBA?
2. Coding for Beginners
3. Officeübergreifendes VBA
2. Fragen
4. 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
5. 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
6. 1. VBA Grundlagen
-Erstes Beispiel
2. Coding for Beginners
3. Officeübergreifendes VBA
2. Fragen
14. Ü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
16. 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
17. Verknüpfung mit ElseIf
• Grundstruktur:
• IF….. THEN
• ……
• ELSEIF ….. THEN
• ……
• ELSE
• ……
• END IF
• Auswertung mehrerer möglicher bekannter
Ergebnisse
17
19. 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
22. 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
23. 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
24. 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
25. 1. VBA Grundlagen
2. Coding for Beginners
-Funktionen und Subs
3. Officeübergreifendes VBA
4. Fragen
26. 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
28. 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
31. 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
33. 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
34. 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
38. 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
Early-Binding Late-Binding
-Verweis auf das Objekt setzen -Ein Objekt vom Typ „Object“
->Objekt ist bekannt deklarieren
->IntelliSense ist verfügbar -mittels GetObject auf bestehende
zugreifen
-mittels CreateObject ein neues
Objekt instanziieren
->Kein Intellisense verfügbar
38