VBA-Programmierung Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ sibylle.schwarz@fh-zwickau.de SS 2009
Organisation der Lehrveranstaltung Vorlesung Di 11:20-12:50 Uhr Raum 247 Vorlesung schriftliche Übungen Hausaufgaben Vorbereitung auf Praktikum / Prüfung Praktikum Mo 9:20-10:50 Uhr Pool 325 Programmieraufgaben Prüfung Klausur 120 min, keine Hilfsmittel \\whz-file-01\information\lehre\informat\schwarz\ss09\vba Folien und Hausaufgaben unter http://wwwstud.fh-zwickau.de/~sibsc/lehre/ss09/vba
Literatur Folien zur Vorlesung http: //wwwstud.fh-zwickau.de/~sibsc/lehre/ss09/vba RRZN-Handbuch: Excel 2007 - Automatisierung - Programmierung erhältlich über Buchshop 5, 60 e http: //141.32.28.182/buchshop2/public_html/index.php (bestellen, an Kasse bezahlen, bei Frau Albrecht abholen) Softwarebeispiele (Übungsdateien) unter http://www.rrzn.uni-hannover.de/buecher.html Online-Hilfe Unterlagen von Herrn Prof. Conrad unter \\whz-file-01\information\lehre\informat\conrad\imevba
MS-Excel-Makros erleichtern wiederholt vorkommende Aufgaben MS-Excel-Makro fasst Folgen von Arbeitsschritten zusammen Aufruf durch Tastenkombination oder Schaltfläche Beispiele: Eintragen von Spaltenköpfen in Tabellen Formatierung (z.b. Farben)
MS-Excel-Makros aufzeichnen 1. Aufzeichnung starten (Ansicht Makros Makro aufzeichnen) 2. Namen festlegen, evtl. Tastenkombination, Beschreibung 3. Arbeitsschritte ausführen 4. Aufzeichnung beenden 5. Arbeitsmappe speichern (.xltm) aufzuzeichnende Arbeitsschritte vorher planen, testen und notieren MS-Excel-Makro löschen: Ansicht Makros Makros anzeigen zu löschendes Makro auswählen Löschen (kein Undo möglich!)
MS-Excel-Makros ausführen mehrere Aufruf-Möglichkeiten: Makro auswählen Ansicht Makros Makros anzeigen beim Aufzeichnen definierte Tastenkombination Symbol in Symbolleiste (Symbolleiste Schnellzugriff Makros Hinzufügen) Steuerelemente (Steuerelemente Symbol einfügen Schaltfläche Makro zuweisen) passende Beschriftung wählen
Bezüge Auswahl vor Aufzeichnung des MS-Excel-Makros absolut (Standard) unabhängig von den bei Aufzeichnung und Aufruf ausgewählten Positionen Ausführung in genau den während der Aufzeichnung verwendeten Zellen relativ abhängig von den bei Aufzeichnung und Aufruf ausgewählten Positionen Beispiel: Hallo
Interne Repräsentation VBA-Entwicklungsumgebung eingebaut in MS-Excel (Alt+F11) VBA-Code im Editorfenster: Sub makroname()... Tastenkombination:...... End Sub VBA kann mehr als aufgezeichnete MS-Excel-Makros repräsentieren
Anwendung der VBA-Programmierung in MS-Excel Änderung aufgezeichneter MS-Excel-Makros Erstellung von Auto-Makros (werden automatisch ausgeführt, z.b. beim Öffen von Arbeitsmappen) Automatisierung von Arbeitsschritten, die nicht als Makros aufgezeichnet werden können, z.b. strukturierte Programme (Schleifen, Verzweigungen, Unterprogramme,..) graphische Elemente, z.b. Dialogfenster zur Dateneingabe
Makroviren und Sicherheit VBA ermöglicht Kopieren, Löschen, Manipulieren von Dateien Makroviren: versteckte MS-Excel-Makros, die automatisch ausgeführt werden MS-Excel-Arbeitsmappen-Typen.xlsx ohne Makros.xltm kann Makros enthalten Sicherheitsoptionen: (Optionen Vertrauensstellungscenter Einstellungen für Makros) beim Öffnen von.xltm-dateien: keine MS-Excel-Makros aktivieren MS-Excel-Makros der Arbeitsmappe aktivieren Vertrauensstellungscenter (danach Schließen und erneut öffnen)
VBA Visual Basic for Applications Geschichte: 1964 BASIC Beginner s All-purpose Symbolic Instruction Code imperative Programmiersprache wird interpretiert (Übersetzung der einzelnen Programmschritte zur Ausführungszeit) BASIC-Interpreter als Benutzeroberfläche früher PC 1991 Microsoft Visual Basic (VB) (inzwischen) objektorientierte Programmiersprache wird compiliert (Compiler analysiert und bersetzt das ganze Programme vor der Ausführung in Maschinencode) Entwicklungsumgebung: Visual Studio 1995 Microsoft VBA Skriptsprache (interpretiert) Anwendung in Microsoft-Office-Anwendungen eingebaute VBA-Entwicklungsumgebung in Microsoft-Office-Anwendungen
Entwicklungsumgebung Editor Bearbeitung des Programmcodes Projektexplorer Überblick über die Komponenten eines Projektes (Mappen, Module, Unterprogramme) Eigenschaften-Fenster Eigenschaften der im Projektexplorer ausgewählten Komponente Direktfenster (Ausgaben mit Debug.Print) Überwachungsfenster zum Debuggen
Projektstruktur Projekt Rahmen für alle vom Entwickler angelegten Module wird automatisch von der MS Office-Anwendung angelegt, aus der die VBA-Entwicklungsumbegung gestartet wird Standardmodul enthält eine Liste von Unterprogrammen wird automatisch (aufgezeichnete Makros) oder vom Entwickler angelegt Klassenmodul enthält Code speziell für eine Klasse (Mappe, Formular,...) wird automatisch (Dialogfenster,...) oder vom Entwickler angelegt Unterprogramm Sub, Function,.. (Prozedur, Makro, Funktion,...)
Informatik Wissenschaft von der Repräsentation und Verarbeitung symbolischer Information durch Algorithmen Algorithmus = in Schritte geordnete Arbeitsvorschrift endliche Beschreibung schrittweise Ausführung zuständig für eine ganze Aufgabenklasse deterministisch (vorherbestimmt) zu jedem Schritt ist im Algorithmus definiert: Was wird getan? (Aktionen, Anweisungen) Womit wird es getan? (Daten) Wie geht es weiter? (nächster Schritt) Beispiele: Gauß-Algorithmus, Computerprogramm, Kochrezept, Bauanleitung
Programmierung Programme (Software) entstehen in zwei Phasen: 1. Konzeption (Kopf, Papier): Spezifikation Entwurf Verifikation weitgehend unabhängig von Implementierungssprache Ergebnis: Algorithmus (z.b. als Struktogramm) 2. Implementierung (Computer): Ergebnis: fehlerfrei übersetzbares und lauffähiges Programm in einer Programmiersprache
Spezifikation Problemanalyse: Was soll gelöst werden? Ausgangspunkt: Ergebnis: umgangssprachlich formulierte und oft ungenaue Beschreibung der Aufgabe exakte und vollständige Definition der zu erzeugenden Software Spezifikation beschreibt die gewünschte Beziehung zwischen Ein- und Ausgabe Spezifikation enthält Vorbedingung: Forderung an die Eingaben Nachbedingung: Forderung an die Ausgaben
Beispiel: Vertauschen mit Hilfsvariable Aufgabe: Vertauschen zweier Zahlen Spezifikation: Vorbedingung: Nachbedingung: a = x, b = y a = y, b = x Algorithmus: 1. c := a 2. a := b 3. b := c Verifikation (Tafel)
Implementierung technische Realisierung des des entworfenen und verifizierten Algorithmus Übertragung in Programmiersprache Ergebnis: ausführbares korrektes Programm