Einführung in die Programmiersprache Visual Basic for Applications… Seminarvortrag Maik Bürschgens 13.12.2011.

Slides:



Advertisements
Ähnliche Präsentationen
Blue J.
Advertisements

Imperative Programmierung
Präsentation PS: Klasse File von Janko Lange, Thomas Lung, Dennis Förster, Martin Hiller, Björn Schöbel.
Programmierung II Prof. Dr. Michael Löwe
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
MS Office-Paket: Access
Objektorientierung mit VBA
Java: Dynamische Datentypen
Indirekte Adressierung
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Konstruktoren.
Objekte und Arbeitsspeicher
Grundlagen im Bereich der Tabellenkalkulation
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Teil I - Erstellen einer Excel-Tabelle zur Deckungsbeitragsrechnung
VB .NET Proseminar .NET SS04.
DVG Klassen und Objekte
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
CGI (Common Gateway Interface)
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Dynamische Datentypen
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Vortrag: Visual Basic Neuerungen Autor : Dennis Hoyer
Herbers Excel-Server - der Workshop
verstehen planen bearbeiten
Herbers Excel-Server - der Workshop
Variablen in Programmiersprachen
Einführung in PHP 5.
von Saskia- Romina Duwe
Excel Grundlagen.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Java-Kurs Übung Besprechung der Hausaufgabe
WiWi WS2015 Excel Grundlagen Fachbereich Wirtschaftswissenschaften.
Lösung komplexer Problemstellungen Susanne Längle & Lukas Matt.
Bewerbungs- eingang Bewerbungs- bearbeitung Stellenangebote VermittlungKommunikationZusatzleistungen.
Einführung in PowerPoint Zum Seminar „Video und Multimedia im Unterricht DaF“ (Theorie und Praxis der Lehr- und Lernmittel) bei Prof. Dr. E. Tschirner.
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
Vererbung. Klassen - Vererbung  Eine Klasse kann von einer Basisklasse abgeleitet werden  Die abgeleitete Klasse erbt die Eigenschaften und Methoden.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Pointer. Precompiled Header  Vorübersetzung eingebundener Dateien häufig genutzt, selten geändert  Projekttyp „Win32 Console Application“
Einführung. Ziel der Veranstaltung  Vermittlung von Grundkenntnissen in C++  Solide Basis für anschließende Weiterentwicklung  Fähigkeit, kleine Programme.
Statistische Auswertung und Darstellungsmöglichkeiten von Messdaten Seminarvortrag von Christian Gorgels im Studiengang Scientific Programming.
Die Programmiersprache Ruby Seminarvortrag von Lia Schulze Dephoff 1.
Funktionsweise eines Funambolservers Natascha Graf Aachen, 01. Februar 2010.
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Bereit, wenn Sie es sind Gute Neuigkeiten. Noch während die Installation im Hintergrund fortgesetzt wird, können Sie Office 2010 bereits verwenden. Sehen.
Operator Overloading, Mehrfachvererbung, Safe Pointer, Observer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Strukturen (Eigenschaften) Strukturen dienen zur Zusammenfassung mehrerer Komponenten verschiedener Typen zu einer Einheit, die dann mit gemeinsamen Namen.
Einführung in PowerPoint
Gruppen Finden Sie sich zurecht Die ersten Schritte in Ihrer Gruppe
Konstruktoren.
Create Table, Rechte und Rollen
zum Thema Bundesliga von Jan Bender
Anpassen von Microsoft SharePoint Onlinewebsite
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
«Delegierter» Methoden Schablone Funktionszeiger
9. Vererbung und Polymorphie
Lernmodul Einführung Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Nutzungsbedingungen:
Präsentation von Darleen und Michèle
Implementieren von Klassen
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

Einführung in die Programmiersprache Visual Basic for Applications… Seminarvortrag Maik Bürschgens

1.Vorwort 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA 5.Weitergehende Informationen 6.Fazit und Schlusswort 7.Literatur 8.Anhang AGENDA 2Einstieg in Visual Basic for Applications und die Office Programmierung

