Microsoft Student Partner TechDay 28.02.2011




                                Office-Entwicklung
                                    Titel der
                                mit Visual Basic for
                                   Applications
                                 Präsentation
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
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

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

Office-Programmierung mit VBA

  • 1.
    Microsoft Student PartnerTechDay 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 ichVBA-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
  • 7.
  • 8.
  • 9.
  • 10.
    1. VBA Grundlagen 2.Coding for Beginners -Datentypen 3. Officeübergreifendes VBA 4. Fragen
  • 11.
    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
  • 12.
    Datentypen - Übersicht • Weitere Datentypen • - Char (1 Zeichen) • - String (Zeichenkette, Maximal 256 Zeichen) • - Bool (Wahrheitswert, 1 Bit) • - Date (Gleitkommazahl mit Datum und Zeit) 12
  • 13.
    1. VBA Grundlagen 2.Coding for Beginners -Vergleichsoperatoren 3. Officeübergreifendes VBA 4. 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
  • 15.
    1. VBA Grundlagen 2.Coding for Beginners -Entscheidungsstrukturen 3. Officeübergreifendes VBA 4. Fragen
  • 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
  • 18.
  • 19.
    Entscheidungsstrukturen - SELECTCASE • Grundstruktur: Select Case …. Case 1 ……. Case 2 ……. Case Else ……. End Select • Einleitung mit SELECT Case, Abschluss mit END Select • Keine Verschachtelung möglich 19
  • 20.
  • 21.
    1. VBA Grundlagen 2.Coding for Beginners -Schleifen 3. Officeübergreifendes VBA 4. Fragen
  • 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
  • 27.
  • 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
  • 29.
  • 30.
    1. VBA Grundlagen 2.Coding for Beginners -Modifikatoren 3. Officeübergreifendes VBA 4. Fragen
  • 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
  • 32.
    1. VBA Grundlagen 2.Coding for Beginners -Klassen 3. Officeübergreifendes VBA 4. Fragen
  • 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
  • 35.
  • 36.
    Beispiel - Aufrufeiner Klasse 36
  • 37.
    1. VBA Grundlagen 2.Coding for Beginners 3. Officeübergreifendes VBA -Verweise 4. Fragen
  • 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
  • 39.
  • 40.
  • 41.
  • 42.
    1. VBA Grundlagen 2.Coding for Beginners 3. Officeübergreifendes VBA -Livedemo 4. Fragen
  • 44.
    1. VBA Grundlagen 2. Coding for Beginners 3. Officeübergreifendes VBA 4. Fragen
  • 45.
  • 46.
    Vielen Dank fürIhre Aufmerksamkeit