Skript zu Vorlesung EDV I Stand 15.05.2016 EDV I Inhalt 1 2 3 4 ERSTE SCHRITTE ...................................................................................................................................... 5 1.1 STARTEN ...................................................................................................................................................... 5 1.2 STARTOBERFLÄCHE ......................................................................................................................................... 5 1.3 HILFE FUNKTION ............................................................................................................................................ 6 ARBEITSUMGEBUNG ............................................................................................................................... 6 2.1 DAS MENÜBAND ........................................................................................................................................... 6 2.2 DIE STANDARTREGISTER .................................................................................................................................. 7 2.3 KONTEXTSENSITIVE REGISTER ........................................................................................................................... 9 2.4 MINIMIEREN DES MENÜBANDS ........................................................................................................................ 9 DATEIEN UND ARBEITSMAPPEN .............................................................................................................. 9 3.1 DATEIEN SPEICHERN ....................................................................................................................................... 9 3.2 KONZEPT DER ARBEITSMAPPE......................................................................................................................... 10 3.3 ARBEITSBLATT ............................................................................................................................................. 10 3.4 AUSBLENDEN/FIXIEREN................................................................................................................................. 10 EINFACHE BEARBEITUNG ...................................................................................................................... 11 4.1 MARKIEREN ................................................................................................................................................ 11 4.2 AUSFÜLLEN................................................................................................................................................. 11 4.3 VERSCHIEBEN .............................................................................................................................................. 12 4.4 KOPIEREN................................................................................................................................................... 12 4.5 AUTO AUSFÜLLEN ........................................................................................................................................ 13 4.6 EINFÜGEN / LÖSCHEN ................................................................................................................................... 13 4.7 FORMATIERUNG .......................................................................................................................................... 13 4.8 BEDINGTE FORMATIERUNG ............................................................................................................................ 14 4.9 KOMMENTARE ............................................................................................................................................ 14 4.10 5 ÜBUNGEN ZUR EINFACHEN BEARBEITUNG .................................................................................................... 14 FORMELN / FUNKTIONEN...................................................................................................................... 15 5.1 FORMELN ................................................................................................................................................... 15 5.2 RELATIVE UND ABSOLUTE ZELLBEZÜGE ............................................................................................................. 15 5.3 NAMEN ..................................................................................................................................................... 16 5.4 OPERATOREN .............................................................................................................................................. 16 5.5 FUNKTIONEN .............................................................................................................................................. 16 5.6 FUNKTIONSASSISTENT ................................................................................................................................... 17 5.7 EXTERNE BEZÜGE......................................................................................................................................... 17 2 EDV I 6 7 8 9 10 5.8 SPEZIELLE MATRIXFUNKTIONEN ...................................................................................................................... 18 5.9 ZIELWERTSUCHE .......................................................................................................................................... 18 5.10 SOLVER ................................................................................................................................................. 19 5.11 ÜBUNGEN ZU FORMELN UND FUNKTIONEN .................................................................................................. 20 DIAGRAMME ......................................................................................................................................... 22 6.1 ERSTELLEN VON DIAGRAMMEN....................................................................................................................... 22 6.2 ÜBUNGEN ZU DIAGRAMME............................................................................................................................ 23 FORMULARSTEUERELEMENTE ............................................................................................................... 23 7.1 ANWENDUNG VON FORMULARSTEUERELEMENTEN ............................................................................................. 23 7.2 ÜBERSICHT DER STEUERELEMENTE .................................................................................................................. 24 7.3 ÜBUNGEN ZU FORMULARSTEUERELEMENTE ...................................................................................................... 25 MAKROS ............................................................................................................................................... 26 8.1 DER MAKRO REKORDER ................................................................................................................................ 26 8.2 GRENZEN DER MAKRO PROGRAMMIERUNG ...................................................................................................... 26 8.3 BEISPIELANWENDUNG .................................................................................................................................. 26 8.4 STARTEN EINES AUFGEZEICHNETEN MAKROS ..................................................................................................... 29 8.5 ÜBUNGEN ZU MAKROS ................................................................................................................................. 29 VBA-UMGEBUNG .................................................................................................................................. 29 9.1 DER PROJEKTEXPLORER ................................................................................................................................. 29 9.2 EIGENSCHAFTSFENSTER ................................................................................................................................. 30 9.3 OBJEKTKATALOG .......................................................................................................................................... 31 9.4 DIREKTFENSTER ........................................................................................................................................... 31 9.5 LOKALFENSTER ............................................................................................................................................ 31 9.6 ÜBERWACHUNGSFENSTER ............................................................................................................................. 32 VBA-PROGRAMMIERUNG ..................................................................................................................... 33 10.1 PROGRAMM ERSTELLEN ............................................................................................................................ 33 10.2 RESERVIERTE WÖRTER ............................................................................................................................. 35 10.3 VARIABLEN DEKLARIEREN .......................................................................................................................... 35 10.4 KONSTANTE ........................................................................................................................................... 38 10.5 LITERALE ............................................................................................................................................... 39 10.6 DATENFELDER ........................................................................................................................................ 39 10.7 KONTROLLSTRUKTUREN ............................................................................................................................ 40 10.8 SCHLEIFEN ............................................................................................................................................. 45 10.9 MODULARE PROGRAMMIERUNG ................................................................................................................ 47 3 EDV I 11 12 13 OBJEKTE IN EXCEL ................................................................................................................................. 50 11.1 OBJEKTE ................................................................................................................................................ 50 11.2 OBJEKTE BENENNEN ................................................................................................................................ 51 11.3 EIGENSCHAFTEN VON OBJEKTEN ................................................................................................................ 51 11.4 METHODEN VON OBJEKTEN ...................................................................................................................... 52 11.5 EREIGNISSE VON OBJEKTEN ....................................................................................................................... 52 11.6 EIGENSCHAFTEN UND METHODEN DES RANGE-OBJEKTS ................................................................................. 54 11.7 ZUGRIFF AUF ZELLEN................................................................................................................................ 55 11.8 INHALTE IN ZELLEN EINSETZEN UND ABFRAGEN .............................................................................................. 58 11.9 WICHTIGE EIGENSCHAFTEN UND METHODEN DER SHEETS-AUFLISTUNG........................................................... 60 APPLICATION EXCEL........................................................................................................................... 61 12.1 STANDARTSPEICHERORT EXCEL .................................................................................................................. 61 12.2 DAS APPLICATION OBJEKT ..................................................................................................................... 61 12.3 ÜBUNGEN ZUM APPLICATION OBJEKT ......................................................................................................... 63 BENUTZERDEFINIERTE FORMULARE ...................................................................................................... 63 13.1 BENUTZERFORMULAR HINZUFÜGEN ............................................................................................................ 63 13.2 EIGENSCHAFTEN EINES BENUTZERFORMULARS .............................................................................................. 64 13.3 METHODEN EINES BENUTZERFORMULARS .................................................................................................... 66 13.4 EREIGNISSE EINES BENUTZERFORMULARS ..................................................................................................... 66 13.5 STEUERELEMENTE IN BENUTZERFORMULAR EINFÜGEN .................................................................................... 66 13.6 STEUERELEMENTE PLATZIEREN ................................................................................................................... 67 13.7 EIGENSCHAFTEN VON STEUERELEMENTEN FESTLEGEN ..................................................................................... 68 13.8 EREIGNISPROZEDUREN PROGRAMMIEREN .................................................................................................... 69 13.9 WICHTIGE EREIGNISSE EINES FORMULARS .................................................................................................... 69 13.10 ÜBUNGEN ZU FORMULAREN...................................................................................................................... 70 14 GRUNDLAGEN DER FEHLERBEHANDLUNG ............................................................................................. 70 15 NASSI-SHNEIDERMAN-DIAGRAMM ....................................................................................................... 72 15.1 ÜBUNG ZUM NASSI-SHNEIDERMAN DIAGRAMM ........................................................................................... 72 16 TASTENKOMBINATIONEN IN EXCEL ....................................................................................................... 73 17 LITERATURVERZEICHNIS ........................................................................................................................ 76 18 TABELLENVERZEICHNIS ......................................................................................................................... 77 19 ABBILDUNGSVERZEICHNIS .................................................................................................................... 79 4 EDV I Microsoft Excel 2013 1 Erste Schritte 1.1 Starten Zum Starten der Anwendung klicken Sie entweder auf die Windows Taste auf der Tastatur oder mit der Maus auf dem Desktop. Abbildung 1 - Windows Taste Anschließend geben Sie in das Suchfeld Excel 2013 ein und bestätigen dies mit Return (Enter). 1.2 Startoberfläche Dies ist die Startoberfläche von Excel 2013. Auf dieser können verschiedene Vorlagen gewählt werden, oder mit dem Punkt Weitere Arbeitsmappen öffnen bereits bestehende Dateien von dem lokalen System oder aus dem OneDrive ausgewählt werden. Abbildung 2 - Excel Startoberfläche 5 EDV I 1.3 Hilfe Funktion Excel bietet eine Online Hilfe an die mit der Funktionstaste F1 geöffnet wird. Dieser Assistent ist als Nachschlagewerk ein sehr nützliches Werkzeug im Bereich der Tabellenkalkulation. Die Tastenkombinationen sind im Umgang mit Excel sehr nützlich. Um zur Kontextsensitiven Hilfe zu gelangen muss die shift und F1 Taste gedrückt werden und dann auf das entsprechende Objekt geklickt werden. Abbildung 3 - Excel Hilfe 2 Arbeitsumgebung 2.1 Das Menüband Abbildung 4 - Startansicht 6 EDV I Abbildung 5 - Menüband - Ribbon Ganz links befindet sich an herausgehobener Position das Register Datei. Die anderen Register sind nach Aufgabenbereichen strukturiert und enthalten verschiedene, in Befehlsgruppen zusammengefasste Schaltflächen. Die Größe und die Anordnung der Befehlsgruppen und Schaltflächen werden entsprechend der verfügbaren Auflösung des Bildschirmes variiert und automatisch angepasst. Im unteren Teil einer Befehlsgruppe befindet sich deren Beschriftung. 2.2 Die Standartregister Datei: Bietet Dateioperationen sowie die Backstage-Ansicht für weitere Aufgaben. Start: Enthält die Befehle für die grundlegenden Arbeiten beim Eingeben von Daten: Verwenden der Zwischenablage, direkte Formatierung von Zellen, Bedingte Formatierung und Formatvorlagen, Suchen, Ersetzen und Filtern. Einfügen: Enthält alles, was eingefügt werden kann: Pivot-Tabellen, Tabellen, Grafiken, Diagramme verschiedenster Art, Symbole, Objekte, Textfelder aber auch Kopf und Fußzeilen. Seitenlayout: Enthält die Einstellmöglichkeiten für das Dokument und die Seite, wie Seitenränder und Ausrichtung und Drucktitel aber auch eine Auswahl vorgefertigter Designs. Formeln: Bietet eine übersichtliche Auswahl der in Microsoft Office Excel 2010 verfügbaren Funktionen, Tools zur Fehlersuche und zur Verwaltung benannter Bereiche im Arbeitsblatt. 7 EDV I Daten: Umfasst Steuerelemente für den Import externer Daten, zum Filtern und Sortieren von Datensätzen sowie zur Datenanalyse. Überprüfen: Bietet Werkzeuge für die Rechtschreib- und Grammatikhilfe und damit verwandte Funktionen wie Thesaurus und Übersetzung, sowie für die gemeinsame Nutzung von Dokumenten beispielsweise in Arbeitsgruppen. Ansicht: Erlaubt die unmittelbare Auswahl und Anpassung der Arbeitsansicht. So können beispielsweise die Gitternetzlinien oder die Bearbeitungsleiste ein und ausgeblendet werden. Entwicklertools: Dieses Register ist standardmäßig ausgeblendet und enthält Werkzeuge für die Makrobearbeitung und VBA-Programmierung. Um die Entwicklertools anzuzeigen gehen wird im Register Datei – Optionen – Menüband anpassen ein haken bei Entwicklertools gesetzt und dies mit OK bestätigt. Abbildung 6 - Registerkarte Entwicklertools einblenden 8 EDV I 2.3 Kontextsensitive Register Je nach der gerade aktuellen Arbeitssituation werden zusätzliche Register angeboten, jedoch nicht automatisch eingeblendet. Dies betrifft beispielsweise die Arbeit mit eingefügten grafischen Elementen oder auch Kopf- und Fußzeilen. In der Nebenstehenden Abbildung ist das Angebotenen Register Diagrammtools eingerahmt hervorgehoben Abbildung 7 - Kontextsensitive Register 2.4 Minimieren des Menübands Das Menüband beansprucht einen recht großen Teil der Arbeitsumgebung dies ist für die eigentliche Arbeit im Arbeitsblatt eher hinderlich. Deshalb kann das Menüband minimiert werden. Dazu wird das Kontextmenü aufgerufen und die Option Menüband reduzieren ausgewählt. Alternativ kann dies durch die Tastenkombination strg + F1 realisiert werden. 3 Dateien und Arbeitsmappen 3.1 Dateien Speichern Dateien können Lokal oder im OneDrive gespeichert werden. Die Standard Dateiendung einer Excel-Arbeitsmappe ist .xlsx . Um eine Datei zu Speichern gibt es mehrere Wege: Speichern mit der Tastatur: strg + S Speichern unter mit der Tastatur: F12 Speichern mit der Maus: Datei – Speichern Speichern unter mit der Maus: Datei - Speichern unter Der Befehl Speichern unter verhindert das Überschreiben der Daten einer alten Arbeitsmappe 9 EDV I 3.2 Konzept der Arbeitsmappe Eine Arbeitsmappe besteht aus einer Datei. In einer Arbeitsmappe können beliebig viele Tabellenblätter eingefügt werden, lediglich der Arbeitsspeicher begrenzt dies. Bei Start von Excel ist Standardmäßig nur ein Blatt in einer Arbeitsmappe. Ein weiteres Blatt kann durch klicken auf das Plus erzeugt werden, aber auch mit der Tastenkombination Alt + shift + F1 Abbildung 8 - Neues Blatt wird eine neues Blatt eingefügt. Arbeitsblätter können mithilfe des Kontextmenüs gelöscht, verschoben/kopiert oder bearbeitet werden. Mit der Verschiebe- und Kopieroperation können Arbeitsblätter auch in eine neue Arbeitsmappe verschoben bzw. kopiert werden. 3.3 Arbeitsblatt Ein Arbeitsblatt in Excel 2013 umfasst 16.384 Spalten und 1.048.576 Zeilen und damit 17.179.869.184 Zellen, von denen immer genau eine die sogenannte aktive Zelle ist. Die Spalten sind üblicherweise mit Buchstaben nummeriert (A bis XFD) und die Zeilen mit arabischen Zahlen (1 bis 1.048.576). In jeder Zelle können bis zu 32.767 Zeichen stehen. 3.4 Ausblenden/Fixieren Zeilen oder Spalten können nach dem markieren mithilfe des Kontextmenüs ausgeblendet werden. Um diese wieder ein zu fügen, werden die beiden benachbarten Zeilen/Spalten markiert und im Kontextmenü der Punkt einblenden ausgewählt. Fixieren von Spalten/Zeilen ist in großen Tabellen durchaus sinnvoll. Den fixierten Bereich kann man nicht mehr verschieben. 1. Markieren Sie die Zelle direkt unter bzw. rechts neben der zu fixierenden Überschrift. 2. Klicken Sie im Register Ansicht in der Gruppe Fenster auf die Schaltfläche Fenster fixieren und in der geöffneten Liste den Eintrag Fenster Fixieren 3. Falls nur die Erste Spalte oder erste Zeile fixiert werden soll, so finden die beiden unteren Punkte der Schaltfläche Fenster fixieren Anwendung. 4. Um die Markierung aufzuheben wird auf die Schaltfläche Fixierung aufhaben geklickt. 10 EDV I 4 Einfache Bearbeitung 4.1 Markieren Zum Markieren von Zellen gibt es mehrere Möglichkeiten Maus Tastatur Einzelauswahl einfaches klicken Pfeiltasten Bereichsauswahl shift + klicken Shift + Pfeiltasten Mehrfachauswahl strg + klicken Nicht möglich ganze Zeile/n Auf Zeilen klicken shift + Leertaste ganze Spalte/n Auf Spalten klicken strg + Leertaste ganze Tabelle auf das strg + shift + Leertaste oder Dreieck strg + A klicken Tabelle 1 - Möglichkeiten zur Zellwahl 4.2 Ausfüllen Die Eingabe von Daten erfolgt immer in die Aktive Zelle. Folgende Möglichkeiten gibt es um eine Eingabe zu bestätigen return Aktive Zelle wird eine Zeile nach unten Verschoben return + shift Aktive Zelle wird eine Zeile nach oben Verschoben Tab Aktive Zelle wird eine Spalte nach rechts Verschoben Tab + shift Aktive Zelle wird eine Spalte nach links Verschoben Pfeiltasten Aktive Zelle wird in jeweilige Richtung verschoben Pos1 Die erste Zelle der Zeile wird zur aktiven Zelle End Aktive Zelle bleibt gleich Maus Die neu Ausgewählte Zelle wird zur aktiven Zelle Tabelle 2 - Möglichkeiten zur Eingabebestätigung in einer Zelle Um eine Eingabe abzubrechen kann die ESC-Taste benutzt werden. Die Editierung der Dateien ist entweder durch einen Doppelklick in die aktive Zelle, ein Klick in die Bearbeitungsleiste oder mithilfe der Taste F2 innerhalb der aktiven Zelle möglich. 11 EDV I 4.3 Verschieben Beim Verschieben von Zellbezügen werden die Bezüge nicht angepasst. Hierzu ein Beispiel: Ein Beispiel des Verschiebens von Zellbezügen: In der Zelle B2 steht = C3 , C3 wird nun nach D5 verschoben in der Zelle B2 steht nun =D5. Wird B2 nun nach E3 verschoben, so steht in E3 =D5. Menüleiste – Ausschneiden - Einfügen Ausschneiden - Einfügen Tastenkombination – strg +x – strg + v Ausschneiden - Einfügen Tastenkombination – shift + del – shift + ins Ausschneiden - Einfügen Tastenkombination – strg + + Verschieben Drag & Drop – Zellumrandung verschieben Verschieben Kontextmenü – Ausschneiden – Einfügen Ausschneiden - Einfügen Tabelle 3 - Verschiebeoperationen 4.4 Kopieren Beim Kopieren von Zellbezügen werden die Bezüge inkrementell angepasst. Hierzu ein Beispiel: In der Zelle B2 steht =C3 , C3 wird nun nach D5 kopiert in der Zelle D5 steht nun =E6 . Menüleiste – Kopieren - Einfügen Kopieren - Einfügen Tastenkombination – strg +c – strg + v Kopieren - Einfügen Tastenkombination – strg +ins – shift + ins Kopieren - Einfügen Kontextmenü – Kopieren – Einfügen Kopieren - Einfügen Drag & Drop + strg –Zellumrandung verschieben Kopieren Tabelle 4 - Kopieroperationen Die Kopieroperationen können mehrfach wiederholt werden mit der ESC-Taste beendet werden. 12 EDV I 4.5 Auto Ausfüllen Excel ist in der Lage sinnvolle Reihen zu ergänzen. Für diese automatische Füllung der Zellen werden folgende Daten erkannt: - Reihen Ausfüllkästchen Das kleine schwarze Kästchen in der - Daten rechten unteren Ecke der Markierung. Wenn Sie auf das - Quartal - Wochentage - Monate Abbildung 9 - Ausfüllkästchen Ausfüllkästchen zeigen, nimmt der Mauszeiger die Form eines schwarzen Kreuzes an. Zum schnellen Ausfüllen von Zellen mit verschiedenen Typen von Datenreihen können Zellen ausgewählt und mit dem Ausfüllkästchen gezogen werden. Für die Verwendung des Ausfüllkästchens werden Zellen ausgewählt, die als Grundlage für das Ausfüllen weiterer Zellen dienen. Das Ausfüllkästchen wird dann horizontal oder vertikal über die auszufüllenden Zellen gezogen. Alternativ kann im Register START bei der Befehlsgruppe Bearbeiten die Befehlsschaltfläche Füllbereich verwendet werden 4.6 Einfügen / Löschen Um in Excel Zeilen/Spalten einzufügen gibt es mehrere möglichleiten. Mithilfe des Kontextmenüs werden Spalten/Zeilen links/über der Aktiven Zelle eingefügt. Mit der Tastenkombination strg + + kann dieses Menü ebenfalls aufgerufen werden. 4.7 Formatierung Um Zellen oder Zellbereiche zu formatieren, müssen diese ausgewählt sein. Um die ausgewählten Zellen/Zellbereiche zu formatieren gibt es drei Möglichkeiten. 1 Erzeugen der Formatierung über die entsprechenden Elemente im Register Start. 2 Durch klicken des Symbols im Register Start in der Gruppe Schriftart, Ausrichtung oder Zahl. Dadurch öffnet sich ein Dialogfeld in dem Sie die gewünschten Formatierungseinstellungen vornehmen können. 3 Öffnen des Kontextmenüs Dadurch öffnet sich ein Dialogfeld in dem Sie die gewünschten Formatierungseinstellungen vornehmen können. Es können Textausrichtung, Schriftarten, Schriftgrößen, Farben, Rahmen und Zahlenformate verändert werden. 13 EDV I 4.8 Bedingte Formatierung Sinn und Zweck der bedingten Formatierung ist die optische Hervorhebung von Zahlen, die eine bestimmte Bedingung erfüllen. Auf diese Weise können Sie zum Beispiel Umsatzzahlen kennzeichnen, die eine vorgegebene Schwelle über- oder unterschreiten. Wichtige bzw. kritische Daten einer Tabelle lassen sich so auf einen Blick erfassen. Mit den Befehlen dieses Menüs können Sie den Zellen eines Tabellenblattes Regeln zuweisen, mit denen die Formatierung der Zellen gesteuert wird. 4.9 Kommentare Abbildung 10 - Bedingte Formatierung Ein Kommentar dient dazu Ihre Arbeit zu dokumentieren um anderen die Lesbarkeit zu erleichtern. Kommentare werden immer nur der aktiven Zelle zugeordnet. Sie werden entweder über das Kontextmenü – Kommentar einfügen, oder über das Register Überprüfen – Neuer Kommentar hinzugefügt. 4.10 Übungen zur Einfachen Bearbeitung Dateivorlage: (keine Vorlage) a) Eine Tabelle enthält in der 1. Zeile und der ersten Spalte je die Werte 1, 2, 3 usw. füllen Sie nur drei Zellen selbst aus, den Rest automatisch auf die Größe 10x10 Zellen. b) Tragen Sie in die Zelle B2 eine Formel so ein, dass nach dem automatischen Ausfüllen der gesamten Matrix in jeder Zelle das Produkt aus den ersten Werten der jeweiligen Zeile und Spalte steht. 14 EDV I 5 Formeln / Funktionen 5.1 Formeln Formeln und Funktionen Unter einer Formel wird eine Verknüpfung von Werten (Operanden) mit (Rechen-) Operatoren verstanden. Im Sinne der Tabellenkalkulation sollen als Werte üblicherweise Bezüge auf andere Zellen des Tabellenblattes verstanden werden und nur in seltenen Ausnahmefällen direkte Zahlen (Konstanten). Als erstes Zeichen muss ein Gleichheitszeichen stehen Eine Formel in Excel hat folgende Syntax: Abbildung 11 - Syntax einer Formel Falls in einer Formel mehrere unterschiedliche Operatoren verwendet werden, so wird folgende Rangfolge dabei angewendet Rang Operator 1 - 2 3 4 5 % ^ * und / + und - Beschreibung Negation eines Wertes – das Minuszeichen steht dabei unmittelbar vor einem Wert (z. B. -A1) Division eines Wertes durch Hundert Potenzierung eines Wertes Multiplikation und Division Addition und Subtraktion Tabelle 5 - Rangfolge von Operatoren 5.2 Relative und absolute Zellbezüge Standardmäßig verwendet Excel Zellbezüge in Formeln als relative Bezüge Bsp: =B3 Zellbezüge, die sich nicht anpassen, werden als absolute Bezüge bezeichnet. Sie bleiben beim Kopieren unverändert. Um einen Zellbezug als absoluten Bezug zu kennzeichnen, wird vor der Zeilen- und Spaltenbezeichnung ein Dollarzeichen ($) eingegeben Bsp: =$B$3. Dies kann beim Eingeben des Zellbezuges oder später über die Bearbeitungsleiste erfolgen. Außerdem kann man den Zellbezug in der Formel nachträglich markieren und durch Betätigen der F4-Taste in einen absoluten Bezug umwandeln. 15 EDV I Zellbezüge können auch als gemischte Bezüge eingegeben werden. Dies kann dann nützlich sein, wenn beim Kopieren nur der Spaltenbuchstabe oder die Zeilennummer angepasst werden soll. 5.3 Namen Um eine bessere Lesbarkeit von Excel Formeln herzustellen, können Namen in den Formeln verwendet werden z.B.: = Kapital * Zinssatz * Tage / 100 /360 Diese Namen werden für bestimmte Zellen oder Zellbereiche vergeben und sind absolut. 5.4 Operatoren Arithmetische Operatoren: +, -, *, /,%,^. Logische Operatoren: innerhalb von Excel sind: =, <, >, >=, <=, <>, und, oder, nicht. Um Texte innerhalb von Excel zu verketten gibt es den & Operator. Bsp: =(“Hallo“&“Hallo“) 5.5 Funktionen Die Möglichkeit, Berechnungen über Excel-Funktionen durchführen zu lassen, ist ein sehr wichtiger Bestandteil in Excel. Eine Funktion ist eine vorgefertigte Berechnungsformel. Beispiel: Für die Ermittlung des Mittelwertes aus 4 Zahlen Mit einer Excel Funktion ist das Ergebnis zwar dasselbe, der Weg dahin ist jedoch eine andere. Man wählt über das Funktionsfenster einfach die Funktion Mittelwert aus. Man setzt wie gewohnt die Zahlen ein. Man braucht jedoch nicht mehr alle Zahlen zusammenzuzählen und /4 zu teilen. Denn, Excel weiß bereits, dass er die Zahlen addieren soll und danach durch die Anzahl der Zellen teilen soll. Dafür hat er den Funktionsnamen Mittelwert. Formel =(Zahl1+Zahl2+Zahl3+Zahl4)/4. Funktion =Mittelwert(Zahl1;Zahl2;Zahl3;Zahl4) 16 EDV I 5.6 Funktionsassistent In Excel lassen sich mehr als 400 Funktionen nutzen, diese sind in der Funktionsbibliothek nach Kategorien zusammen gefasst. Zum Funktionsassistenten gelangen sie durch einen Klick auf Funktion einfügen im Register Formeln. Abbildung 12 - Funktionsassistent 5.7 Externe Bezüge In Formeln können Sie auch auf Zellen bzw. Zellbereiche Bezug nehmen, die auf anderen Blättern innerhalb der gleichen oder auch in einer anderen Arbeitsmappe enthalten sind. Die Syntax ist folgende [𝐷𝑎𝑡𝑒𝑖𝑛𝑎𝑚𝑒]𝑇𝑎𝑏𝑒𝑙𝑙𝑒𝑛𝑏𝑙𝑎𝑡𝑡! 𝑍𝑒𝑙𝑙𝑏𝑒𝑧𝑢𝑔 Für den Fall das der Zielzellbereich innerhalb der Datei liegt, wird die Angabe des Dateinamens nicht benötigt. 17 EDV I 5.8 Spezielle Matrixfunktionen INDEX SVERWEIS WVERWEIS VERWEIS Ermittelt mit der Angabe der Spalten- und Zeilennummer den Inhalt einer Zelle Durchsucht die erste Spalte einer Matrix nach einem bestimmten Wert Durchsucht die erste Zeile einer Matrix nach einem bestimmten Wert Durchsucht eine Matrix nach einem bestimmten Wert; der Aufbau der Matrix bestimmt, welche Zeile bzw. Spalte durchsucht wird. Tabelle 6 - Matrixfunktionen 5.9 Zielwertsuche Stark vereinfacht gesagt kann man das Zielwertsuchen Tool benutzen um Dreisatzaufgaben zu lösen. Der Vorteil gegenüber einer normalen Berechnung einer Dreisatzaufgabe ist, dass die Rechenkette die zum gewünschten Ergebnis führt fast endlos lang sein kann. Deshalb eignet sich die Zielwertsuche auch sehr gut um gewünschte Resultate in komplexen Modellen zu berechnen so lange sich nur eine Variabel ändert. Abbildung 13 - Zielwertsuche Es soll die benötigte monatliche Wachstumsrate ermittelt werden, sodass im Dezember 5000 Besuche verzeichnet werden können. Im Beispiel hier haben die Zellen B3:B18 alle eine Formel die wie folgt aussieht (hier aus Zelle B3): =B2*(1+$C$2) Abbildung 14 - Wachstumsrate Zielwertsuche 18 EDV I 5.10 Solver Beim Solver handelt es sich um ein Add-In, welches prinzipiell wie die Zielwertsuche funktioniert, bei dem aber noch zusätzliche Bedingungen angegeben werden müssen, um eine Lösung für das Optimierungsproblem zu finden. Um den Solver nutzen zu können muss dieser zuerst aktiviert werden. Hierzu klicken Sie zunächst auf Datei – Optionen – Add-Ins - Abbildung 15 - Add-Ins Auswahlfenster Das Add-In Solver ist nun aktiviert und befindet sich im Register Daten in der Gruppe Analyse. Elemente des Solvers sind Zielzelle, Veränderbare Zellen und die Nebenbedingungen. In der Zielzelle muss eine Formel stehen, die Bezüge auf die Veränderbaren Zellen enthält. In den Veränderbaren Zellen dürfen nur Werte enthalten. Diese Werte werden so angepasst, dass das optimale Ergebnis gefunden wird. Sowohl für die Zielzelle als auch für die veränderbaren Zellen können Bedingungen gesetzt werden, die die Werte genauer eingrenzen. Diese Bedingungen nennt man Nebenbedingungen. 19 EDV I 5.11 Übungen zu Formeln und Funktionen 5.11.1 Externe Verweise Dateivorlage: Übung_ExterneVerweise.xlsx a. Erstellen Sie einen Externen Verweis zur [Übung_Diagramme.xls]Prozente um die Tabelle Externe Bezüge zu füllen. 5.11.2 Zielwertsuche Dateivorlage: Übung_Zielwertsuche.xlsx b. Berechnen Sie Höhe und Radius einer Getränkedose mit 1000ml so, dass der Materialverbrauch minimiert wird. c. Bestimmen Sie bei einer Höhe von 10 cm den Radius der Dose so, dass das Volumen 1000ml beträgt 5.11.3 Solver Dateivorlage: Übung_Solver.xlsx a. Lösen Sie das Gleichungssystem in der Datei auf dem Arbeitsblatt Gauss. 20 EDV I Beispiel: Abbildung 16 - LGS - Lösung mit Solver Abbildung 17 - Solver-Parameter Beim Hinzufügen von Nebenbedingungen gibt es mehrere Operatoren die zur Auswahl stehen. In unserem Beispiel haben wir das =. Die Operatoren <= und >= sind gleich wie in der Mathematik zu deuten. Der Operator INT bedeutet, dass die Zahl ganzzahlig und der Operator BIN, dass die Zahl Binär(1 oder 0) sein muss. DIF bedeutet, dass der Wert ganzzahlig und unterschiedlich sein muss. Dies bedeutet, dass ein Wert nicht mehrfach vorkommen darf. Neben einem Bestimmten Wert können auch der Maximale und der Minimale Zielwert bestimmt werden. Dazu einfach die Auswahl auf Max. oder Min. stellen. 21 EDV I 6 Diagramme 6.1 Erstellen von Diagrammen Um Diagramme zu erstellen benötigen sie als erstes die Werte für das Diagramm. Markieren Sie die Werte der Tabelle und wechseln Sie zum Register Einfügen und suchen Sie die Gruppe Diagramme. (ALT+F1 erstellt mit den Daten im aktuellen Bereich ein eingebettetes Diagramm. Alternativ Taste F11 für ein Diagramm auf einem neuen Arbeitsblatt) Hier finden Sie eine Vielzahl von Diagrammen wie beispielsweise Säulen-, Torten-, Blasen-, Ring-, oder Balkendiagramme. Ebenso finden Sie die Schaltfläche Empfohlene Diagramme diese analysiert die eingegebenen Daten und unterbreitet Vorschläge. Um ein Diagramm zu erstellen müssen Sie jetzt noch den Typ auswählen. Die markierten Werte werden nun automatisch als Diagramm dargestellt. Die Grafik ist nun fertig, kann nun jederzeit bearbeitet und ergänzt werden. Um dem Diagramm weitere Daten hinzuzufügen, müssen Sie auf das Diagramm klicken und die Rechtecke um den Daten entsprechend vergrößern. Somit können Sie Ihre Tabelle um einzelne Daten erweitern. Das ändern von Daten ist ebenso über das Kontextmenü möglich hierzu Daten auswählen… auswählen. Um den Diagrammtyp zu ändern öffnen Sie das Kontextmenü auf der Diagrammfreifläche und wählen Diagrammtyp ändern…. Abbildung 18 - Diagramm formatieren Mit einem Klick auf das Diagramm können Sie das Design ändern. Wählen Sie über das Kontextmenü Diagrammbereich Formatieren aus. Über das Plus-Symbol können Sie unter anderem weitere Elemente wie Beschriftungen, Linien und eine Legende hinzufügen oder ausblenden. 22 EDV I 6.2 Übungen zu Diagramme Dateivorlage: Übung_Diagramme.xlsx a. Erstellen Sie ein Diagramm nach dem Muster „Umsätze“ in der Arbeitsmappe Diagramme. b. Zeichnen Sie ein Makro auf, das die Erstellung dieses Diagrammtyps automatisiert. c. Erstellen Sie ein Diagramm für die Tabelle Alter, 3DSäulen, Prozente und Städte. 7 Formularsteuerelemente 7.1 Anwendung von Formularsteuerelementen Um Steuerelemente in Excel benutzen zu können, müssen Sie die Entwicklertools aktivieren. Hierzu klicken sie auf das Register Datei – Optionen – Menüband anpassen. Abbildung 19 - Menüband anpassen - Entwicklertools Das Kontrollkästchen bei Entwicklertools aktivieren. Nun befindet sich ein weiteres Register namens Entwicklertools im Ribbon. 23 EDV I Abbildung 20 - Gruppe Steuerelemente – Formularsteuerelemente 7.2 Übersicht der Steuerelemente Abbildung 21 - Formularsteuerelemente Name Beispiel Beschreibung Bezeichnung Gibt den Zweck einer Zelle bzw. eines Textfelds an Gruppenfeld Gruppiert verwandte Steuerelemente in einem Rechteck Schaltfläche Führt ein Makro aus wenn ein Benutzer darauf klickt. Kontrollkästchen Aktiviert oder deaktiviert einen Wert, der eine gegenteilige und unzweideutige Auswahl kennzeichnet. 24 EDV I Ermöglicht eine einzelne Auswahl unter einer begrenzten Gruppe von sich gegenseitig ausschließenden Optionen. Optionsfeld Zeigt eine Liste mit mindestens einem Textelement an, in der der Benutzer eine Auswahl treffen kann. Listenfeld Ein Kombinationsfeld ist eine Kombination aus Textfeld und Listenfeld. Kombinationsfelder werden zum Erstellen von Dropdown-Listenfeldern verwendet. Kombinationsfeld Führt einen Bildlauf durch einen Bereich von Werten durch, wenn Sie auf die Bildlaufpfeile klicken oder das Bildlauffeld ziehen. Bildlaufleiste Erhöht oder verringert einen Wert, z. B. aufeinanderfolgende Zahlen, Zeit- oder Datumsangaben. Drehfeld Tabelle 7 - Werkzeugsammlung 7.3 Übungen zu Formularsteuerelemente Dateivorlage: Übung_Schraube.xlsx a. Überprüfen Sie die benannten Bereiche und legen Sie Namen fest, wo sie bisher fehlen. Hinweis: Der Fehler #Name weist darauf hin, dass in einer Formel ein Name verwendet wird, der in der Arbeitsmappe nicht vergeben wurde. b. Wählen und programmieren Sie die Steuerelemente für die Auswahl der Schraubenart und der Festigkeitsklasse. c. Reduktionsfaktor und Streckgrenze fehlen! d. Die Datei enthält einen Fehler, der zur Unterdimensionierung der Schraubverbindung führt. Berichtigen Sie diesen. 25 EDV I 8 Makros 8.1 Der Makro Rekorder Der Makrorecorder bietet die Möglichkeit, Programmcode automatisch aufzeichnen zu lassen. Bei der Erstellung von Makros werden die einzelnen Arbeitsschritte, die Sie ausführen, nacheinander aufgezeichnet. Das Aufgezeichnete Makro kann in der VBA Entwicklungsumgebung eingesehen werden. Auch für Programmiererfahrene Benutzer ist dies Hilfreich, Beispielsweise um sich vergessene Befehle anzeigen zu lassen ohne die Onlinehilfe hinzuziehen zu müssen. 8.2 Grenzen der Makro Programmierung Es lassen sich sehr viele Funktionen als Makro mitschreiben, allerdings sind dem auch einige Grenzen gesetzt. Es ist für Dinge wie - Schleifen - Bedingungen und - Benutzerdefinierte Dialogfelder Unerlässlich einen eigenen VBA-Code zu schreiben. 8.3 Beispielanwendung 8.3.1 Makroaufzeichnung starten Hierzu klicken Sie im Register Ansicht in der Gruppe Makros auf den Pfeil und wählen sie Makro aufzeichnen aus. Abbildung 23 - Makros Schaltfläche Abbildung 22 - Makroeigenschaften definieren 26 EDV I Hier können Sie Ihrem Makro einen Namen Geben z.B. Neues Blatt Möchten Sie das Makro später über eine Tastenkombination ausführen, geben Sie einen Buchstaben (oder Buchstaben und Shift) in dieses Feld ein. Die für ein Makro festgelegte Tastenkombination überschreibt eine möglicherweise bereits existierende Tastenkombination, solange die Arbeitsmappe geöffnet ist, die das Makro enthält. Wählen Sie eine Tastenkombination, die in Excel noch nicht verwendet wird. Im Anhang finden Sie die bereits in Excel belegten Tastenkombinationen Belassen Sie den Eintrag Diese Arbeitsmappe, wenn Sie das Makro in der momentan geöffneten Arbeitsmappe anlegen möchten. Wenn Sie hingegen ein Makro aufzeichnen, welches immer für jede Arbeitsmappe verfügbar sein soll, wählen Sie aus dem Dropdown den Eintrag Persönliche Makroarbeitsmappe aus. (Achtung: Makros die in der Hochschule in der Persönlichen Makroarbeitsmappe gespeichert werden sind nach dem Abmelden gelöscht.).Falls Sie ein Makro in einer anderen Arbeitsmappe anlegen möchten, so wählen Sie den Eintrag Neue Arbeitsmappe. Geben Sie in dieses Feld eine Beschreibung ein, die beispielsweise den Ablauf und/oder Verwendungszweck des Makros genauer definiert. Tabelle 8 - Makroeigenschaften Nach dem auswählen der Schaltfläche OK befindet sich in der Statusleiste ein Quadrat. Dies dient dazu die Makroaufzeichnung zu Stoppen. Alle Schritte die Sie jetzt ausführen werden in das Makro geschrieben. 8.3.2 Relative/Absolute Makroaufzeichnung Absolute Aufzeichnung • Standardmäßig zeichnet Excel genau die Klicken Sie vor Aufzeichnung des Adressen der Zellen auf, die während der Makros im Register ANSICHT in der Makroaufzeichnung bearbeitet werden. Gruppe MAKROS auf den Pfeil des Symbols MAKROS • Deaktivieren Sie Eintrag RELATIVE AUFZEICHUNG. Relative Aufzeichnung • Wenn ein Makro auf unterschiedliche Markieren Sie die Zelle, von der die Zellbereiche angewandt werden soll oder relativen Befehle des Makros ausgehen Zellen zu bearbeiten sind, die relativ zur sollen. • markierten Zelle positioniert sind, kann ein Aktivieren Sie den Eintrag Makro auch unabhängig von der tatsächlichen RELATIVE AUFZEICHNNG. Zellposition aufgezeichnet werden. Tabelle 9 - Relative/Absolute Makroaufzeichnung 27 EDV I 8.3.3 Beispiel Ein Neues Arbeitsblatt wird eingefügt und der Name des Blattes geändert. 8.3.4 Makro einsehen Ein Makro kann auf verschiedene Arten aufgerufen werden. 1. Im Register Ansicht in der Gruppe Makros anzeigen - auswählen Makros und anschließend auf Bearbeiten. 2. Die Tastenkombination Alt+F8 und anschließend auf Bearbeiten. 3. Die Tastenkombination Alt+F11 um direkt in die VBA Entwicklungsumgebung zu gelangen Abbildung 24 - Aufgezeichnetes Makro auswählen Sub NeuesBlatt() ' ' NeuesBlatt Makro ' Fügt ein Neues Blatt ein ' ' Tastenkombination: Strg+Umschalt+N ' Sheets.Add After:=ActiveSheet Sheets("Tabelle2").Select Sheets("Tabelle2").Name = "Blatt Nummer 2" End Sub Zeilen im Code die mit einem Hochkomma beginnen sind Kommentarzeilen. Der Makrorecorder liefert wertvolle Hinweise über die Syntax der aufgezeichneten Befehle, leider zeichnet er auch Befehle auf die nicht benötigt werden. Im Code 1 z.B. ist der Schritt Sheets(“Tabelle2“).Select redundant Aus diesem Grund stellt ein Mitschreibmakro oft nur den ersten Schritt dar, um ein Makro zu erstellen. 28 EDV I 8.4 Starten eines Aufgezeichneten Makros Ein Makro kann auf verschiedene Arten gestartet werden. Über die Schaltfläche Ausführen in Abbildung 23 Durch öffnen der VBA Entwicklungsumgebung (Alt+F11) – Makro auswählen und Play Schaltfläche betätigen (Alternativ F5) Durch eine eigens dafür vorgesehene Schaltfläche.(7.2 Übersicht der Steuerelemente) 8.5 Übungen zu Makros Dateivorlage: Übung_Schraube.xlsx a. Zeichnen Sie ein Makro auf, das nach der Vorlage Stufe1 weitere Blätter kopiert. Ergänzen Sie dieses Makro um die Möglichkeit, einen Namen für das neue Blatt zu wählen. 9 VBA-Umgebung 9.1 Der Projektexplorer Um den Projektexplorer zu sehen müssen Sie wieder in die Entwicklungsumgebung Alt+F11. Alternativ dazu können Sie mittels Menüpunkt Entwicklertools und der Schaltfläche Visual Basic die Entwicklungsumgebung aufrufen. Abbildung 25 VB Schaltfläche In der linken oberen Ecke sehen Sie den Projekt-Explorer, der alle geöffneten Arbeitsmappen sowie die darin befindlichen Tabellenblätter anzeigt. Standardmäßig besteht ein VBAProject aus einem Ordner (Microsoft Excel Objekte), das 2 Elemente umfasst: • ein Symbol für die Arbeitsmappe selbst und • ein weiteres für das Tabellenblatt der Arbeitsmappe Abbildung 26- Projektexplorer Möchten Sie innerhalb der Arbeitsmappe oder der Tabelle ein Makro oder eine Prozedur erstellen. Doppelklicken Sie auf das jeweilige Element. Damit öffnen Sie das zugehörige Codefenster. 29 EDV I Sowohl das Projekt selbst als auch seine Elemente können Sie nach Belieben umbenennen. Dazu benötigen Sie das Eigenschaftsfenster. 9.2 Eigenschaftsfenster Das Eigenschaftenfenster wird in dem Register Ansicht - Eigenschaftsfenster oder durch die Funktionstaste F4 geöffnet, falls es noch nicht aktiviert sein sollte. Das Eigenschaftsfenster zeigt verschiedene Merkmale zum Momentan ausgewählten Element (Abbildung 26). Abbildung 27 - Eigenschaftsfenster Der Name der Tabelle1 ist bisher Tabelle1 Sie können diesen nach Belieben ändern. Nach dem Erstellen eines Makros, erscheint neben dem Ordner Microsoft Excel Objekte ein weiterer, nämlich Module. Zudem lassen sich u.a. auch eigene Dialogfelder (Formulare) im Projekt-Explorer erstellen. Ist der Ordner Module bereits angelegt, erhält er mindestens 1 Element, das standardmäßig als Modul1 bezeichnet wird. Um ein neues Modul zu erzeugen Im Register Einfügen – Modul Im gewünschten Projekt im Kontextmenü Einfügen – Modul Um ein erstelltes Modul zu entfernen rufen Sie das Kontextmenü des zu entfernenden Moduls auf – Entfernen von Modul… Nun werden Sie gefragt ob Sie das Modul vor dem Löschen noch exportieren wollen. Dies bietet sich an, wenn Sie das Modul noch benötigen aber nicht in diesem Projekt. Ansonsten bestätigen Sie das Entfernen mit Nein. 30 EDV I 9.3 Objektkatalog Im Objektkatalog finden Sie alle verfügbaren Objekte mit ihren zugeordneten Eigenschaften und Methoden. Innerhalb von Excel sind alle Komponenten als Objekte angesehen. Somit sind Arbeitsmappen und Tabellenblätter ebenso Objekte wie eine Schaltfläche oder ein Diagramm. Sie öffnen den Objektkatalog im Register Ansicht – Objektkatalog oder über F2 öffnen. 9.4 Direktfenster Das Direktfenster kann im Register Ansicht – Direktfenster oder durch Strg+G geladen werden. Dort lässt sich der Inhalt von Variablen während der Programmausführung abfragen Einzelne Programmzeilen können dort eingegeben und getestet werden. Mittels Debug.Print können dort Programmausgaben aufgelistet werden. Abbildung 28 - Direktfenster 9.5 Lokalfenster Mit Hilfe des Lokalfensters können Sie Variablen überwachen, die in dem gerade genutzten Modul sowie in der aufgerufenen Sub deklariert sind. Abbildung 29 - Lokalfenster 31 EDV I 9.6 Überwachungsfenster Das Überwachungsfenster ist ähnlich wie das Lokalfenster, wobei bei dem Überwachungsfenster vorher festgelegt werden muss, was überwacht wird. Es können alle Objekte überwacht werden. Abbildung 30 - Überwachungsfenster Abbildung 31 - Überwachung Hinzufügen 32 EDV I 10 VBA-Programmierung 10.1 Programm erstellen In VBA wird als Prozedur bezeichnet, was bislang Makro genannt wurde. Prozeduren werden durch folgende Schlüsselwörter eingerahmt: Sub Name Anweisungsblock innerhalb der Prozedur End Sub Um eine Prozedur zu erstellen, öffnen sie Entweder ein Tabellenmodul (Doppelklick auf Tabelle im Projektexplorer) oder Fügen ein neues Modul ein und öffnen dieses durch einen Doppelklick. Nach dem Erscheinen des VBA-Editor geben Sie folgenden Code ein: Sub HelloWorld() MsgBox “Hello World!“ End Sub MsgBox ist ein Schlüsselwort. Schlüsselwörter bezeichnen von Excel reservierte Wörter. Wenn Sie hinter MsgBox ein Leerzeichen eingeben, erscheint die QuickInfo für diesen Befehl. Darin wird der jeweilige Aufbau eines Befehls angezeigt. Zum Start von HelloWorld betätigen Sie einfach die Funktionstaste F5 oder klicken Sie auf die Schaltfläche Makro Ausführen in dem Register Ausführen. Abbildung 32 - Makro starten Dann erscheint auf dem Bildschirm folgende Meldung welche durch klicken von OK verschwindet. 33 EDV I Abbildung 33 - Hello World! Msgbox Die Prozedur HelloWorld soll jetzt noch durch das Einfügen einer InputBox etwas flexibler gestaltet werden. Eine InputBox erwartet eine Eingabe des Benutzers, die einer Variablen vom Typ Variant übergeben wird. Für die unten gezeigte InputBox wurde die Titelzeile, der Beschreibungstext und der Standardtext im Eingabefeld in der Prozedur definiert. Den Standardtext kann der Benutzer beliebig überschreiben. Abbildung 34 - Hello World! Inputbox Sub HelloWorld() ' Variable vom Typ Variant deklarieren Dim varMsg As Variant ' Meldung erfassen varMsg = InputBox("Wie lautet die Meldung?", _ "Meldung", "Hello World!") ' Meldung ausgeben MsgBox varMsg End Sub Die Syntax von Anweisungen beruht auf folgenden Regeln : Eine einfache Anweisung wird durch das Ende einer Codezeile abgeschlossen. Ein Anweisungsblock besteht aus mehreren einfachen Anweisungen. Anweisungen, die sich innerhalb spezieller Schlüsselwörter befinden, werden als Anweisungsblock bezeichnet. Beispiel: Sub … End Sub 34 EDV I Anweisungsblöcke können geschachtet werden. Eine Anweisung kann in der nächsten Zeile fortgesetzt werden: Dies erfolgt durch ein Leerzeichen mit anschließendem Unterstrich ( _ ) am Ende der Zeile. Um die Lesbarkeit zu erhalten ist es üblich die fortgesetzten Zeilen einzurücken. 10.2 Reservierte Wörter Alle Wörter die fester Bestandteil von VBA sind, werden als reservierte Wörter bezeichnet. Dazu zählen u. a. alle Schlüsselwörter wie As, New, True, False Wörter die Anweisungen einleiten wie Dim, Public, If, For, Next Datentypen (siehe dazu Tabelle 9) 10.3 Variablen deklarieren 10.3.1 Bezeichner Bezeichner sind alle vom Anwender frei wählbaren Namen, mit denen im VBA-Code Prozeduren, Funktionen, Variablen und Konstanten bezeichnet werden müssen. Der Name der Prozedur HelloWorld ist beispielsweise ein frei gewählter Bezeichner. 10.3.2 Variablen Die Deklaration der Variablen sollte bei der VBA-Programmierung immer erfolgen. In der Entwicklungsumgebung im Menü Extras - Optionen, Register Editor, Rahmen CodeEinstellungen wird deshalb das Kontrollkästchen Variablendeklaration erforderlich aktiviert. Dadurch wird automatisch im Deklarationsbereich eines jeden Moduls der Befehl Option Explicit eingefügt. VBA zwingt einem damit, alle Variablen mit der Dim Anweisung zu deklarieren, bevor sie benutzt werden. Die explizite Variablendeklaration hilft ganz enorm dabei, Programmierfehler zu vermeiden. 35 EDV I 10.3.3 Datentypen Gebräuchliche Standarddatentypen sind: Datentyp Boolean Byte Currency Präfix für Variable bln oder bol byt cur Date Double dat oder dtm dbl Integer Long Object Single int lng obj sng String Variant str var Art Wahrheitswert Ganze Zahl Festkommazahl (für Währung) Datums-/Zeitwert Dezimalzahl (Fließkommazahl) Ganze Zahl Ganze Zahl Objektvariable Dezimalzahl (Fließkommazahl) Text Alle Typen Kurzbezeichnung keines keines @ keines # % & keines ! $ keines Wertebereich TRUEoder FALSE 0 bis 255 15 Vor- und 4 Nachkommastellen 1.1.100 bis 31.12.9999 Zahlen mit insgesamt (Vor- und Nachkommastellen) 16 Stellen -32.768 bis 32.767 -2.147.483.648 bis 2.147.483.647 Verweist auf ein Objekt Zahlen mit insgesamt (Vor- und Nachkommastellen) 8 Stellen Zeichenketten zunächst unbestimmt Tabelle 10 - Datentypen 10.3.4 Variablenamen Der Gebrauch von Variablen in VBA-Anweisungen ist vergleichbar mit dem Einsatz von Variablen in mathematischen Formeln. Für die Bildung von Variablennamen gelten bestimmte Regeln: Der Name des entsprechenden Bezeichners muss mit einem Buchstaben beginnen. Danach kann jede mögliche Kombination von Zahlen und Buchstaben sowie das Unterstreichungszeichen ( _ ) folgen. Bezeichner dürfen keine Leerstellen, Punkte ( . ) oder andere Zeichen enthalten, die bei VBA für mathematische Berechnungen oder Vergleichsoperationen (=, +, - usw.) eingesetzt werden. Sonderzeichen wie #, %, &, ! oder ? sind nicht erlaubt. Variablennamen und andere Bezeichner dürfen maximal 255 Zeichen enthalten. Variablennamen dürfen nicht mit bestimmten VBA-Schlüsselwörtern identisch sein. Wird ein Variablenname gewählt, der mit einem reservierten Wort identisch ist, meldet VBA einen Syntaxfehler. 36 EDV I Bezeichner müssen in ihrem Gültigkeitsbereich eindeutig sein. Das heißt, dass der Name innerhalb der Prozedur oder des Moduls, in dem die Variable eingesetzt wird, nur einmal deklariert sein darf. Wenn versehentlich zwei Variablen in einer Prozedur den gleichen Namen haben oder der Name der Variablen mit dem Namen einer Prozedur in dem gleichen Modul identisch ist, meldet VBA bei der Ausführung der Prozedur mit einem Laufzeitfehler. Der Name einer Variablen sollte ihre Aufgabe so gut wie möglich verdeutlichen. Variablen sollten nicht größer als erforderlich dimensioniert werden. Zwischen Groß- und Kleinschreibung von Bezeichnern unterscheidet VBA nicht. 10.3.5 Präfix Sinnvollerweise wird ein Präfix vor den eigentlichen Variablennamen gesetzt, aus dem der Datentyp hervorgeht. Das erleichtert die Lesbarkeit des Codes: Datentyp Variableninhalt Beispiel für Variablennamen String Text (Zeichenkette) Integer Ganze Zahlen von -32.768 bis 32.767 Date Datum oder Zeit strVorname, strNachname, strMsg intZaehler, intPersonen, intSpalte dtmStart, dtmEnde, dtmHeute Tabelle 11 - Präfix-Variablen Wenn Sie Ihre Variablennamen übersichtlich und aussagekräftig definieren möchten, empfiehlt sich folgende Schreibweise mit Präfix und Festlegung des Datentyps: Dim dtmStart As Date Zur expliziten Deklaration einer Variablen mit Festlegung des Datentyps wird die DimAnweisung benutzt. Sie bewirkt, dass VBA eine Variable vom Typ Datum erzeugt. Variablen eines Typs sollten möglichst in einer Codezeile deklarieren werden. 10.3.6 Deklarationsregeln Eine Variable, die innerhalb einer Prozedur deklariert wird, ist auch nur innerhalb dieser Prozedur gültig. Innerhalb des Gültigkeitsbereichs einer Variablen muss diese eindeutig benannt sein. In VBA ist es möglich, Variablen zu deklarieren, die in mehreren Prozeduren gültig sind. Wenn Variablen mit gleichem Namen sich in unterschiedlichen Gültigkeitsbereichen befinden, benutzt VBA die Variable mit der lokalsten Gültigkeit. 37 EDV I Die Gültigkeitsbereiche und –Dauer von Variablen sind folgender Tabelle zusammengefasst: Variablenty Gültigkeitsbereich Sie müssen nur einmal Globale p deklariert werden und Variablen gelten dann in allen Prozeduren eines Projekts. Gültigkeitsdauer Während der gesamten Laufzeit der Anwendung. Deklaration Werden durch das Schlüsselwort Public im allgemeinen Deklarationsteil des Moduls deklariert. Gelten nur in der jeweiligen Prozedur, in der sie deklariert werden. Bestehen nur solange, wie die jeweilige Prozedur abläuft. Wenn mit dem Schlüsselwort Dim in der jeweiligen Prozedur deklariert, in der sie benutzt werden. Sind lokale Variablen, die nur in der jeweiligen Prozedur gültig sind. Während der gesamten Laufzeit der Anwendung. Stehen allen Prozeduren des Moduls zur Verfügung, in dem sie deklariert werden. Während der gesamten Laufzeit der Anwendung. Werden mit dem Schüsselwort Static in der jeweiligen Prozedur deklariert, in der sie benutzt werden. Werden mit dem Schlüsselwort Private im allgemeinen Deklarationsteil des Moduls deklariert. Lokale Variablen Statische Variablen Variablen auf Modulebene Tabelle 12 - Gültigkeitsbereiche und -dauer von Variablen 10.3.7 Übungen zu Variablen Dateivorlage: Übung_Variablen.xlsm a. Schreiben Sie eine Prozedur, die die Summe der Kehrwerte der natürlichen Zahlen bis zu einer bestimmten Zahl (Benutzereingabe) bildet. b. Schreiben Sie eine Prozedur, die einen Tippfehler in einem Variablennamen enthält und einen entsprechenden Fehler produziert. Schalten sie dabei die Option Explicit zunächst aus. c. Schalten Sie im Modul 1 Option Explicit ein und deklarieren Sie die Variablen nach den Erfordernissen (Double, String). 10.4 Konstante 10.4.1 Benutzerdefinierte Konstante Verwenden Sie Werte in einem VBA-Programm, die sich nicht ändern, können diese als Konstanten mit dem Schlüsselwort const deklariert werden. Gemäß empfohlener Namenskonvention werden Konstanten mit dem Präfix con gekennzeichnet. Dazu ein Beispiel: [Public|Private ] Const conAnzahl As Integer = 20 38 EDV I 10.4.2 Integrierte Konstante VBA stellt eine große Zahl von integrierten Konstanten zur Verfügung. Am Präfix des Namens dieser Konstanten lässt sich erkennen, zu welche Anwendung oder zu welchem Bereich sie gehören: vb VBA-Konstante, z. B. vbYesNo xl Excel-Konstante, z. B. xlColumn fm MSForms für Formulare, z. B. fmActionPaste Tabelle 13 - Integrierte Konstanten 10.5 Literale Feste Werte (z. B. Zahlen oder Texte), die im Programmcode eingegeben werden, bezeichnet man als Literale. Ihre Schreibweise ist abhängig vom jeweiligen Datentyp Numerische Datentypen Gültig sind die Ziffern 0 bis 9 und die Vorzeichen + und – Fließkommazahlen erhalten einen Punkt ( .) als Dezimaltrennzeichen. Zeichen und Zeichenfolgen Diese werden in Anführungszeichen ( " ) eingeschlossen Boolescher Datentyp Zulässig sind: True oder False Datum und Zeit Diese werden in Raute-Zeichen ( # ) eingebettet #12/31/2011# Zulässig ist auch die übliche deutsche Schreibweise: "31.12.2011" 10.6 Datenfelder Zu einem Datenfeld können Werte gleicher Art in einer Liste zusammengefasst werden. Sie werden alle mit demselben Namen anhand ihres Indexes angesprochen. Oft erhalten Felder noch einen Präfix. Gemäß gängiger Namenskonventionen beginnen sie entweder mit „arr“ oder nur mit „a“, womit gekennzeichnet wird, dass es sich im ein Feld (engl. array) handelt. Dazu zwei Beispiele: Dim arrWochenNummer(1 To 52) As Integer Dim asngMwstSatz(3) As Single 39 EDV I Um beispielsweise 7 Wochentage unter dem Namen varWochenTag anzusprechen, wird folgendes Datenfeld benötigt: varWochenTag Index: Mo 0 Di 1 Mi 2 Do 3 Fr 4 Sa 5 Sa 6 Tabelle 14 - Beispiel für ein Datenfeld mit sieben Elementen Auf den ersten Wert (Mo) des Datenfeldes muss mit dem Index 0 zugegriffen werden, denn Datenfelder basieren standardmäßig auf null. Soll der Index stattdessen mit 1 beginnen, muss vorher im allgemeinen Deklarationsbereich der Befehl Option Base 1 eingefügt werden. Die folgende Prozedur DatenfeldAuslesen nutzt das in Tabelle 13 veranschaulichte Datenfeld varWochenTag. Sie verwendet die in VBA eingebauten Datumsfunktionen WeekDay und Date, um den Wochentag des aktuellen Tagesdatums als ganze Zahl zurückzugeben. Dann wird mit Hilfe der Fallstruktur Select Case...End Select das Kürzel des jeweiligen Wochentags ermittelt und anschließend mit Debug.Print im Direktfenster ausgegeben. Sub DatenfeldAuslesen() Dim varWochenTag As Variant Dim strTag As String varWochenTag = Array("Mo", "Di", "Mi", "Do", "Fr", "Sa", "So") Select Case Weekday(Date, vbMonday) ' gibt Wochentag zurück Case 1 strTag = varWochenTag(0) Case 2 strTag = varWochenTag(1) Case 3 strTag = varWochenTag(2) Case 4 strTag = varWochenTag(3) Case 5 strTag = varWochenTag(4) Case 6 strTag = varWochenTag(5) Case 7 strTag = varWochenTag(6) End Select Debug.Print "Heute ist " & strTag End Sub 10.7 Kontrollstrukturen In VBA werden zwei wichtige Gruppen von Kontrollstrukturen unterschieden: • Verzweigungen und • Schleifen 40 EDV I Abbildung 35 - Kontrollstrukturen in VBA 10.7.1 Einseitige Auswahl Eine einseitige Auswahl ist wie folgt aufgebaut: Sie beginnt mit dem Schlüsselwort If. Dahinter wird eine Bedingung (engl. condition) geschrieben. Nach der Bedingung folgt das Schüsselwort Then. Anschließend folgen eine oder mehrere Anweisungen, die ausgeführt werden, wenn die Auswertung der Bedingung den Wert True ergibt. Liefert die Auswertung der Bedingung dagegen den Wert False, erfolgt keine Aktion. Eine einseitige Anwahl wird mit End If abgeschlossen. Das ist allerdings nur dann notwendig, wenn mehr als eine einzelne Anweisung hinter Then folgen. 41 EDV I Beispiel: Die Prozedur RabattBerechnen berechnet einen Rabatt von 5 Prozent auf einen Mindestumsatz von 100 €. Die Prozedur enthält zwei einseitige Bedingungen, die geschachtelt sind. Diese Schachtelung wird im Programmcode durch Einrücken verdeutlicht. Dafür wird häufig der Begriff Strukturierte Programmierung verwandt. Zuerst wird die numerische Eingabe des Preises abgefragt. Danach wird geprüft, ob der Preis größer oder gleich 100 € ist. Sub RabattBerechnen() Const conFmt As String = "##,###.00 €" 'Formatierungs-String Dim varEingabe As Variant Dim curPreis As Currency, curRabatt As Currency varEingabe = InputBox("Bitte geben Sie den Preis ein:", "Rabatt", 100) If IsNumeric(varEingabe) Then curPreis = CCur(varEingabe) If curPreis >= 100 Then curRabatt = curPreis * 0.05 curPreis = curPreis - curRabatt End If MsgBox "Der Endpreis beträgt: " & Format(curPreis, conFmt) End If End Sub 10.7.2 Zweiseitige Auswahl Die zweiseitige Auswahl… wird angewendet, wenn es genau zwei Verzweigungsmöglichkeit mit dazugehörigen Anweisungsblöcken gibt. führt in Abhängigkeit von einem Bedingungsausdruck nur einen der beiden Bedingungsblöcke aus. Die Syntax lässt sich aus folgendem Beispiel gut erkennen If Bedingung Then Anweisung(en)1 Else Anweisung(en)2 End If In die bereits vorgestellte Prozedur RabattBerechnen kann beispielweise im Else-Zweig folgender Rabatthinweis eingebaut werden: If curPreis >= 100 Then curRabatt = curPreis * 0.05 42 EDV I curPreis = curPreis - curRabatt MsgBox "Der Endpreis beträgt: " & Format(curPreis, conFmt) Else MsgBox "Der Endpreis beträgt: " & Format(curPreis, conFmt)& _ vbCrLf &"Ab einem Betrag von 100 € erhalten Sie 5 % Nachlass." End If 10.7.3 Mehrstufige Auswahl If Bedingung1 Then Anweisung(en)1 ElseIf Bedingung2 Then Anweisung(en)2 ElseIf Bedingung3 Then Anweisung(en)3 Else Anweisung(en)4 End If In die bereits vorgestellte Prozedur RabattBerechnen kann beispielweise folgende 4- stufige Rabattstaffel {0%, 5%, 7,5%, 10%} in Abhängigkeit von der Preishöhe aufgenommen werden: Dim sngRabatt As Single If curPreis < 100 Then MsgBox "Der Endpreis beträgt: " & _ Format(curPreis, conFmt) & vbCrLf & _ "Ab einem Betrag von 100 € erhalten Sie 5 % Nachlass." ElseIf curPreis < 250 Then sngRabatt = 0.05 ElseIf curPreis < 500 Then sngRabatt = 0.075 Else sngRabatt = 0.1 End If curRabatt = Round(curPreis * sngRabatt, 2) curPreis = curPreis - curRabatt MsgBox "Der Endpreis beträgt: " & Format(curPreis, conFmt) 10.7.4 Mehrseitige Auswahl Bei der mehrseitigen Fallauswahl wird der Wert einer Variablen oder eines Ausdrucks abgefragt. Diese Variable oder dieser Ausdruck wird als Selektor bezeichnet. In Abhängigkeit vom Wert des Selektors können je nach Fall (engl. case) unterschiedliche Anweisungsblöcke durchlaufen werden. Die folgende Prozedur JahreszeitBestimmen demonstriert die Anwendung der mehrseitigen Fallauswahl, auch Select Case-Anweisung genannt: 43 EDV I SubJahreszeitBestimmen() Dim strSaison As String Select Case Month(Date) Case 3, 4, 5 strSaison = "Frühlings" Case 6, 7, 8 strSaison = "Sommer" Case 9, 10, 11 strSaison = "Herbst" Case Else strSaison = "Winter" End Select MsgBox "Zur Zeit ist " & strSaison & "-Saison." End Sub Als Vergleichswerte können verschiedene Varianten gewählt werden. Variante Ein einzelner Wert Eine Liste von Werten Ein Wertebereich Ein Vergleichsausdruck Beispiel: Case 1 Case 1, 2, 3 Case 1 To 3 Case Is > 1 Tabelle 15 - Select Case Schlüsselwerte 10.7.5 Übungen zu Kontrollstrukturen Dateivorlage: (keine Vorlage) a. Schreiben Sie eine Prozedur die eine Eingabe von 4 Parametern ermöglicht. Der Parameter mit dem größten Wert soll ermittelt werden. b. Schreiben Sie eine Prozedur zur Bestimmung der Werte und berechnen Sie die jeweilige Abweichung zu dem Wert Pi [4 atan(1)] Ordnen Sie die Werte der Genauigkeit an, geben Sie diese mit den Abweichungen aus. Annäherungen an die Zahl 𝜋 wie sie früher benutzt wurden. 1 Babylonier mit dem Wert 38 16 2 In Ägypten (9) In China in Europa √10 1 38 44 EDV I 10.8 Schleifen 10.8.1 Schleifenaufbau Um einen bestimmten Programmteil mehrmals zu durchlaufen, werden Schleifen benötigt. Eine Schleife besteht im Wesentlich aus zwei Teilen: der Schleifensteuerung und dem Schleifenrumpf Die Schleifensteuerung bestimmt, wie oft die Anweisungen des Schleifenrumpfs ausgeführt werden bzw. nach welchen Kriterien entschieden wird, ob eine Wiederholung erforderlich ist. 10.8.2 Schleifenarten Zwei Arten der Schleifensteuerung werden im Allgemeinen unterschieden: Abbildung 36 - Kopf/Fußgesteuerte Schleife Kopfgesteuerte Schleife (= abweisende Schleife) Die Prüfung, ob die Anweisungen im Schleifenrumpf ausgeführt werden, erfolgt gleich zu Beginn. Falls das Kriterium zu Beginn nicht erfüllt ist, wird der Schleifenrumpf gar nicht ausgeführt Fußgesteuerte Schleife (= nicht abweisende Schleife) Die Anweisungen im Schleifenrumpf warden mindestens einmal ausgeführt. Am Ende der Schleife erfolgt die Prüfung, ob einer weiterer Durchlauf erforderlich ist. Tabelle 16 - Kopf/Fußgesteuerte Schleifen 10.8.3 Die Kopfgesteuerte Schleife Die kopfgesteuerte Schleife ist definitionsgemäß eine abweisende Schleife. Drei Varianten werden unterschieden: 45 EDV I Do While Do Until Do [{While} Bedingung] [Anweisungen] [Exit Do [Anweisungen] Loop While Do [{Until} Bedingung] [Anweisungen] [Exit Do] [Anweisungen] Loop While Bedingung [Anweisungen] [Go To Sprungmarke] [Anweisungen] Wend Tabelle 17 - Syntax der Kopfgesteuerten Schleife Mit dem Schlüsselwort While wird eine Schliefe durchlaufen, solange die Bedingung zutrifft. Mit dem Schüsselwort Until wird eine Schleife solange durchlaufen, bis die Bedingung erfüllt ist. Wenn erforderlich, kann mit Exit Do bzw. GoTo Sprungmarke die Schleife vorzeitig beendet werden. Die While...Wend-Anweisung ist veraltet. Die beiden Do...Loop-Anweisungen stellen eine strukturiertere und flexiblere Möglichkeit zur Ausführung von kopfgesteuerten Schleifen dar. 10.8.4 Die Fußgesteuerte Schleife Bei den Fußgesteuerten Schleifen werden zwei Arten unterschieden. Do…Loop While Do…Loop Until Do Do [Anweisungen] [Exit Do] [Anweisungen] Loop While Bedingung [Anweisungen] [Exit Do] [Anweisungen] Loop Until Bedingung Tabelle 18 - Syntax der Fußgesteuerten Schleife Das Schlüsselwort While bestimmt, dass die Schleife ausgeführt wird, solange die Bedingung erfüllt ist. Das Schüsselwort Until bestimmt, dass die Schleife solange durchlaufen wird, bis die Bedingung erfüllt ist. 10.8.5 Die Zählschleife Sie können eine zählergesteuerte Schleife verwenden, um einen Block von Anweisungen für eine genau bestimmte Anzahl von Wiederholungen auszuführen. Kennzeichnendes Merkmal einer Zählschleife ist, wie ihr Name bereits verrät, eine Zählervariable. Deren Wert wird mit jedem Schleifendurchlauf erhöht oder vermindert. Syntax: For Zähler = Startwert To Endwert [Step Schrittweite] [Anweisungen] [Exit For] [Anweisungen] Next [Zähler] Argument Zähler Beschreibung Erforderlich. Besteht aus einer numerischen Variablen, die als Schleifenzähler dient. 46 EDV I Startwert Endwert Schrittweite Anweisungen Exit For Das ist der Startwert vom Zähler. Legt den Endwert von Zähler fest. Optional. Damit kann der Wert bestimmt werden, um den sich Zähler bei jedem Schleifendurchlauf verändert. Falls kein Wert angegeben wird, ist die Voreinstellung eins. Die Anweisungen zwischen For…Next werden so oft ausgeführt wie an- gegeben. Optional. Innerhalb der Schleife kann eine beliebige Anzahl von Exit For-Anweisungen an beliebiger Stelle als Möglichkeit zum Verlassen der Schleife verwendet werden. Tabelle 19 - Argumente der Zählschleife 10.8.6 Sonderform der Zählschleife Eine besondere Form der For-Next-Schleife in VBA ist die For-Each-Next-Schleife. Damit können Sie jedes Element in einem Array oder einer Auflistung (= Liste von Objekten) ansprechen. Die Zahl der Elemente muss vorher nicht bekannt sein. In der nun folgenden Prozedur TabellenblätterAuslesen wird eine For-Each-NextSchleife benutzt, um die Namen aller Tabellenblätter in der aktuellen Arbeitsmappe in das Direktfenster zu schreiben. Public Sub TabellenblätterAuslesen() ' Die Namen aller Tabellenblätter auslesen Dim ws As Excel.Worksheet For Each ws In Worksheets Debug.Print "Name: " & ws.Name Next ws End Sub 10.9 Modulare Programmierung Kern der Modularen Programmierung ist das Auslagern von abgeschlossenen Programmstücken, deren Algorithmen an verschiedenen Stellen gebraucht werden: Der Code wird dadurch wiederverwendbar. 10.9.1 Prozedur Eine Prozedur wird durch folgende Syntax deklariert: [Public|Private ]Sub Prozedurname([ByVal|ByRef] Parameter1 [As Typ1][,...]) ... [Exit Sub] ... End Sub 47 EDV I Der Prozedurkopf beginnt mit dem Schlüsselwort Sub, gefolgt von dem Prozedurnamen und einem Klammerpaar (). Der Prozedurname muss sich an die Regeln für Bezeichner halten. Die Prozedur kann mit der Anweisung Exit Sub verlassen werden. Die Programmausführung wird mit der ersten Anweisung fortgesetzt, die dem Prozeduraufruf folgt. Die Deklaration der Prozedur wird mit End Sub beendet. Im Prozedurkopf kann Public oder Private vorangestellt werden, um den Gültigkeitsbereich der Prozedur festzulegen. Prozeduren mit den Schlüsselwort Public besitzen globale Gültigkeit, solche mit Private nur lokale. Wird keines dieser beiden Schlüsselwörter angegeben, dann handelt es sich standardmäßig um eine globale Prozedur. Optional kann die Prozedur mit Parameterübergabe aufgerufen werden. Dabei können die Parameter entweder als Wert (ByVal) oder als Verweis (ByRef) übergeben werden. Die beiden unterschiedlichen Parameterübergaben wirken sich wie folgt aus: Parameter wird als Wert übergeben Sub Aendern(ByVal)intZ As Integer intZ = intZ + 10 End Sub Parameter wird als Verweis übergeben Sub Aendern(ByRef)intZ As Integer intZ = intZ + 10 End Sub Wirkung: übergebener Wert wird ni cht geändert Wirkung: übergebener Wert wird geändert Um eine Prozedur zu starten schreiben Sie eine Anweisung, die nur aus dem Namen der aufzurufenden Prozedur besteht oder setzen Sie optional noch das Schlüsselwort Call davor. Optional enthält der Aufruf der Prozedur noch eine Liste der Werte, Konstanten oder Ausdrücke, die an diese übergeben werden sollen. [Call ]Prozedurname (Ausdruck [, ...]) Eine Prozedur, die von einer anderen Prozedur aus aufgerufen wird, bezeichnet man im Allgemeinen als Subprozedur, Subroutine oder Unterprogramm. Eine Prozedur, von der aus eine oder mehrere Subprozeduren aufgerufen werden und selbst von keinem Programm aus ausgerufen wird, wird als Hauptprogramm bezeichnet 48 EDV I 10.9.2 Funktion Funktionen sind Prozeduren, die nur einen Wert zurückgeben. Sie können sogen. benutzerdefinierte Funktionen schreiben, die auf einem Tabellenblatt wie eine in Excel eingebaute Funktion über den Funktionsassistenten aufgerufen werden kann. Allgemein wird eine Funktion definiert durch: [Public|Private ]Function Name(Parameteri [As Typi]) ... [Exit Function] [Name = Rückgabewert] End Function Innerhalb der Klammer () wird von der aufrufenden Prozedur eine Parameterliste an die Funktion übergeben. Wird die Deklaration des Datentyps weggelassen, wird standardmäßig von Datentyp Variant ausgegangen. Mehrere übergebene Parameter werden jeweils durch ein Komma getrennt. Da eine Funktion einen Wert zurückgibt, ist es sinnvoll, im Funktionsaufruf den Datentyp des Wertes von Name hinter der schießenden Klammer der Parameterliste festzulegen. Innerhalb der Funktion wird der Rückgabewert der Funktion durch die Zeile Name =… bestimmt. Der Funktionsaufruf erfolgt durch: Variable = Name([Variable1], ...) Tabelle 20 - Select Case Schlüsselwerte 10.9.3 Übungen zur Modularen Programmierung Dateivorlage: (keine Vorlage) a) Schreiben Sie eine aufrufende und eine aufgerufene Prozedur. Die Prozeduren tauschen vier Zahlen als Parameter aus. Die aufgerufene Prozedur soll ermitteln, welcher der ersten beiden Parameter die geringste Differenz zum dritten hat und die Nummer des Parameters (1 oder 2) als vierten Parameter wieder an das Hauptprogramm zurückgeben. b) Schreiben Sie eine Prozedur, die eine andere aufruft und je nach Art der Parameterübergabe (ByVal) unterschiedliche Ergebnisse liefert. 49 EDV I 11 Objekte in Excel 11.1 Objekte In Excel sind mehr als 150 Objekte definiert. Das umfasst im Wesentlichen alles, was programmiert und kontrolliert werden kann Jedes Excel-Objekt wird durch seine Eigenschaften und Methoden beschrieben. Ein wichtiges Objekt ist beispielsweise eine Arbeitsmappe. Sie hat einen bestimmten Namen, einen Autor oder sie ist durch ein Passwort geschützt. Sie besitzt standardmäßig ein Tabellenblatt. Sie kann auch Diagrammblätter enthalten. Auf Excel-Objekte lassen sich Methoden anwenden. Methoden, die auf Arbeitsmappen angewandt werden können, sind zum Beispiel: Aktivieren, schließen, speichern, drucken oder löschen. Die folgende Tabelle beinhaltet einen kleinen Überblick über die am häufigsten benutzten Objekte in Excel: Objekttyp Application Cells Chart Charts Dialog Dialogs Module Modules Names Range Sheets Window Windows Workbook Workbooks Worksheet Worksheets Kurzbedeutung Die aktuelle Anwendung, praktisch Excel selbst Zellen auf in einem Arbeitsblatt Stellt ein Diagramm in einer Arbeitsmappe dar Eine Auflistung der in einer Arbeitsmappe enthaltenen Diagrammblätter Stellt ein einzelnes Dialogfeld dar. Eine Auflistung der in einer Arbeitsmappe enthaltenen Dialog-Objekte Ein einzelnes Modulblatt Eine Liste der in einer Arbeitsmappe enthaltenen Modulblätter Gibt eine Auflistung aller arbeitsblattspezifischen Namen zurück. Umfasst eine einzelnen Zelle, eine ganze Zeile oder Spalte, einen Zellbereich, usw. Eine Auflistung der augenblicklich verfügbaren Tabellen-, Diagramm- und sonstige Blätter in der angegebenen Arbeitsmappe. Ein einzelnes Fenster Eine Auflistung verschiedener augenblicklich geöffneter Fenster Eine einzelne Arbeitsmappe Eine Auflistung aller augenblicklich geöffneten Arbeitsmappen Stellt ein einzelnes Arbeitsblatt dar. Eine Auflistung aller in einer Arbeitsmappe enthaltenen Tabellenblätter 50 EDV I 11.2 Objekte benennen Um Objekte zu bearbeiten, müssen sie genau benannt werden. Beispiel: Sie haben sowohl in der Arbeitsmappe Rechnung als auch in der Arbeitsmappe Auftrag jeweils ein Tabellenblatt namens TABELLE1. Ein eindeutiges Referenzieren der Zelle B1 in Tabelle1 der Arbeitsmappe Rechnung ist nur unter Angabe der Arbeitsmappe möglich. Workbooks("Rechnung").Worksheets("Tabelle1").Range("B1").Value = "Datum" Wird allerdings nur mit einer einzigen Arbeitsmappe gearbeitet, dann ist das Referenzieren der Arbeitsmappe überflüssig. Obige Anweisung verkürzt sich dann zu: Worksheets("Tabelle1").Range("B1").Value = "Datum" Ist Tabelle1 bereits das aktive Tabellenblatt, dann genügt sogar die Anweisung Range("B1").Value = "Datum" um die richtige Zelle im richtigen Tabellenblatt zu adressieren. 11.3 Eigenschaften von Objekten Eigenschaften (engl. properties) beschreiben Objekte. Eigenschaften von Objekten können abgefragt und häufig auch geändert werden. Einige Eigenschaften können nur gelesen, aber nicht geändert werden. Die folgende Prozedur SpeicherStatus prüft, ob die aktive Arbeitsmappe bereits gespeichert wurde und gibt eine entsprechende Meldung aus Sub SpeicherStatus() Dim bolSaved AsBoolean Dim strMsg As String bolSaved = ActiveWorkbook.Saved If bolSaved Then strMsg = "Die Arbeitmappe wurde gespeichert." Else strMsg = "Die Arbeitsmappe wurde noch nicht gespeichert." End If MsgBox strMsg, vbInformation, "Speicherstatus" End Sub 51 EDV I 11.4 Methoden von Objekten Als Methode wird ein Vorgang bzw. eine Tätigkeit bezeichnet, die mit einem Excel-Objekt ausgeführt werden kann. Um eine Methode anzuwenden, wird ein Bezug auf das betreffende Objekt benötigt, gefolgt von einem Punkt und dem Namen der Methode, also allgemein so: Objekt.Methode Im folgenden Beispiel wird der Tabellenbereich A1:B2 ausgewählt und kopiert Sub BereichKopieren() With ActiveSheet MsgBox "Das aktulle Tabellenblatt heißt " & .Name Range("A1:B2").Select End With Selection.Copy End Sub Viele Methoden übergeben Argumente, um ihre Ausführung zu spezifizieren. Beispielsweise kann mit der Methode PrintOut das Argument Copies:=1 übergeben werden. ActiveWindow.SelectedSheets.PrintOut Copies:=1 11.5 Ereignisse von Objekten Jede vom Bediener ausgelöste Aktion - z.B. Tastenschlag Mausklick - löst in Windows ein Ereignis aus. Windows wertet das Ereignis aus und gibt ggf. die Nachricht an das entsprechende Anwendungsprogramm weiter. In Excel können ebenfalls Programme geschrieben werden, die bei gewissen Ereignissen ausgeführt werden. Mausklick auf ein Symbol, ein Steuerelement oder einen Menüpunkt Tastatureingaben Öffnen oder Schließen einer Arbeitsmappe oder eines Fensters Die entsprechenden Programme werden Ereignisprozeduren genannt. Syntax. Das Objekt und das zugehörige Ereignis werden durch Schaltfläche_Click() Arbeitsmappe_Open() Tabellenblatt_Activate() Diagramm_Change() einen Unterstrich ( _ ) hintereinander geschrieben. Tabelle 21 - Syntax Ereignisprozeduren Um die Ereignisprozeduren zu benennen bedarf es einer kleinen 52 EDV I Das folgen Beispiel zeigt die Schritte für eine Ereignisprozedur für die Arbeitsmappe DieseArbeitsmappe, die durch das Öffnen – also dem Ereignis open – ausgeführt werden soll Klicken Sie im Projekt-Explorer doppelt auf das Objekt DieseArbeitsmappe Für dieses Objekt wird das CodeFenster geöffnet. Vgl. Abbildung 25- Projektexplorer Geben Sie Option Explicit ein, falls noch nicht vorhanden. Wählen Sie im linken Listenfeld des CodeFensters den Eintrag Workbook. Es wird automatisch die leere Prozedur Workbook_Open für das Ereignis open erstellt. Fügen Sie die gewünschte Ereignisprozedur ein. Private Sub Workbook_Open() Ereignisprozedur End Sub Tabelle 22 - Arbeitsschritte zur Erstellung einer leeren Workbook_Open Ereignisprozedur Neben Workbook_Open ist Workbook_BeforeClose ein weiteres wichtiges Ereignis. Es tritt automatisch ein, sobald die Arbeitsmappe geschlossen wird. Aber es gibt noch mehr Ereignisse für Arbeitsmappen. Weiter Ereignisse für Arbeitsmappen enthält Tabelle 22: Ereignisprozeduren für Tabellenblätter oder Diagrammblätter können auf ganz ähnliche Weise erstellet werden. Einige wichtige Ereignisse für Tabellenblätter enthält Tabelle 21: Ereignis (WorkSheet_...) Activate Change Calculate Deactivate SelectionChange Beschreibung (Tritt ein, … sobald eine Tabellenblatt aktiviert wird. wenn sich der Wert einer Zelle ändert. wenn ein Tabellenblatt neu berechnet wird. wenn ein Tabellenblatt deaktiviert (z. B. verlassen) wird. wenn sich die Markierung auf einemTabellenblatt ändert. Tabelle 23 - Ausgewählte Ereignisse für Tabellenblätter 53 EDV I Ereignis (WorkBook_...) Activate BeforePrint BeforeSave Deactivate NewSheet SheetActivate SheetBeforeDoubleClick SheetBeforeRightClick SheetCalculate SheetDeactivate SheetChange SheetSelectionChange WindowActivate WindowDeactivate WindowResize Beschreibung (Tritt ein, … sobald eine Arbeitsmappe aktiviert wird. vor dem Druck einer Arbeitsmappe oder einzelner Tabellenblätter. vor dem Speichern. wenn eine Arbeitsmappe deaktiviert wird. wenn ein neues Tabellenblatt in die Arbeitsmappe eingefügt wird. wenn ein beliebiges Tabellen- oder Diagrammblatt in der Arbeitsmappe aktiviert wird. wenn mit der linken Maustaste ein Doppelklick auf eine beliebige Stelle des Arbeitsblatts ausgeführt wird. wenn mit der rechten Maustaste ein Klick auf eine beliebige Stelle des Arbeitsblatts ausgeführt wird. bei Neuberechnung eine beliebigen Tabellenblatts. sobald ein beliebiges Tabellenblatt verlassen wird. bei Änderung eines beliebigen Tabellenblatts. wenn sich die Markierung auf einem Tabellenblatt ändert wenn ein Fenster der Arbeitsmappe aktiviert wird. wenn ein Fenster der Arbeitsmappe deaktiviert wird. wenn ein die Größe eines Fenster der Arbeitsmappe geändert wird. Tabelle 24 - Ausgewählte Ereignisse für Arbeitsmappen 11.6 Eigenschaften und Methoden des Range-Objekts Die wichtigsten Eigenschaften und Methoden des Range-Objekts sind in Tabelle 23 enthalten: Eigenschaft Methode Cells Column, Columns Row, Rows Border Interior Offset Resize Font ColumnWidth Zellen Spalten Zeilen Rahmen Innenbereich Versetzung Größenänderung Zeichensatz Spaltenbreite Copy Cut PasteSpecial Clear Delete Find Insert Select AutoFill Kopieren Ausschneiden Einfügen Inhalt löschen Objekt löschen Suchen Einfügen Markieren Füllen (automatisch) Tabelle 25 - Wichtige Eigenschaften und Methoden des Range-Objekts Eine zentrale Rolle beim Zugriff auf Zellen und Zellenbereiche spielt die Range-Auflistung. Sie kann aus einer einzelnen Zelle, einer Spalte, einer Zeile oder einer ausgewählten Menge von Zellen bestehen. Die Bearbeitung von Zellen oder Zellenbereichen kann entweder direkt erfolgen oder nach einer vorhergehender Selektion der Zellen. 54 EDV I Bei der direkten Bearbeitung folgt auf eine Range-Eigenschaft, die eine Auflistung zurückgibt, die gewünschte Eigenschaft. Range("A1:B5").Font.Bold = True Bei der zweiten Möglichkeit wird der Bereich durch die Methode Select markiert. Der Zugriff auf diesen Bereich erfolgt dann mit der Selection-Eigenschaft. Range("A1:B5").Select Selection.Font.Bold = True 11.7 Zugriff auf Zellen 11.7.1 Zugriff auf die aktuelle Zelle Auf die aktive Zelle wird mit der ActiveCell-Eigenschaft zugegriffen. Sie gibt ein RangeObjekt zurück. Haben Sie beispielsweise auf Zelle A1 mit Range("A1").Activate oder Range("A1").Select zugegriffen, dann greifen Sie mit ActiveCell auf diese aktive Zelle zu, um ihr einen Wert zuzuordnen oder sie zu formatieren SubZugriffAufAktiveZelle() Range("A1").Select With ActiveCell .Value = "Wert" .Font.Bold = True End With End Sub Mit der folgenden Prozedur wird die aktive Zelle A1 nach A2 verschoben SubAktiveZelleEineZeileNachUnten() Range("A1").Select ActiveCell.Offset(1, 0).Select End Sub 55 EDV I Die Adresse der aktuellen Zelle sowie die aktuelle Zeilen- und Spaltennummer werden durch folgende Prozedur ins Direktfenster ausgegeben SubAktiveZelleEineZeileNachUnten() Range("A1").Select With ActiveCell .Offset(1, 0).Select Debug.Print "Adresse der aktuellen Zelle: " & .Address Debug.Print "Aktive Zeile: " & .Row Debug.Print "Aktive Spalte:" & .Column End With End Sub Grundsätzlich können alle Methoden und Eigenschaften des Range-Objekts auf die aktive Zelle ActiveCell angewandt werden. 11.7.2 Relativer Zugriff auf Zellen und Zellenbereiche Mit der Offset-Eigenschaft lässt sich der relative Zugriff auf Zellen ziemlich einfach durchführen. Sie lautet allgemein: Objekt.Offset(RowOffset, ColumnOffset) Sie gibt ein Range-Objekt zurück, das einen Bereich darstellt, der gegenüber dem angegebenen Bereich versetzt ist. Als Argumente können positive und negative Zahlen oder null verwandt werden. Die Prozedur RelativerZugriff verschiebt die aktuelle Zelle von A1 nach B3 Sub RelativerZugriff() Range("A1").Select ActiveCell.Offset(RowOffset:=2, ColumnOffset:=1).Activate End Sub Positive (negative) Werte für RowOffset bewirken eine Verschiebung unten (oben). Positive (negative) Werte für ColumnOffset bewirken eine Verschiebung nach rechts (links). 11.7.3 Zugriff auf Zeilen und Spalten Um mit Spalten zu arbeiten, gibt es auch die Eigenschafen Colum, Columns und EntrireColumn. Für Zeilen existieren die vergleichbaren Eigenschaften Row, Rows und EntireRow. 56 EDV I Eigenschaft Column Columns EntireColumn Bedeutung Gibt eine Nummer zurück, die die erste Spalte in dem Bereich angibt, auf den die Eigenschaft bezogen wird. Gibt ein Range-Objekt zurück, das die Spalten im angegebenen Bereich darstellt. Gibt ein Range-Objekt zurück, das eine oder mehrere ganze Spalten darstellt, die im angegebenen Bereich enthalten sind Tabelle 26 - Eigenschaften von Spalten Die Prozedur ColumnProp gibt in einer MsgBox die Zahl 2 zurück, weil es sich bei der Spalte B um die zweite Spalte handelt. Sub ColumnProp() With Worksheets("Tabelle1") .[B2:E4].Select End With MsgBox Selection.Column End Sub Mit der Prozedur ColumnsProp wird die erste Spalte des ersten Tabellenblatts markiert. Sub ColumnsProp() With Worksheets("Tabelle1") .Columns(1).Select End With MsgBox "Die Auswahl enthält " & _ Selection.Columns.Count & " Spalte(n)." End Sub Die Meldung gibt an, wie viele Spalten (hier 1) die Markierung enthält. 57 EDV I 11.8 Inhalte in Zellen einsetzen und abfragen 11.8.1 Werte zuweisen Zur Zuweisung eines Wertes oder eines Textes an eine Zelle sowie zum Abfragen ihres Inhalts wird die Eigenschaft Value benutzt. In der Prozedur WerteZuweisen werden den Zellen A1 bis A4 Werte zugewiesen und anschließend wieder ausgelesen. Sub WerteZuweisen() Dim strMsg As String Dim intZahl As Integer Dim intLoop As Integer With Worksheets(1) ' Inhalte einsetzen .Range("A1").Value = "Zahlen" ' vereinfachte Schreibweise .[A2].Value = 12 .[A3].Value = 24 .[A4].Value = 36 ' Inhalte entnehmen strMsg = .[A1].Value & ": " ' Zählschleife über drei Zellen For intLoop = 1 To 3 ' Inhalt zwischenspeichern intZahl = .Range("A" & intLoop + 1).Value strMsg = strMsg & intZahl & ", " Next intLoop End With strMsg = Left(strMsg, Len(strMsg) - 2) ' Ergebnis anzeigen MsgBox strMsg, vbInformation, "Zellinhalte setzen und abfragen" End Sub Bei der Value-Eigenschaft handelt es sich um eine Standardeigenschaft. Sie ist deshalb optional und kann weggelassen werden. Wird keine Eigenschaft angegeben, wird diese automatisch verwendet. 11.8.2 Formeln einsetzen Eine Formel wird in eine Zelle eingesetzt, indem sie als string (Zeichenkette) übergeben wird. SubFormelnEinsetzen() With Worksheets(1) ' Addiern .[B1] = 10 .[B2] = 5 .[B3].Value = "=B1+B2" End With End Sub 11.8.3 Zellinhalte löschen Es gibt verschiedene Arten Zelleninhalte bzw. Formatierungen zu löschen 58 EDV I ClearContents Clear löscht den Inhalt einer Zelle. löscht sowohl den Inhalt als auch die Formatierung. ClearFormats ClearNotes löscht die Formatierung. löscht Notizen zu Zellen 11.8.4 Hintergrundfarbe setzen Die Prozedur FarbenAusgeben zeigt, wie die Zellen eines Tabellenblatts eingefärbt werden können. Die Prozedur gibt 56 Hintergrundfarben mit dem jeweils dazugehörigen Farbindex (ColorIndex) aus. Sub FarbenAusgeben() Dim intFarbe As Integer Dim intSpalte As Integer Dim intZeile As Integer Dim rng As Range With Worksheets(1) ' Spaltenbreite setzen .Range("B:B, D:D, F:F, H:H").ColumnWidth = 7.5 .Range("A:A, C:C, E:E, G:G").ColumnWidth = 3 ' Farbe entfernen .[A1:H14].Interior.ColorIndex = xlNone .[A1].Select Set rng = ActiveCell ' Zellen einfärben For intFarbe = 0 To 55 intSpalte = (intFarbe \ 14) * 2 ' ganzzahlige Division intZeile = intFarbe Mod 14 ' Divisionsrest best. With rng .Offset(intZeile, intSpalte) = intFarbe + 1 .Offset(intZeile, intSpalte + 1) _ .Interior.ColorIndex = intFarbe + 1 End With Next intFarbe End With End Sub Abbildung 37 - Hintergrundfarben setzen 59 EDV I 11.8.5 Schriftart und Schriftattribute bestimmen Die Veränderung von Schriftart und Schriftattributen erfolgt mit Eigenschaften des FontObjekts. Das Beispiel zeigt die Syntax. With [Bereich].Font .Name = "Arial" ' Schriftart .Size = 20 ' Schriftgröße .Bold = True ' Fettdruck .Italic = True ' Kursivdruck End With 11.9 Wichtige Eigenschaften und Methoden der Sheets-Auflistung Eigenschaft/ Bedeutung Count Methode Es wird die Anzahl der Blätter in der Auflistung angezeigt. MsgBox ActiveWorkbook.Sheets.Count Add Erzeugt ein neues Blatt vom Typ xlWorksheet oder vom Type xlChart. Sub BlattHinzufuegen() Sheets.Add after:=Sheets("Tabelle1"), Type:=xlWorksheet End Sub Select Mit dieser Methode wird das angegebene das Objekt markiert. ActiveWorkbook.Sheets("Tabelle2").Select Item Diese Eigenschaft gibt ein einzelnes Blatt der Auflistung zurück. Sheets.Item(3).Select 11.9.1 Übungen zu Objekten Dateivorlage: (keine Vorlage) a) Benutzen Sie die With – Anweisung, um für eine Zelle die italic – Eigenschaft auf „True“ und die Size – Eigenschaft auf „16“ zu setzen. b) Lesen Sie den Wert aus der Zelle A6, multiplizieren Sie ihn mit 5 und schreiben Sie ihn in die Zelle A7. Verwenden Sie zur Angabe der Zellen Objektvariable. c) Eine Tabelle enthält in der Spalte A eine Folge von Zahlen. Zählen Sie die Anzahl der Zellen bis zur 100sten Zeile, in denen der Wert 5 steht. 60 EDV I 12 Application Excel 12.1 Standartspeicherort Excel Der Standartspeicherort für Excel Arbeitsmappen kann im Register Datei – Optionen – Speichern – Lokaler Standartspeicherort für Datei verändert werden. Abbildung 38 - Standartspeicherort ändern Mit VBA kann der Standardspeicherort z.B. über das Direktfenster mit folgender Codezeile bestimmt werden: Application.DefaultFilePath = "C:\MeinPfad\MeinOrdner" 12.2 Das Application Objekt Mit dem Application-Objekt kann nicht nur auf sogen. Auflistungen zugegriffen werden, sondern auch auf Objekte zur Programmsteuerung. Für verschiedene aktive Objekte, wie die aktive Arbeitsmappe, das aktive Tabellenblatt oder die aktuell selektierte Zelle, sind verkürzte Zugriffswege vorhanden. Die verschiedenen Elemente des Application-Objektes können im Objektkatalog (F2) eingesehen werden. 12.2.1 Zugriff auf Arbeitsmappen Der Zugriff auf Arbeitsmappen kann auf verschieden Art und Weise erfolgen. In Tabelle 25 sind die verschiedenen Möglichkeiten zusammengestellt 61 EDV I ActiveWorkbook ThisWorkbook Sie haben Zugriff auf die aktuelle Arbeitsmappe. Sie haben Zugriff auf die Arbeitsmappe, in der die aktuelle Prozedur ausgeführt wird. Workbooks(1) Workbooks.Item(1) Workbooks("Name") Workbooks.Item("Name") Workbooks-Objektvariable Workbooks-Auflistung Über ein Element der Workbooks-Auflistung oder eine Objekt-variable von Type Workbook besteht ebenfalls Zugriff auf eine bestimmte Arbeitsmappe Damit können Aktionen durchgeführt werden, die sich allgemein auf die Verwaltung von Arbeitsmappen beziehen. Tabelle 27 - Zugriffsmöglichkeiten auf Arbeitsmappen In der folgenden Tabelle sind wichtige Eigenschaften und Methoden des Workbook-Objekts zusammengestellt: Eigenschaft FullName Name Theme Saved Sheets Worksheets Charts Methode Vollständiger Dateiname Dateiname Design der Mappe Speicherstatus Auflistung aller Blätter Auflistung Arbeitsblätter Auflistung Diagrammblätter Activate Close Save / SaveAs PrintOut Protect Unprotect ApplyTheme Aktivieren Schließen Speichern Ausdrucken Schützen Schutz aufheben Design zuweisen Tabelle 28 - Ausgewählte Eigenschaften und Methoden des Workbook-Objekts 12.2.2 Arbeitsmappen speichern Um die Arbeitsmappe zu Speichern benutzen wir die SaveAs-Methode. ActiveWorkbook.SaveAs Filename:=strPfadname Bei Bedarf kann auch auf den integrierten Dialog Speichern unter (F12) zurückgegriffen werden, der mit der Methode Show ausgeführt wird. Sub SpeichernUnterDialog() ' Anwendung des integriertes Dialogfelds 'Speichern unter' If Application.Dialogs(xlDialogSaveAs).Show = True Then MsgBox Prompt:="Gespeichert!", Buttons:=vbInformation, _ Title:="Speichern unter" End If End Sub Die Auflistung Dialogs enthält alle integrierten Dialoge von Excel. Die Konstante xlDialogSaveAs dient zum Aufrufen des Speichern unter-Dialogs von Excel. 62 EDV I 12.2.3 Dokumenteigenschaften anzeigen Mit der Prozedur DisplayDocProperties lassen sich mittels eingebautem Dialogfeld die Dokumenteigenschaften anzeigen und pflegen: Sub DisplayDocProperties() Dim dlg As Dialog 'Eingebauter Dialog Dim bolErgebnis As Boolean 'Rückgabewert Set dlg = Application.Dialogs(xlDialogProperties) bolErgebnis = dlg.Show End Sub 12.3 Übungen zum Application Objekt Dateivorlage: (keine Vorlage) a) Schreiben Sie eine Prozedur die die Bildunterschrift (caption) des Application Objekts auf Microsoft Word setzt. b) Schreiben Sie eine Prozedur die den Standartspeicherort auf H:\ändert. 13 Benutzerdefinierte Formulare Wird ein spezielles Dialogfenster benötigt, kann ein Benutzerformular (sogen. UserForm ) erstellt werden. Je nach Bedarf wird dieses Formular mit Steuerelementen bestückt, die aus einer vorgegebenen Werkzeugsammlung ausgewählt werden. Durch das Programmieren von Ereignisprozeduren werden dem Benutzerformular die gewünschten Funktionalitäten hinzugefügt. 13.1 Benutzerformular hinzufügen In der VBA-Entwicklungsumgebung sind folgende Schritte notwendig um einer UserForm zu erstellen. Schrit t Beschreibung Markieren Sie im Projekt-Explorer ein Projekt, dem die UserForm hinzugefügt werden soll. Rufen Sie den Menüpunkt Einfügen – UserForm auf oder verwenden Sie die Schaltfläche UserForm einfügen. Symbol Tabelle 29 - Erstellen einer Userform Ihnen wird eine leere UserForm angezeigt, welche Sie nun mit den benötigten Steuerelementen bestücken können (Abb. 39). Die Steuerelemente befinden sich in der Werkzeugsammlung. 63 EDV I Abbildung 39 - Werkzeugsammlung Abbildung 40 - Benutzerformular (UserForm) einfügen Die Darstellung der UserForm ist standardmäßig gerastert, um die Positionierung der Steuerelemente zu vereinfachen. Die Größe des Formulars bestimmen Sie entweder über das zugehörige Eigenschaftsfenster oder indem Sie den Rand der UserForm mit der Maus verschieben. Um zu dem Code zu gelangen öffnen Sie das Kontextmenü und wählen Code Anzeigen , über einen Doppelklick auf die UserForm, direkt auf Code Anzeigen oder mit der Taste F7. 13.2 Eigenschaften eines Benutzerformulars Im Eigenschaftsfenster können Sie den Namen des Formulars, die Größe, die Position und einiges mehr ändern Eigenschaft Kurzbeschreibung 64 EDV I Name des Formular. Damit wird es bei der Programmierung angesprochen. BackColor Hintergrundfarbe des Formulars Caption Bezeichnung des Formulars in der Titelzeile Height, Width Höhe und Breite des Formulars StartUpPosition Position des Formulars bei der Anzeige (Name) Tabelle 30 - Wichtige Eigenschaften eines Benutzerformulars 65 EDV I 13.3 Methoden eines Benutzerformulars Das Anzeigen eines Formulars erfolgt mit der Methode Show. Um es zu schließen, wird entweder die Methode Hide (Ausblenden) oder Unload (Entfernen) angewandt. Beim Entfernen werden die Werte aller Variablen gelöscht, die in den Prozeduren des Formulars verwandt werden. Dagegen bleiben beim Ausblenden des Formulars alle Einstellungen im Speicher erhalten. 13.4 Ereignisse eines Benutzerformulars Jedes Formular besitzt Ereignisse, welche Sie mit entsprechenden Ereignisprozeduren codieren müssen. Die wichtigsten Ereignisse eines Benutzerformulars sind in nachfolgender Tabelle zusammengestellt: Ereignis Initialize Click Keypress KeyDown / KeyUp MouseDown, MouseUp, MouseMove QueryClose Terminate Kurzbeschreibung Tritt ein, wenn das Formular geladen wird, also vor dem ersten Anzeigen. Tritt ein, wenn ein Klick mit der linken Maustaste auf das Formular erfolgt. Tritt ein, wenn eine Taste betätigt wird, die ein darstellbares Zeichen darstellt. Tritt ein, wenn eine beliebige Taste gedrückt oder losgelassen wird. Dieses Ereignis tritt auch bei Tastenkombinationen ein. Tritt ein, wenn die Maus betätigt (MouseDown), losgelassen (MouseUp) oder über das Formlar bewegt (MouseMove) wird. Tritt ein, wenn das Formular geschlossen werden soll. Es kann jedoch verhindert werden, z. B. wenn die Eingabedaten nicht korrekt sind. Tritt ein, wenn das Formular geschlossen wird. Mit Hilfe der Anweisung Unload oder durch das Klicken auf das Kreuz in der Titelleiste wird dieses Ereignis ausgelöst. Tabelle 31 - Wichtige Ereignisse eines Benutzerformulars 13.5 Steuerelemente in Benutzerformular einfügen Nach dem Erzeugen eines Formulars und der Festlegung seiner Eigenschaften können dem Formular die benötigten Steuerelemente hinzugefügt werden. Diese befinden sich in der sogenannten Werkzeugsammlung (Abbildung 38).Mit dem Menüpunkt Ansicht – Werkzeugsammlung oder dem Symbol kann auf die Werkzeugsammlung zugegriffen werden. In Tabelle 7 sind die standardmäßig verfügbaren Steuerelemente aufgeführt. Das Element in der Werkzeugsammlung dient zum Markieren und Bearbeiten von Steuerelementen. Damit wird kein Steuerelement erstellt. 66 EDV I Präfix Steuerelement Bezeichnung Kombinationsfeld chk cmd fra CheckBox CommandButton Frame img Image lbl Label Kontrollkästchen Befehlsschaltfläche Rahmen (Bild-)Anzeige Bezeichnungsfeld lst mpg opt ListBox MultiPage OptionButton scr ScrollBar spn SpinButton Listenfeld Multiseiten (Tabulatorfeld) Optionsfeld Bildlaufleiste (Rollbalken) Drehfeld tab TabStrip Register (Tabulatorstreifen) tgl ToggleButton txt TextBox ref RefEdit Umschaltfeld Achtung: veraltet! Textfeld Eingabefeld f. Bereiche cbo ComboBox Tabelle 32 - Namenskonventionen für Steuerelemente in der Werkzeugsammlung Alternativer Präfix mpg scr spn tab txt ref fra lbl img chk cmd lst opt tgl cbo Präfix mup vsb / hsb spb tbs frm lab btn cbx Standard- Standard- Bezeichnung MultiPage ereignis Change eigenschaft Value ScrollBar SpinButton TabStrip TextBox RefEdit Frame Change Change Change Change Change Click Value Value Value Value Value Caption Label Image CheckBox CommandButton ListBox OptionButton ToggleButton ComboBox Click Click Click Click Click Click Click Click Caption Picture Value Value Value Value Value Value (Text) Tabelle 33 - Standardereignis und Standardeigenschaft von Steuerelementen 13.6 Steuerelemente platzieren Um ein Steuerelement auf der UserForm abzulegen, markieren Sie es in der Werkzeugsammlung und ziehen Sie im Formular bei gedrückter Maustaste ein Rechteck auf, das so groß ist, wie das Steuerelement angezeigt werden soll. 67 EDV I Wollen Sie nachträglich die Größe eines Steuerelements ändern, ziehen Sie das markierte Element mittels des Markierungsrahmens auf die gewünschte Größe. Um die Position eines Elements zu verändern, klicken Sie in das Element und ziehen Sie es bei gedrückter Maustaste an die neue Position. Alternativ können Sie Größe und Position eines Steuerelements exakt im Eigenschaften- fenster des jeweiligen Steuerelements einstellen. Das Ausrichten von Steuerelementen untereinander wird durch das Kontextmenü realisiert. Hierzu müssen Sie die anzugleichenden Steuerelemente mit gedrückter Strg-Taste auswählen und anschließend das Kontextmenü öffnen. 13.7 Eigenschaften von Steuerelementen festlegen Für Steuerelemente lassen sich sehr viele Eigenschaften einstellen. Markieren Sie das betreffende Steuerelement Verändern Sie die Eigenschaften nach ihren Vorstellungen. Die Änderungen werden sofort sichtbar. Im Folgenden werden einige Eigenschaften beschrieben, die für alle Steuerelemente gelten: Eigenschaft BackColor ControltipText Enabled Height Left Name TabIndex Tag Top Visible Width Bedeutung bestimmt die Farbe des Hintergrunds eines Steuerelements definiert den optionalen Hilfetext zu einem Steuerelement legt fest, ob das Steuerelement ausgewählt werden kann oder nicht gibt die Höhe eines Steuerelements an legt die Position des linken Rands eines Steuerelements fest legt den Namen fest, der im Quellcode verwendet wird, um auf das Steuerelement zuzugreifen definiert die Reihenfolge der Auswahl mittels der Tab-Taste. ist vorgesehen für optionale Zusatzinformationen legt die Position des oberen Rands eines Steuerelements fest legt fest, ob das Steuerelement sichtbar oder unsichtbar ist definiert die Breite eines Steuerelements Tabelle 34 - Allgemeingültige Eigenschaften von Steuerelementen 13.7.1 Dem Kombinationsfeld Listenfeldeinträge zuordnen Beim Klick auf den Pfeil des Kombinationsfeldes sollen mögliche Optionen erscheinen. Die Auswahlmöglichkeiten werden über die Eigenschaft RowSource des Kombinationsfeldes zugeordnet. Dort wird angegeben, in welchem Tabellenblatt und in welchen Zellenbereich die entsprechenden Einträge zu finden sind. 68 EDV I 13.8 Ereignisprozeduren programmieren Erst die Programmierung von Ereignisprozeduren erzeugt die gewünschte Funktionalität einer UserForm. Ereignisprozeduren werden für ein bestimmtes Steuerelement und ein dazugehöriges Ereignis benötigt. Abbildung 41 - Ereignisbehandlung festlegen Markieren Sie das betreffende Steuerelement Öffnen Sie das Code-Fenster Wählen Sie im linken Listenfeld einen Eintrag aus. Wählen Sie anschließend im rechten Listenfeld das Ereignis aus, auf das reagiert werden soll. Sofort nach der Wahl eines Ereignisses wird automatisch ein leererer Prozedurrumpf erzeugt, in dem Sie die Codezeilen einfügen, die beim Eintritt des Ereignisses ausgeführt werden sollen. Der Name der Ereignisprozedur (hier: CommandButton1_Click()) setzt sich zusammen aus dem Namen des Steuerelements (CommandButton1) und dem Namen des Ereignisses (Click), verbunden durch einen Unterstrich. 13.9 Wichtige Ereignisse eines Formulars Die wichtigsten Ereignisse eines Formulars sind Initialize und Terminate. Initialize tritt ein, wenn das Formular geladen wird, also vor dem ersten Anzeigen. Terminate wird ausgelöst, wenn das Formular geschlossen wird. Dabei kann das Formular sowohl über das Kreuz in der Titelleiste als auch mit der Anweisung Unload geschlossen werden. 69 EDV I 13.10 Übungen zu Formularen Dateivorlage: (Übung_SchraubeFormular.xlsm) a) Fügen Sie die fehlenden Steuerelemente Tb_Lk, Cb_Sa und Cb_Fk hinzu. b) Entfernen Sie die Controlsource bei TB_FB und ersetzen Sie sie durch entsprechenden Code. c) Vervollständigen Sie die Programmierung bis zur Funktionsfähigkeit d) Fügen Sie eine Prozedur ein, die beim Aufrufen des Dialogs die Steuerelemente Cb_Av , Cb_Sa und Cb_Fk mit Werten versorgt. Dateivorlage: (Übung_Taschenrechner.xlsm) e) Erstellen Sie ein Formular basierten Taschenrechner für alle Grundrechenarten sowie zur Berechnung der Wurzel.(+, −,×,÷, √ ) 14 Grundlagen der Fehlerbehandlung In der Regel müssen Fehler vom Programmierer abgefangen werden, so dass ungültige Eingaben gar nicht erst vorkommen können. Als letzte Sicherung kann man zusätzlich eine Fehlerroutine einbauen. Diese ist im Prinzip immer folgendermaßen aufgebaut: Sub Fehler() On Error GoTo Sprungmarke Anweisungen der Prozedur ausführen Exit Sub Sprungmarke: MsgBox (Err.Description) End Sub Mit dem Befehl On Error GoTo Sprungmarke wird die eigene Fehlerbehandlung eingeleitet. Tritt ein Laufzeitfehler auf, verzweigt das Programm zur Sprungmarke und arbeitet die dort aufgeführten Befehle ab. Die drei Befehle Resume, Resume Sprungmarke und Resume Next werden eingesetzt, um nach einem Laufzeitfehler den Programmfluss weiter abzuarbeiten. Die Folgende Abbildung veranschaulicht die Folgen der Fehlerbehandlung mit den ResumeBefehlen: 70 EDV I Abbildung 42 - Fehlerbehandlung mit Resume-Befehlen 71 EDV I 15 Nassi-Shneiderman-Diagramm Das Nassi-Shneiderman-Diagramm –Struktogramm- wurde in den 70er Jahren für die Methodische Entwicklung von Mikroprozessorsoftware eingeführt. Diese Art des Pseudocodes ermöglichte eine einheitliche Dokumentierung und nachträgliches ändern von Programmen. Die Diagramme sind grafische Blockdiagramme. Abbildung 43 – Blockdiagramme Gegenüber dem Flussdiagramm wird beim Nassi-Shneiderman Diagramm die strukturierte Programmierung erzwungen. Ein Nassi-Shneiderman Diagramm wird von oben nach unten gelesen. Die Anwendung strukted32.exe erleichtert die Erstellung dieser Diagramme. 15.1 Übung zum Nassi-Shneiderman Diagramm a) Sie sollen um 14 Uhr an einer Besprechung teilnehmen. Ist ihr Stellvertreter nicht bis 13.55 Uhr bei Ihnen, sagen Sie die Besprechung ab. Ansonsten nehmen Sie teil. Abbildung 44 - Beispiel Nassi-Shneiderman 72 EDV I 16 Tastenkombinationen in Excel Taste Beschreibung STRG+BILD-AB Wechselt zwischen Arbeitsblattregistern, von links nach rechts. STRG+BILD-AUF Wechselt zwischen Arbeitsblattregistern, von rechts nach links. STRG+UMSCHALT+& Fügt den markierten Zellen einen Außenrahmen hinzu. STRG+UMSCHALT+_ Entfernt den Außenrahmen um die markierten Zellen. STRG+UMSCHALT+~ Weist das Standardzahlenformat zu. STRG+UMSCHALT+$ Weist das Währungsformat mit zwei Dezimalstellen zu (negative Zahlen in Klammern). STRG+UMSCHALT+% Weist das Prozentformat ohne Dezimalstellen zu. STRG+UMSCHALT+^ Weist das wissenschaftliche Zahlenformat (Exponentialzahl) mit zwei Dezimalstellen zu. STRG+UMSCHALT+# Weist das Datumsformat mit Tag, Monat und Jahr zu. STRG+UMSCHALT+@ Weist das Zeitformat mit Stunde und Minute mit dem Zusatz AM oder PM zu. STRG+UMSCHALT+! Weist das Zahlenformat mit zwei Dezimalstellen, Tausendertrennzeichen und Minuszeichen (-) für negative Werte zu. STRG+UMSCHALT+* Markiert den aktuellen Bereich um die aktive Zelle (Datenbereich, der von leeren Zeilen und leeren Spalten umgeben ist). STRG+UMSCHALT+: Gibt die aktuelle Uhrzeit ein. STRG+UMSCHALT+" Kopiert den Wert aus der Zelle über der aktiven Zelle in die Zelle oder in die Bearbeitungsleiste. STRG+UMSCHALT+'+' Zeigt das Dialogfeld Zellen einfügen an, um leere Zellen einzufügen. STRG+UMSCHALT+F Öffnet das Dialogfeld Zellen formatieren, wobei die Registerkarte Schriftart ausgewählt ist. STRG+Umschalt+O Markiert alle Zellen, die Kommentare enthalten. STRG+Minus (-) Zeigt das Dialogfeld Löschen an, um die markierten Zellen zu löschen. STRG+. Gibt das aktuelle Datum ein. STRG+` Wechselt zwischen der Anzeige von Zellwerten und der Anzeige von Formeln im Arbeitsblatt. STRG+' Kopiert eine Formel aus der Zelle über der aktiven Zelle in die Zelle oder in die Bearbeitungsleiste. STRG+1 Zeigt das Dialogfeld Zellen formatieren an. STRG+2 Formatiert fett oder hebt die Formatierung auf. 73 EDV I STRG+3 Formatiert kursiv oder hebt die Formatierung auf. STRG+4 Unterstreicht oder hebt die Unterstreichung auf. STRG+5 Streicht durch oder hebt die Formatierung auf. STRG+6 Wechselt zwischen Ein- und Ausblenden von Objekten. STRG+8 Blendet die Gliederungssymbole ein oder aus. STRG+9 Blendet die markierten Zeilen aus. STRG+0 Blendet die markierten Spalten aus. STRG+A Markiert das gesamte Arbeitsblatt. Wenn das Arbeitsblatt Daten enthält, wird mit STRG+A der aktuelle Bereich markiert. Wenn STRG+A ein zweites Mal gedrückt wird, wird das gesamte Arbeitsblatt markiert. Wenn sich die Einfügemarke in einer Formel rechts STRG+UMSCHALT+A fügt die Argumentnamen und Klammern ein, wenn sich die Einfügemarke in einer Formel rechts neben einem Funktionsnamen befindet.neben einem Funktionsnamen befindet, wird das Dialogfeld Funktionsargumente angezeigt. STRG+B Formatiert fett oder hebt die Formatierung auf. STRG+C Kopiert die markierten Zellen. STRG+D Verwendet den Befehl Unten ausfüllen, um den Inhalt und das Format der obersten Zelle eines markierten Bereichs in die darunter liegenden Zellen zu kopieren. STRG+E Fügt weitere Werte zur aktiven Spalte unter Verwendung der Daten hinzu, die diese Spalte umgeben. STRG+F Zeigt das Dialogfeld Suchen und Ersetzen an, wobei die Registerkarte Suchenausgewählt ist. STRG+G Zeigt das Dialogfeld Gehe zu an. STRG+H Zeigt das Dialogfeld Suchen und Ersetzen an, wobei die Registerkarte Ersetzenausgewählt ist. STRG+I Formatiert kursiv oder hebt die Formatierung auf. STRG+K Zeigt das Dialogfeld Link einfügen zum Einfügen eines neuen Hyperlinks an. Wenn ein vorhandener Hyperlink markiert ist, wird das Dialogfeld Hyperlink bearbeitenangezeigt. STRG+L Zeigt das Dialogfeld Tabelle erstellen an. STRG+N Erstellt eine neue, leere Arbeitsmappe. STRG+O Zeigt das Dialogfeld Öffnen an, um eine Datei zu öffnen oder zu suchen. STRG+P Zeigt die Registerkarte Drucken in der Microsoft Office Backstage-Ansicht an. 74 EDV I STRG+Q Zeigt die Schnellanalyse-Optionen für die Daten an, wenn Zellen mit diesen Daten markiert sind. STRG+R Verwendet den Befehl Rechts ausfüllen, um den Inhalt und das Format der Zelle ganz links in einem markierten Bereich in die Zellen rechts daneben zu kopieren. STRG+S Speichert die aktive Datei unter dem aktuellen Dateinamen im aktuellen Dateiformat am aktuellen Speicherort. STRG+T Zeigt das Dialogfeld Tabelle erstellen an. STRG+U Unterstreicht oder hebt die Unterstreichung auf. STRG+V Fügt den Inhalt der Zwischenablage an der Einfügemarke ein und ersetzt eine mögliche Auswahl. Nur verfügbar, wenn zuvor ein Objekt, Text oder Zelleninhalte ausgeschnitten oder kopiert wurden. STRG+W Schließt das markierte Arbeitsmappenfenster. STRG+X Schneidet die markierten Zellen aus. STRG+Y Wiederholt den letzten Befehl oder die letzte Aktion, sofern möglich. STRG+Z Verwendet den Befehl Rückgängig, um den letzten Befehl rückgängig zu machen oder den zuletzt eingegebenen Eintrag zu löschen. 75 EDV I 17 Literaturverzeichnis Excel Workshop Tabellenwerk von Dr. Volker Thormählen Excel 2013 - Grundlagen 1. Auflage |RRZN Excel 2013 - Fortgeschrittene Techniken 1. Auflage |RRZN Excel 2013 - Automatisierung und Programmierung 1. Auflage |RRZN www.umsonsttraum.org/download/script_excel_2010a.pdf (20.11.2014) 76 EDV I 18 Tabellenverzeichnis Tabelle 1 - Möglichkeiten zur Zellwahl ................................................................................... 11 Tabelle 2 - Möglichkeiten zur Eingabebestätigung in einer Zelle ........................................... 11 Tabelle 3 - Verschiebeoperationen ........................................................................................... 12 Tabelle 4 - Kopieroperationen.................................................................................................. 12 Tabelle 5 - Rangfolge von Operatoren ..................................................................................... 15 Tabelle 6 - Matrixfunktionen ................................................................................................... 18 Tabelle 7 - Werkzeugsammlung............................................................................................... 25 Tabelle 8 - Makroeigenschaften ............................................................................................... 27 Tabelle 9 - Relative/Absolute Makroaufzeichnung.................................................................. 27 Tabelle 10 - Datentypen ........................................................................................................... 36 Tabelle 11 - Präfix-Variablen ................................................................................................... 37 Tabelle 12 - Gültigkeitsbereiche und -dauer von Variablen .................................................... 38 Tabelle 13 - Integrierte Konstanten .......................................................................................... 39 Tabelle 14 - Beispiel für ein Datenfeld mit sieben Elementen ................................................ 40 Tabelle 15 - Select Case Schlüsselwerte .................................................................................. 44 Tabelle 16 - Kopf/Fußgesteuerte Schleifen .............................................................................. 45 Tabelle 17 - Syntax der Kopfgesteuerten Schleife ................................................................... 46 Tabelle 18 - Syntax der Fußgesteuerten Schleife ..................................................................... 46 Tabelle 19 - Argumente der Zählschleife ................................................................................. 47 Tabelle 20 - Syntax Ereignisprozeduren .................................................................................. 52 Tabelle 21 - Arbeitsschritte zur Erstellung einer leeren Workbook_Open Ereignisprozedur . 53 Tabelle 22 - Ausgewählte Ereignisse für Tabellenblätter ....................................................... 53 Tabelle 23 - Ausgewählte Ereignisse für Arbeitsmappen ........................................................ 54 Tabelle 24 - Wichtige Eigenschaften und Methoden des Range-Objekts ................................ 54 Tabelle 25 - Eigenschaften von Spalten ................................................................................... 57 Tabelle 26 - Zugriffsmöglichkeiten auf Arbeitsmappen .......................................................... 62 Tabelle 27 - Ausgewählte Eigenschaften und Methoden des Workbook-Objekts................... 62 Tabelle 28 - Erstellen einer Userform ...................................................................................... 63 Tabelle 29 - Wichtige Eigenschaften eines Benutzerformulars ............................................... 65 Tabelle 30 - Wichtige Ereignisse eines Benutzerformulars ..................................................... 66 Tabelle 31 - Namenskonventionen für Steuerelemente in der Werkzeugsammlung ............... 67 Tabelle 32 - Standardereignis und Standardeigenschaft von Steuerelementen ........................ 67 77 EDV I Tabelle 33 - Allgemeingültige Eigenschaften von Steuerelementen ....................................... 68 78 EDV I 19 Abbildungsverzeichnis Abbildung 1 - Windows Taste ................................................................................................... 5 Abbildung 2 - Excel Startoberfläche .......................................................................................... 5 Abbildung 3 - Excel Hilfe .......................................................................................................... 6 Abbildung 4 - Startansicht.......................................................................................................... 6 Abbildung 5 - Menüband - Ribbon ............................................................................................ 7 Abbildung 6 - Registerkarte Entwicklertools einblenden .......................................................... 8 Abbildung 7 - Kontextsensitive Register ................................................................................... 9 Abbildung 8 - Neues Blatt ........................................................................................................ 10 Abbildung 9 - Fenster fixieren ................................................. Error! Bookmark not defined. Abbildung 10 - Ausfüllkästchen .............................................................................................. 13 Abbildung 11 - Bedingte Formatierung ................................................................................... 14 Abbildung 12 - Syntax einer Formel ........................................................................................ 15 Abbildung 13 - Funktionsassistent ........................................................................................... 17 Abbildung 14 - Zielwertsuche .................................................................................................. 18 Abbildung 15 - Wachstumsrate Zielwertsuche ........................................................................ 18 Abbildung 16 - Add-Ins Auswahlfenster ................................................................................. 19 Abbildung 17 - LGS - Lösung mit Solver ................................................................................ 21 Abbildung 18 - Solver-Parameter ............................................................................................ 21 Abbildung 19 - Diagramm formatieren .................................................................................... 22 Abbildung 20 - Menüband anpassen - Entwicklertools ........................................................... 23 Abbildung 21 - Gruppe Steuerelemente – Formularsteuerelemente ........................................ 24 Abbildung 22 - Formularsteuerelemente .................................................................................. 24 Abbildung 23 - Makroeigenschaften definieren ....................................................................... 26 Abbildung 24 - Makros Schaltfläche ....................................................................................... 26 Abbildung 25 - Aufgezeichnetes Makro auswählen ................................................................ 28 Abbildung 26 - VB Schaltfläche .............................................................................................. 29 Abbildung 27- Projektexplorer ................................................................................................. 29 Abbildung 28 - Eigenschaftsfenster ......................................................................................... 30 Abbildung 29 - Direktfenster ................................................................................................... 31 Abbildung 30 - Lokalfenster .................................................................................................... 31 Abbildung 31 - Überwachungsfenster ...................................................................................... 32 Abbildung 32 - Überwachung Hinzufügen .............................................................................. 32 79 EDV I Abbildung 33 - Makro starten .................................................................................................. 33 Abbildung 34 - Hello World! Msgbox ..................................................................................... 34 Abbildung 35 - Hello World! Inputbox.................................................................................... 34 Abbildung 36 - Kontrollstrukturen in VBA ............................................................................. 41 Abbildung 37 - Kopf/Fußgesteuerte Schleife ........................................................................... 45 Abbildung 38 - Hintergrundfarben setzen ................................................................................ 59 Abbildung 39 - Standartspeicherort ändern.............................................................................. 61 Abbildung 40 - Werkzeugsammlung ....................................................................................... 64 Abbildung 41 - Benutzerformular (UserForm) einfügen ...................................................... 64 Abbildung 42 - Ereignisbehandlung festlegen ......................................................................... 69 Abbildung 43 - Fehlerbehandlung mit Resume-Befehlen ...................................................... 71 Abbildung 44 – Blockdiagramme ............................................................................................ 72 Abbildung 45 - Beispiel Nassi-Shneiderman ........................................................................... 72 80