1. Vorwort a) Ziel des Vortrags b) Warum Excel als Demonstrationsprogramm? c) Wichtige Hinweise zur weiteren Verlauf der Präsentation 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA 5.Weitergehende Informationen 6.Fazit und Schlusswort 7.Literatur 8.Anhang AGENDA 3Einstieg in Visual Basic for Applications und die Office Programmierung3

Vorwort - Ziel des Vortrags  Einblick in die Fähigkeiten der Programmiersprache „Visual Basic for Applications“ „Visual Basic for Applications“ 4 Office Programmierung  Einstieg in die damit verbundene Office Programmierung  Desweiteren: Vorurteilen gegenüber VBA vorbeugen Motivation Motivation mitgeben, VBA zu erlernen und einzusetzen 4

Ausgerechnet Excel als Demonstrationsprogramm?  VBA Programme können nicht direkt ausgeführt werden Wirtsanwendung abhängig von einer Wirtsanwendung Zugriff auf die Skripte über eine Programmierschnittstelle (IDE) Excel 2007  im weiteren Verlauf: Excel 2007 weitreichende Anwendungsgebiete bekannt und häufig eingesetzt tiefgreifenden Gebrauch einer Office Anwendung kennenlernen Ausführungen lassen sich allgemein auf die Office Programmierung übertragen 5 5

1. Vorwort 2. Allgemeine Informationen zu VBA a) Ursprung und Einsatzgebiete b) Spracheigenschaften 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA 5. Weitergehende Informationen 6. Fazit und Schlusswort 7. Literatur 8.Anhang AGENDA Einstieg in Visual Basic for Applications und die Office Programmierung6

Microsoft  Von Microsoft entwickelt  Seit Mitte der 1990er Jahre verwendet  aus dem BASIC Dialekt Visual Basic entstanden Allgemeine Infos - Ursprung und Einsatzgebiete 7 Steuerung von Abläufen innerhalb der Office Programme  zur Steuerung von Abläufen innerhalb der Office Programme konzipiert Excel, Excel, Outlook, Visio,…  „Microsoft Visual Basic for Applications licensing program“ in Produkten der Corel Corporation z.B. CorelDraw zu finden MindManager, AutoCAD,… 7

modulare Programmierung  für die modulare Programmierung konzipiert zu lösendes Problem wird in einzelne Module aufgeteilt, die jeweils eine genaue Schnittstellenspezifikation aufweisen (Def.: Handbuch Programmiersprachen) Skripte (Makros) in kleinere Bestandteile zerlegt, die übersichtlich und einfach zu warten sind 8 Spracheigenschaften Skriptsprache  Leistungsfähige Skriptsprache  Syntax stark an die von Visual Basic angelehnt 8

9 Spracheigenschaften Quellcode in kleine Einheiten unterteilt, die sich gegenseitig aufrufen können Prozeduren undFunktionen realisiert durch Prozeduren und Funktionen objektorientierte Aspekte Erhielt mit der Zeit objektorientierte Aspekte Klassen und Objekte können syntaktisch dargestellt und implementiert werden Datenkapselung Schnittstellenvererbung Aber: keine Implementierungsvererbung(!) Keine direkten Speicherzugriffe wie z.B. in C/C++ möglich (Zeiger)  Ursprünglich als prozedurale Programmiersprache entwickelt… 9

1.Vorwort 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel a)Vorteile von VBA b)Vorstellung eines Anwendungsfalls – „Joggoh!“ c)Grundlegende Excel Objekte und Aktionen d)Ereignis(-prozeduren) e)Dialoge und Formulare zur Interaktion mit dem Benutzer 4.Zusätzliche Funktionalitäten von VBA 5.Weitergehende Informationen 6.Fazit und Schlusswort 7.Literatur 8.Anhang AGENDA Einstieg in Visual Basic for Applications und die Office Programmierung10

