SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Señalética Rentas Aristobulo Misiones
Señalética Rentas Aristobulo MisionesSeñalética Rentas Aristobulo Misiones
Señalética Rentas Aristobulo MisionesSeñaletik
 
El amigo inoportuno
El amigo inoportunoEl amigo inoportuno
El amigo inoportunoestenava
 
Comandos sql en mysql
Comandos sql en mysqlComandos sql en mysql
Comandos sql en mysqlElena Pizarro
 
Microcontroladores Ciscx
Microcontroladores CiscxMicrocontroladores Ciscx
Microcontroladores CiscxElohim Flores
 
Derrame Cerebral
Derrame CerebralDerrame Cerebral
Derrame Cerebralsubofdelmer
 
Z 10166 Poder De SíNtesis
Z 10166   Poder De SíNtesisZ 10166   Poder De SíNtesis
Z 10166 Poder De SíNtesissubofdelmer
 
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten Akteure
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten AkteureEinsatz personalisierter iPads im Unterricht aus Sicht der beteiligten Akteure
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten AkteureKerstin Mayrberger
 
Conectores y puertos de comunicación
Conectores y puertos de comunicaciónConectores y puertos de comunicación
Conectores y puertos de comunicaciónies foramontanos
 
Hablemos de Social Media
Hablemos de Social MediaHablemos de Social Media
Hablemos de Social MediaHoempler
 
Usergroup02 Berlin IE8
Usergroup02 Berlin IE8Usergroup02 Berlin IE8
Usergroup02 Berlin IE8mspgermany
 
Ojoconloscajeros
OjoconloscajerosOjoconloscajeros
Ojoconloscajerossubofdelmer
 
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...Hans-Dieter Zimmermann
 
Nachdenken über Informationskompetenz
Nachdenken über InformationskompetenzNachdenken über Informationskompetenz
Nachdenken über InformationskompetenzThomas Hapke
 
Black Hat SEO
Black Hat SEOBlack Hat SEO
Black Hat SEOHoempler
 

En vedette (20)

Señalética Rentas Aristobulo Misiones
Señalética Rentas Aristobulo MisionesSeñalética Rentas Aristobulo Misiones
Señalética Rentas Aristobulo Misiones
 
El amigo inoportuno
El amigo inoportunoEl amigo inoportuno
El amigo inoportuno
 
Orientación y TIC_Equipo Orientación Liceo Castilla
Orientación y TIC_Equipo Orientación Liceo CastillaOrientación y TIC_Equipo Orientación Liceo Castilla
Orientación y TIC_Equipo Orientación Liceo Castilla
 
Fantasia
FantasiaFantasia
Fantasia
 
Comandos sql en mysql
Comandos sql en mysqlComandos sql en mysql
Comandos sql en mysql
 
Microcontroladores Ciscx
Microcontroladores CiscxMicrocontroladores Ciscx
Microcontroladores Ciscx
 
Thunders
ThundersThunders
Thunders
 
Derrame Cerebral
Derrame CerebralDerrame Cerebral
Derrame Cerebral
 
Alba
AlbaAlba
Alba
 
Z 10166 Poder De SíNtesis
Z 10166   Poder De SíNtesisZ 10166   Poder De SíNtesis
Z 10166 Poder De SíNtesis
 
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten Akteure
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten AkteureEinsatz personalisierter iPads im Unterricht aus Sicht der beteiligten Akteure
Einsatz personalisierter iPads im Unterricht aus Sicht der beteiligten Akteure
 
Conectores y puertos de comunicación
Conectores y puertos de comunicaciónConectores y puertos de comunicación
Conectores y puertos de comunicación
 
DOC001
DOC001DOC001
DOC001
 
Hablemos de Social Media
Hablemos de Social MediaHablemos de Social Media
Hablemos de Social Media
 
Usergroup02 Berlin IE8
Usergroup02 Berlin IE8Usergroup02 Berlin IE8
Usergroup02 Berlin IE8
 
Ojoconloscajeros
OjoconloscajerosOjoconloscajeros
Ojoconloscajeros
 
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...
Die Nutzung von Social Media als Mittel der ePartizipation – ein Beispiel aus...
 
6860 m101358 07
6860 m101358 076860 m101358 07
6860 m101358 07
 
Nachdenken über Informationskompetenz
Nachdenken über InformationskompetenzNachdenken über Informationskompetenz
Nachdenken über Informationskompetenz
 
Black Hat SEO
Black Hat SEOBlack Hat SEO
Black Hat SEO
 

Similaire à Office-Programmierung mit VBA

Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerNETUserGroupBern
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...André Krämer
 
Unit Tests für Totalverweigerer
Unit Tests für TotalverweigererUnit Tests für Totalverweigerer
Unit Tests für TotalverweigererPeter Hauke
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Community ITmitte.de
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Torsten Kleiber
 
Nebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenNebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenJörn Dinkla
 
Text Template Transformation Toolkit (T4)
Text Template Transformation Toolkit (T4)Text Template Transformation Toolkit (T4)
Text Template Transformation Toolkit (T4)NETUserGroupBern
 
FMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinFMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinVerein FM Konferenz
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010mspgermany
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Gerrit Beine
 
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012Javatim
 
Metaprogrammierung mit Ruby
Metaprogrammierung mit RubyMetaprogrammierung mit Ruby
Metaprogrammierung mit RubyDario Rexin
 