VBA im Zusammenspiel mit Excel – Warum VBA?  Theoretisch leistbar, viele Aufgaben manuell mit Excel Funktionen zu lösen…  ABER! 11 einfach an die eigenen Bedürfnisse anpassen Excel Anwendung relativ einfach an die eigenen Bedürfnisse anpassen Durch zusätzliche Funktionalitäten erweitern zur Vermeidung von Fehlbedienungen einschränken Die von Excel benötigten Fähigkeiten optimal einsetzen festlegen… Benutzerdefinierte Abläufe und Lösungen festlegen… automatisieren! …und im Hintergrund automatisieren! Deutliche Zeiteinsparung und saubere Lösungen! 11

Vorstellung eines Anwendungsfalls 12 Verwaltung sportlicher Aktivitäten  Ermöglicht die Verwaltung sportlicher Aktivitäten im Ausdauerbereich Jogging, Walking, Wandern, Fahrradfahren, Cross Trainer,… Upgrade für Krafttraining ist in Arbeit  „Joggoh!“  „Joggoh!“ – die etwas sportlichere Datenbank 12

Ein Anwendungsfall – (Vor-)Formatierung einer Kategorie 13

Ein Anwendungsfall– (Vor-)Formatierung einer Kategorie 14  Blau: Fehlerbehandlung GoTo wird dafür in VBA noch frequentiert verwendet  Schwarz:  Schwarz: Funktionskörper Hier sogar eine Ereignisprozedur Wird aufgerufen, sobald eine neue Kategorie in Joggoh erzeugt wird Kategorien entsprechen Tabellen in Excel  Braun: Beispiele für einfache VBA Funktionen aus dem Sprachkern  Rot: Zellformatierung Beispiel für die Interaktion mit Excel Objekten 14

Zusammenspiel mit ihren Wirtsanwendungen  VBA Skripte nur im Zusammenspiel mit ihren Wirtsanwendungen zweckmäßig Sprachkern reicht für ein sinnvolles Makro nicht aus! spezifische Objekte und Methoden Wirtsprogramme bieten VBA spezifische Objekte und Methoden an, auf die ein Entwickler zugreifen kann  Bsp: Worksheets -> Auflistung aller in der Applikation verwendeten Tabellen 15 Grundlegende Excel Objekte und Aktionen

 Bespiel - Filterfunktionen: AutoFilter Objekt ActiveSheet.UsedRange.AutoFilter [Spalte],[Bedingung] Mehrfachbedingungen für eine oder mehrere Spalten möglich Bei Textfiltern auch Platzhalter (*) möglich 16

Ereignis(-prozeduren)  „integrierte“ Ereignisse: Bereits ohne Funktionalität angelegte Ereignisprozeduren „Workbook_Open()“ Bsp: Ereignis „Workbook_Open()“ wird aufgerufen, sobald ein Nutzer eine Arbeitsmappe öffnet können durch Implementierung mit zusätzlicher Funktionalität ausgestattet werden Zusammenhang mit Formularen und Tabellen interessant im Zusammenhang mit Formularen und Tabellen 17 automatisch ausgeführte Prozeduren  Unter bestimmten Voraussetzungen automatisch ausgeführte Prozeduren  Von grundlegender Bedeutung in fortgeschrittener VBA Programmierung

Dialoge und Formulare  dienen zur Interaktion mit dem Benutzer komfortablen und deutlichen Benutzerführung  sollen zu einer komfortablen und deutlichen Benutzerführung verhelfen  Dialogformen: Integrierte Dialogfelder Tabellenblätter als Formulare Benutzerdefinierte Dialoge („UserForms“) 18 15

Dialoge und Formulare - integrierte Dialogfelder  Integrierte Dialogfelder: spezielle Aufgaben bereits für spezielle Aufgaben präpariert und konzipiert Message Box Input Box Speichern unter… Dialog [als Repräsentant für weitere Dialogformen] 19 16

20 Dialoge und Formulare - Das Tabellenblatt als Formular  Positionierung von Steuer- elementen elementen in Tabellen- blättern ermöglicht die Umgestaltung zu Formularen 17

Dialoge und Formulare – User Forms  Im VBA Editor mühelos zu gestalten Einfügen  UserForm Mit Drag&Drop angebotene Steuerelemente platzieren Das Eigenschaftenfenster zur Manipulation von Attributen nutzen Rechtsklick  Code anzeigen Mit Rechtsklick  Code anzeigen zum Codefenster gelangen Wird eingeblendet mit der Anweisung [UserFormName].Show() [UserFormName].Show() 21  Integrierte Dialoge reichen oftmals nicht aus UserForms  „UserForms“ (benutzerdefinierte Dialoge) können auf die Bedürfnisse der Anwendung abgestimmt werden – VBA erweist sich hier als vielseitig  Integrierte Ereignisse dienen als Grundlage von Ablaufsteuerungen 18

User Forms AnweisungBeschreibung UserForm_Initialize() Ereignis, Bietet die Möglichkeit beim Erzeugen des Dialoges den Komponenten Standardwerte zuzuordnen. [Komponente]_Clicked()Ereignis, Einfacher Mausklick [Komponente]_DblClick()Ereignis, Doppelklick [Liste].AddItem()Fügt ein weiteres Auswahlelement der Liste / ComboBox hinzu [Liste].Clear()Löscht die Auswahlliste / ComboBox [Liste].RemoveItem()Entfernt ein Auswahlelement aus der Liste / ComboBox [Liste].ValueAktueller Wert einer Liste / ComboBox [Liste].ListCountAnzahl der Einträge einer Liste / ComboBox  Ein Auszug wichtiger Ereignisse, Attribute und Methoden 22 19

User Forms  Der benutzerdefinierte Dialog zur Editierung bestehender Daten in der Joggoh! – Datenbank [Auszüge vom Programmcode] 23 20

User Forms  Der benutzerdefinierte Dialog zur Editierung bestehender Daten in der Joggoh! – Datenbank [Gestaltung nach dem Aufruf] 24 21

1.Vorwort 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA a) I/O Operationen b) Interaktion mit Datenbanken c) Präsentation der Daten: Diagramme 5.Weitergehende Informationen 6.Fazit und Schlusswort 7.Literatur 8.Anhang AGENDA Einstieg in Visual Basic for Applications und die Office Programmierung22

Weitere Funktionalitäten von VBA  Bisher vorgestellte Möglichkeiten reichen für fortgeschrittene Office Programmierung aus  Probleme bei tiefgreifenden Anwendungen, wenn man beispielsweise… Mehrere Datensätze aus einer Datenbank gleichzeitig auslesen Diese automatisch in eine Excel Tabelle hinterlegen Daten visualisieren und grafisch präsentieren möchte! 26  Lösung: Kommunikation mit externen Programmen und Befehlssatz zur Kommunikation mit externen Programmen und Datenquellen Datenquellen dynamisch Grafiken zu erzeugen und zu verwalten Befehlssatz, um dynamisch Grafiken zu erzeugen und zu verwalten 23

Weitere Funktionalitäten von VBA - I/O Operationen  Recht einfach gestaltet  Wenige Grundoperationen,  Wenige Grundoperationen, die schon ausreichen: Datensätze aus Textdateien auslesen Datensätze in Textdateien exportieren Allgemeine Dateioperationen Suchen Kopieren Löschen Dateigröße … 27 24

I/O Operationen  Beispiel: Export eines Datensatzes aus Joggoh! in eine CSV Datei 28

I/O Operationen  Beispiel: Import eines Datensatzes aus einer CSV-Datei nach Joggoh! 29 26

 Open [filename] For Input As [Nr] I/O Operationen 30 Öffnet angegebene Datei zum Einlesen Die angegebene Nummer dient zur Identifizierung  Open [filename] For Output As [Nr]  Print #[Nr], [String]  Line Input #[Nr], [String]  Close [Nr]  EOF(Nr) Öffnet angegebene Datei zum Herausschreiben Daten anhängen: Öffnungsmodus Append Schreibt die Zeichenkette in die anzugebende Datei Liest die Zeichenkette aus der nächsten Zeile in den anzugebenden String ein Schließt die Datei mit der angegebenen Nummer Repräsentiert das Dateiende