Javascript done right
Javascript done rightJavascript done right
Javascript done rightDirk Ginader
 
Python Bootcamp - Grundlagen
Python Bootcamp - GrundlagenPython Bootcamp - Grundlagen
Python Bootcamp - GrundlagenDatamics
 
Clean code in ABAP
Clean code in ABAPClean code in ABAP
Clean code in ABAPCadaxo GmbH
 

Similaire à Office-Programmierung mit VBA (20)

Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
 
Unit Tests für Totalverweigerer
Unit Tests für TotalverweigererUnit Tests für Totalverweigerer
Unit Tests für Totalverweigerer
 
PHP mit Paul Bocuse
PHP mit Paul BocusePHP mit Paul Bocuse
PHP mit Paul Bocuse
 
Column Stores
Column StoresColumn Stores
Column Stores
 
IntelliJ für Flex
IntelliJ für FlexIntelliJ für Flex
IntelliJ für Flex
 
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Pa...
 
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
Plsql drum test automatisiere, wer sich sich ewig bindet! - DOAG 2017
 
Nebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins KoroutinenNebenläufigkeit mit Kotlins Koroutinen
Nebenläufigkeit mit Kotlins Koroutinen
 
Text Template Transformation Toolkit (T4)
Text Template Transformation Toolkit (T4)Text Template Transformation Toolkit (T4)
Text Template Transformation Toolkit (T4)
 
Relevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und SolrRelevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und Solr
 
FMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinFMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold Kegebein
 
Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010Softwarequalität mit Visual Studio 2010
Softwarequalität mit Visual Studio 2010
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)
 
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012
Vortrag Dirk Weil Gute zeilen, schlechte Zeilen auf der JAX 2012
 
Metaprogrammierung mit Ruby
Metaprogrammierung mit RubyMetaprogrammierung mit Ruby
Metaprogrammierung mit Ruby
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Python Bootcamp - Grundlagen
Python Bootcamp - GrundlagenPython Bootcamp - Grundlagen
Python Bootcamp - Grundlagen
 
Clean code in ABAP
Clean code in ABAPClean code in ABAP
Clean code in ABAP
 

Plus de mspgermany

Windows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetWindows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetmspgermany
 
Einführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAEinführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAmspgermany
 
C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittenemspgermany
 
Einführung in .NET mit C#
Einführung in .NET mit C#Einführung in .NET mit C#
Einführung in .NET mit C#mspgermany
 
Windows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-VWindows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-Vmspgermany
 
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – MöglichkeitenWindows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeitenmspgermany
 
Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2mspgermany
 
Mit Stil ans Ziel
Mit Stil ans ZielMit Stil ans Ziel
Mit Stil ans Zielmspgermany
 
Präsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint KaraokePräsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint Karaokemspgermany
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7mspgermany
 
Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7mspgermany
 
Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7mspgermany
 
Usergroup 02 Berlin Surface
Usergroup 02 Berlin SurfaceUsergroup 02 Berlin Surface
Usergroup 02 Berlin Surfacemspgermany
 

Plus de mspgermany (13)

Windows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodetWindows Phone 7: jetzt wird gecodet
Windows Phone 7: jetzt wird gecodet
 
Einführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNAEinführung in die Spieleprogrammierung mit XNA
Einführung in die Spieleprogrammierung mit XNA
 
C# für Fortgeschrittene
C# für FortgeschritteneC# für Fortgeschrittene
C# für Fortgeschrittene
 
Einführung in .NET mit C#
Einführung in .NET mit C#Einführung in .NET mit C#
Einführung in .NET mit C#
 
Windows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-VWindows Server 2008 R2 – Hyper-V
Windows Server 2008 R2 – Hyper-V
 
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – MöglichkeitenWindows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
Windows Embedded Compact 7 Einführung - Ausblick – Möglichkeiten
 
Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2Präsentationstraining PowerPoint Karaoke Version 2
Präsentationstraining PowerPoint Karaoke Version 2
 
Mit Stil ans Ziel
Mit Stil ans ZielMit Stil ans Ziel
Mit Stil ans Ziel
 
Präsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint KaraokePräsentationstraining PowerPoint Karaoke
Präsentationstraining PowerPoint Karaoke
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
 
Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7Grundlagen der anwendungsentwicklung für windows phone 7
Grundlagen der anwendungsentwicklung für windows phone 7
 
Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7Usergroup 02 Berlin Windows7
Usergroup 02 Berlin Windows7
 
Usergroup 02 Berlin Surface
Usergroup 02 Berlin SurfaceUsergroup 02 Berlin Surface
Usergroup 02 Berlin Surface
 

Office-Programmierung mit VBA

  • 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
  • 8. Beispiel „Hello World“ – Schritt 2 8
  • 9. Beispiel „Hello World“ – Schritt 3 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
  • 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
  • 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
  • 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
  • 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
  • 36. Beispiel - Aufruf einer 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
  • 42. 1. VBA Grundlagen 2. Coding for Beginners 3. Officeübergreifendes VBA -Livedemo 4. Fragen
  • 43.
  • 44. 1. VBA Grundlagen 2. Coding for Beginners 3. Officeübergreifendes VBA 4. Fragen
  • 46. Vielen Dank für Ihre Aufmerksamkeit