I/O Operationen 31 MethodeBeschreibung der Funktionalität Dir ( [Pfad] & [Suchmuster] ) Dient zur Suche von Dateien. Es können auch Platzhalter (*) verwendet werden. Als Rückgabewert erhält man den ermittelten Pfad oder einen Leerstring. FileDateTime ( [Pfad] )Liefert Datum und Uhrzeit der letzten Änderung der Datei FileLen ( [Pfad] )Liefert die Dateigröße GetAttr ( [Pfad] And Konstante) Dient zur Ermittlung von Datei- und Verzeichnisattributen. [vbHidden, vbSystem, vbDirectory und vbArchive] FileCopy( [PfadAlt], [PfadNeu])Kopiert angegebene Datei an den übergebenen Zielort Name ( [Alt], [Neu])Benennt eine Datei um Kill ( [Pfad])Löscht eine Datei. Die Aktion kann nicht rückgängig gemacht werden.  Weitere Dateioperationen 27

Weitere Funktionalitäten von VBA - SQL Operationen persistente Datenhaltung  Datenbanken gewährleisten eine persistente Datenhaltung  Excel als Tabellenkalkulationsprogramm… Dient bei im Alltag häufig als „Datenbankersatz“ / Übersichtsprogramm Reicht bei größeren Datenmengen dafür nicht mehr aus Muss deswegen häufiger mit Datenbanken kommunizieren  VBA… Befehlssatz für das Absetzen von SQL Befehlen Weist einen Befehlssatz für das Absetzen von SQL Befehlen auf Besitzt Methoden und Objekte zur Verarbeitung der Resultate Kann die Interaktion mit Datenbanken [im Hintergrund] automatisieren 32 28

SQL Operationen 33  Beispiel: Import von Datensätzen aus einer Access-Datenbank [Prozedurauszug] 29

SQL Operationen 34  ADODB-Connection Objekt wichtiges Objekt, dient zur Interaktion mit Datenbanken ConnectionString: ConnectionString: Angabe von Provider und Quelle Open: Stellt eine Verbindung zur Datenbank her Close: Schließt die Verbindung wieder execute[sqlCommand]: execute[sqlCommand]: Führt den übergebenen SQL-Befehl aus  ADODB-RecordSet speichert Ergebnisse der SQL Abfrage ab ! : ! : Zugriff auf einzelne Attribute MoveNext: MoveNext: „Zeiger“ wird auf den nächsten Eintrag verschoben EOF: EOF: repräsentiert das Ende eines RecordSets es liegen keine weiteren Abfrageergebnisse vor vgl: EOF von I/O-Operationen

Weitere Funktionalitäten von VBA - Präsentation der Daten  VBA bietet Möglichkeiten… erstellen Diagramme und eingebettete Diagramme zu erstellen manipulieren Ihre Eigenschaften zu manipulieren Beschriftungen, Typ, Form und Farbe … verwalten Sie zu verwalten Kopieren, Einfügen oder Export als PNG-Datei  VBA unterscheidet… Diagrammblätter Diagrammblätter in einem separaten Blatt generiert und verwaltet Eingebettete Diagramme in ein bereits bestehendes Tabellenblatt integriert 35 30

Diagramme 36 Präsentation von Distanz (m) und zugehöriger Zeit (s) einer Kategorie aus Joggoh! in einem Diagrammblatt [Prozedurauszug!]

Diagramme 37  Add:  Add: Erstellt ein neues Diagrammblatt Before/After: Before/After: Platzierung festlegen Chart  Erzeugtes Diagramm: Instanz der Klasse Chart  Grundlegende Eigenschaften und Methoden: ChartType: ChartType: Diagrammtyp xlLine: xlLine: Liniendiagramm … SetSourceData: SetSourceData: Auswahl der darzustellenden Daten Name Name: eindeutigen Namen zur verbesserten Identifikation zuweisen

Diagramme 38  Formatierung / Gestaltung: ChartTitle.Text: ChartTitle.Text: Überschrift festlegen Legend: Legend: Formatierung der Legende Entnimmt die Zuordnung von Farben und Namen automatisch! Axes: Axes: Formatierung der Achsen xlCategory: xlCategory: x-Achse xlValue: xlValue: y-Achse SeriesCollection(Nr) SeriesCollection(Nr): Repräsentiert den Graph selbst Nr identifiziert den zu formatierenden Graphen Points(Nr) Points(Nr) steuert gezielt einen Punkt des Graphen an

Diagramme 39  Formatierung / Gestaltung: ChartArea: ChartArea: Diagrammfläche Interior: Interior: verweist auf das Innere des Diagramms PlotArea PlotArea: Zeichnungsfläche HasTitle: HasTitle: Bestimmt, ob das Diagramm eine Überschrift besitzt HasLegend: HasLegend: Bestimmt, ob das Diagramm eine Legende besitzt  Eingebettetes Diagramm: ChartObject Wird durch eine Instanz der Klasse ChartObject verwaltet besitzt die gleichen Eigenschaften wie ein Diagrammblatt height, width Zusätzlich: Manipulation von Größe (height, width) sowie Abstand Left, Top zum Rand (Left, Top):

Diagramme  Delete  Delete: Löscht das ausgewählte Diagramm  Copy (After/Before):  Copy (After/Before): Kopie eines Diagrammblatts keine Angabe: Kopie in eine frisch angelegten Arbeitsmappe Copy  Copy: Kopie eines eingebetteten Diagramms in die Zwischenablage Paste Paste: Einfügen des eingebetteten Diagramms Export (Destination):  Export (Destination): Export des ausgewählten Diagramms PNG-Datei 40 32

1.Vorwort 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA 5.Weitergehende Informationen a) Der Makro Rekorder 6.Fazit und Schlusswort 7.Literatur 8.Anhang AGENDA Einstieg in Visual Basic for Applications und die Office Programmierung33

Der Makro Rekorder  Zeichnet diverse Aktionenauf  Zeichnet diverse Aktionen, z.B. die Auswahl einer speziellen Zelle, auf  Übersetzt die Aktionen automatisch in VBA Code  Speichert den Code in einem Modul ab 42  Bietet Anfängern die Möglichkeit in die Office Programmierung einzusteigen  Erspart dem Professionellen Entwickler viel Zeit bei der Implementierung „trivialer“ Aufgaben  Mehr Zeit und Konzentration für die schweren bzw. zeitintensiven Aufgaben Entwicklertools  Makro aufzeichnen  Unter Entwicklertools  Makro aufzeichnen zu finden 34

Fazit und Schlusswort sehr weit gefächert  VBA Befehlssatz ist sehr weit gefächert 43 Sprachkern mit weitreichenden Funktionen I/O Operationen ( Textdateien, Datenbanken,…) Präsentation der Daten Manipulation von Zellen / Zellbereichen … automatisieren Im Hintergrund automatisieren Vereinfachen  Es lassen sich viele Abläufe… 35

Fazit und Schlusswort Tutorials und Bücher  Viele Tutorials und Bücher zu diesem Thema  Foren runden das Angebot ab 44 Übung macht den Meister!  Erfahrungen in einer Programmiersprache beruhen weniger auf Theorie als auf Praxis 36

Fragen? Vielen Dank für ihre Aufmerksamkeit! 45 37

Literatur  Einstieg in VBA mit Excel, Thomas Theis Galileo Computing, 2te und aktualisierte Auflage 2010  ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b012.pdf  Handbuch Programmiersprachen (Softwareentwicklung zum Lernen und Nachschlagen) Peter A. Henning und Holger Vogelsang, Hanser Verlag, 2007   

Literatur      

1.Vorwort 2.Allgemeine Informationen zu VBA 3.VBA im Zusammenspiel mit Excel 4.Zusätzliche Funktionalitäten von VBA 5.Weitergehende Informationen 6.Fazit und Schlusswort 7.Literatur 8.Anhang a.Sprachkonzept von VBA (Sprachkern) b.Excel als Tabellenkalkulationsprogramm c.Der VBA-Editor als Entwicklungsumgebung AGENDA Einstieg in Visual Basic for Applications und die Office Programmierung40

Syntaktischer Aufbau des Quellcodes  Ungewohnte Syntax … 49 Keine Semikolons, Keine Semikolons, welche das Ende einer Anweisung markieren Prinzipiell nur eine Anweisung pro Zeile erlaubt Mehrzeilige Anweisungen durch das Einfügen von Leerzeichen und Unterstrich am Ende der Zeile möglich [„ _“] Case insensitive Keine Escape-Sequenzen zur Darstellung von Steuerzeichen integrierte Konstanten integrierte Konstanten

Datentypen DatentypSpeicherbedarfWertebereich und Bedeutung Boolean2 ByteWahrheitswert, kann den Wert „True“ oder „False“ annehmen Byte1 ByteGanze Zahl von 0 bis 255 Integer2 ByteGanze Zahl von bis Long4 ByteGanze Zahl von -2,1 * 10^9 bis 2,1 * 10^9 Single4 Byte Gleitkommazahl mit einfacher Genauigkeit von ca. -3,4 * 10^38 bis ca. -1,4* 10^(-45) für negative und von ca. 1,4*10^(-45) bis 3,4 * 10^38 für positive Werte Double8 Byte Gleitkommazahl mit doppelter Genauigkeit von ca. - 1,8*10^308 bis -4,9*10^(-324) für negative und von ca. 4,9*10^(-324) bis 1,8*10^308 für positive Werte Date8 ByteDatumsangabe zwischen 1.Januar 100 und 31.Dezember 9999 Object4 ByteVerweis auf ein Objekt String10 Byte (+)Zeichenkette mit variabler Länge Variant16 Byte (+)Datentyp nicht explizit festgelegt (universell) 50

Operatoren und Variablen  Operatoren: Arithmetische Operatoren (+,-,…) Logische Operatoren(Not, And, Or,…) Vergleichsoperatoren (,…) Verkettungsoperatoren (&, +)  Variablen: Deklaration und Initialisierung erfolgt zweistufig! Explizite/Implizite Deklaration möglich Auf Prozedurebene oder Modulebene möglich „Dim [Name] As [Datentyp]“ Schüsselphrase „Dim [Name] As [Datentyp]“ 51

Operatoren und Variablen  Konstanten: Deklaration und Wertzuweisung in einem Schritt „Const“ Schlüsselwort „Const“ publicprivate öffentlich (public) oder modulbezogen (private)  Integrierte Konstanten: Systemdefinierte Konstanten mit spezieller Funktionalität vbCrLf Beispiel: vbCrLf  Zeilenumbruch xlLine Beispiel: xlLine  Diagrammtyp „Liniendiagramm“ 52

Unterprogrammtechnik  Prozeduren: Einheiten kleinste selbstständige Einheiten eines Programms beinhalten eine Gruppe von Anweisungen kein Rückgabewert „Sub…End Sub“ Schlüsselphrase „Sub…End Sub“  Funktionen: Können Werte zurückliefern „Function…End Function“ Schlüsselphrase „Function…End Function“ 53

Unterprogrammtechnik  Parameterübergabe: Call-By-Value, Als Kopie (Call-By-Value, Schlüsselwort „ByVal“) Call-By-Reference, Als Referenz (Call-By-Reference, „ByRef“, Standardeinstellung) „Optional“ Optionale Parameter möglich („Optional“)  Prozeduren sind öffentlich… „Public“  …oder modulbezogen „Private“ 54

Klassen (Klassen-)Modulen  Klassen in eigenen (Klassen-)Modulen erstellt Enthalten nur Methoden und Attribute der Klasse Aus z.B. Java oder C++ bekannte syntaktische Einleitungen wie „Class A {…}“ fallen weg Deklaration mehrerer Klassen in einem Modul nicht möglich „Property Let (bzw. Get)“  Setter und Getter mit der Schlüsselphrase „Property Let (bzw. Get)“ gekennzeichnet  Deklaration und Initialisierung von Objekten ebenfalls zweistufig „Set [Name] = New [Klasse]“ Schlüsselphrase „Set [Name] = New [Klasse]“ 55

Diverses (mehrdimensionale / dynamische) Arrays „type“ Benutzerdefinierte Datentypen (vgl. Structs aus C/C++, „type“) Schleifenstrukturen Kontrollstrukturen „On Error“ GoTo Methoden zur Fehlerbehandlung („On Error“ Anweisung, GoTo) Konvertierung und Manipulation von Daten, u.a. Vartype, CInt, CString Datentypermittlung und Casts (Vartype, CInt, CString,…) InStr, LCase, Split Zeichenkettenmanipulation (InStr, LCase, Split,…) […] 56  Desweiteren unterstützt VBA…

Der VBA Editor als Entwicklungsumgebung 57

Der VBA Editor als Entwicklungsumgebung  Eigenständiges Programm mit Fenstersystem und Symbolleisten  Alt+F11 Entwicklertools  Visual Basic  Alt+F11 oder über den Reiter Entwicklertools  Visual Basic zu erreichen  Besteht aus mehreren Komponenten:  Projektexplorer: Überschau der aktuell verwendeten Module in Form einer Baumstruktur Module als Container für bereits erstellten Programmcode Office Objekte Formulare Klassenmodule allgemeine Module 58

Der VBA Editor als Entwicklungsumgebung  Eigenschaftenfenster: Übersicht für die Eigenschaften (Attribute) des aktuell ausgewählten Moduls erleichtert ihre Modifikation wird im Bereich der Formulare frequentiert verwendet  Direktfenster: Zu Testzwecken oder Debugging genutzt Akzeptiert direkte Eingaben (Funktionsaufrufe) Debug.Print[text]: Debug.Print[text]: angegebener Text erscheint im Direktfenster  Objektkatalog / IntelliSense: Auflistung aller durch VBA nutzbaren / verfügbaren Objekte Nachschlagewerk Standardmäßig ausgeblendet VBA Editor schlägt Eigenschaften und Methoden des aktuell selektierten Objekts automatisch vor: IntelliSense 59

Excel als Tabellenkalkulationsprogramm Tabellenkalkulation  Von Microsoft entwickeltes Programm zur Tabellenkalkulation Eine Software für die interaktive Eingabe und Verarbeitung von numerischen und alphanumerischen Daten in Tabellenform (Def.:Wikipedia) 60  Teil des von Microsoft herausgegebenen Office Paketes  Aktuelle Version: Excel 2010 (bzw für Mac) sehr bekannt und weit verbreitet  sehr bekannt und weit verbreitet

Excel als Tabellenkalkulationsprogramm  Fähigkeiten und Bestandteile Datenkalkulation, -analyse und deren Bietet viele Möglichkeiten zur Datenkalkulation, -analyse und deren Präsentation Präsentation Sortier-/Filtervorgänge unterstützen die Auswertung Diagramme und Grafiken Formeln und Funktionen Gezielter Einsatz von Formeln und Funktionen Import von Daten aus externen Datenquellen (CSV, XML, Datenbanken,…) VBA Schnittstelle zur Ausführung und Bearbeitung von VBA Makros 61

Excel als Tabellenkalkulationsprogramm  Der Arbeitsbereich von Excel Arbeitsmappen, welche Tabellenblätter beinhalten Tabellenblätter bestehen aus Zellen, die Daten speichern können Eindeutige Identifikation von Zellen: Angabe von Spalte (Buchstabe) und Zeile (Nummer) Zellbezugssystem Zellbezugssystem Oberer Bereich: Menüleiste mit zahlreichen Funktionen 62

Excel als Tabellenkalkulationsprogramm 63