Makros - Fortsetzung Excel 2016 - Excel 2016 - afz.bremen.de
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Excel 2016 Aus- und Fortbildungszentrum Makros - Fortsetzung Excel 2016 Freie Version vom April 2021 Hansestadt Bremen
Impressum Herausgeber Redaktion und Koordination Aus- und Fortbildungszentrum Referat 20 – Informationstechnologie –Qualifi- für den bremischen öffentlichen Dienst zierung und Beratung Doventorscontrescarpe 172C Aus- und Fortbildungszentrum Doventorscontrescarpe 172C 28195 Bremen 28195 Bremen Tel.: +49 (0)421 361-16999 E-Mail: office@afz.bremen.de E-Mail-Hotline: cc-egov@afz.bremen.de Namensnennung - Nicht-kommerziell - Keine Bearbeitung Diese Lizenz ermöglicht nicht die Nutzung folgender eventuell enthaltener Inhalte: - Hoheits- und Wahrzeichen der Freien Hansestadt Bremen - Titelbild und Logo - Bildschirmfotos aus dem Internet - Personenbezogene Daten - Unrechtmäßig veröffentlichtes Material
Inhalt 3 1. Visual-Basic-Editor 5 1.1 Bildschirm des VBE 5 1.2 Einstellungen im VBE vornehmen 6 1.3 Modul einfügen 7 2. Variablendeklaration 9 2.1 Namenskonventionen 9 2.2 Datentypen 9 2.3 Gültigkeitsbereich von Variablen 10 2.4 Variablen Werte zuweisen 11 3. Schleifen 13 3.1 For … next Schleife 13 3.2 Do … Until Loop Schleife 13 3.3 For each Schleife 13 4. Dialoge programmieren (Formulare) 14 4.1 Userform erzeugen 14 4.2 Elemente der Userform 14 4.3 Userform über eine Schaltfläche aufrufen 15 4.4 Userform mit Steuerelementen ausstatten 17 4.4.1 Commandbutton einfügen und bearbeiten 17 4.4.2 Texteingabe und Textbeschriftungsfelder 18 4.4.3 Eingabeauswahl durch Listboxen oder Comboboxen 20 4.5 Optische Gestaltung des Formulars 22 Lernmaterial 24 Tipps & Tricks 24 Kompetenzzentrum E-Government (CC-EGov) 24
Visual-Basic-Editor 5 1. Visual-Basic-Editor Um in den in den Visual-Basic-Editor (VBE) zu wechseln, klicken Sie auf das Symbol für Visu- albasic auf der Registerkarte Entwicklertools in der Gruppe Code. Sie können aber auch mit der Tastenkombination + zwischen Excelfenster und VBE-Fenster wechseln. 1.1 Bildschirm des VBE In der Menüleiste können Sie unter den einzelnen Menüpunkten Einstellungen für den Editor vornehmen. Es gibt verschiedene Symbolleisten im VBE, die Sie sich ein- bzw. ausblenden lassen kön- nen. Menüpunkt Ansicht > Symbolleisten. Das Fenster des Projekt-Explorers zeigt alle geöffneten Dateien. Wenn Sie einen Dop- pelklick auf ein Modul machen, öffnet sich dieses rechts im Code-Fenster. Das Eigenschaftenfenster zeigt Eigenschaften des jeweils ausgewählten Objekts an. In diesem Fall ist im Explorer-Fenster das Objekt Tabelle24(Tabelle1) markiert. Das Code-Fenster zeigt den aufgezeichneten Makro-Code an. Im Code-Fenster können Sie aufgezeichnete Makros editieren oder schreiben. An welcher Stelle Sie sich beim Schreiben befinden, können Sie in der Titelleiste der VBE sehen. Sie befinden sich nicht an der Stelle, die im Explorer markiert ist, sondern im Modul mdl_Uebung_01. In diesem Modul gibt es mehrere Makros. Das, worin der Cursor steht, ist aktiv. Sie kön- nen aber auch im Listenfeld des Code-Fensters sehen, welches Makro gerade in Arbeit
Visual-Basic-Editor 6 ist. Wenn Sie nicht alle Makros auf einmal sehen wollen, können Sie ganz unten links auf das Symbol klicken, das die Einzelansicht zeigt. 1.2 Einstellungen im VBE vornehmen Sie können diverse Einstellungen im VBE vornehmen. Klicken Sie dazu auf den Menüpunkt Extras und dort auf den Eintrag Optionen. Das Fenster Optionen öffnet sich. Auf der ersten Registerkarte Editor können Sie die folgenden Einstellungen vornehmen. Wenn Sie das Häkchen bei Automatische Syn- taxprüfung entnehmen, schalten Sie damit das Meldefenster aus. Die Syntax wird trotzdem geprüft und bei Fehlern rot unterstrichen. Ein Häkchen sollten Sie bei Variablendeklara- tion erforderlich setzen. Zu Beginn eines Mo- duls erscheint damit die Anweisung Option Ex- plizit. Sie müssen nun vorher Variablen dekla- rieren. Wenn Sie Variablen deklariert haben, können Sie diese beim Schreiben des Pro- grammtextes mit dem Autovervollständigen nutzen. Auf der Registerkarte Editorformat können Sie beispielsweise die Schriftgröße verändern, um den Programmtext besser lesbar zu machen. Die Schriftart sollten Sie nicht verändern, denn wenn Sie eine Proportionalschrift wählen, wird der Programmcode vielleicht schlechter lesbar. Im Listenfelde Code-Farben können Sie für jede Position (z. B. Schlüsselworttext) andere Farben wählen oder zusätzliche Hervorhebungen wäh- len, in dem Sie den Hintergrund ändern. Meis- tens sind die Voreinstellungen aber am besten.
Visual-Basic-Editor 7 Beispiel: Option Explicit macht eine Va- riablendeklaration erforderlich. Die Schlüsselworte werden mit der Farbe Blau hervorgehoben. Sobald Sie die anfangen die de- klarierte Variable zu schreiben, können Sie mit der Tastenkom- bination und das Listenfeld aufrufen den entsprechenden Eintrag auswählen. 1.3 Modul einfügen Damit Sie Programmcode erfassen können, ist es am besten, Sie erzeugen ein Modul. Das funktioniert wie folgt: - Klicken Sie im VBE auf den Listenpfeil das zweite Symbol von links. - Wählen Sie den Eintrag Modul. Alternativ dazu können Sie in der Menüleiste auf den Be- fehl Einfügen klicken und dort ebenfalls den Eintrag Modul auswählen. - Achten Sie bei der Erzeugung des Moduls darauf, dass Sie zuvor die Arbeitsmappe markie- ren müssen, in der das Modul stehen soll. In der Abbildung sehen Sie, dass die Mappe1 markiert ist. Dort wird das Modul erzeugt.
Visual-Basic-Editor 8 Sobald Sie auf den Eintrag Modul geklickt haben, wird ein Modul in der Struktur erzeugt. Wenn Sie das Modul markieren, können Sie den Modulnamen im Eigenschaftenfenster verändern. Es ist ratsam, dies zu tun, damit Sie den Überblick darüber behalten, welche Prozeduren sich in welchem Modul befinden. Im rechten Bereich sollte sich mit dem Einfügen eines neuen Moduls das zugehörige Codefenster öffnen. Falls dies nicht der Fall ist, doppelklicken Sie in der Struktur links auf das Modul, das Sie öffnen wollen
Variablendeklaration 9 2. Variablendeklaration Variablen sind Platzhalter für die Daten, die verarbeitet werden sollen. Mit dem VBA-Schlüs- selwort DIM und einem selbstgewählten Bezeichner, z. B. int_Zahl stellen Sie sozusagen ein Gefäß bereit, das Daten aufnimmt. Durch die Anweisung AS INTEGER bestimmen Sie, von welcher Art die Daten sind und wieviel Speicherplatz sie einnehmen sollen. 2.1 Namenskonventionen Bei den Variablennamen müssen folgende Regeln eingehalten werden: - sie müssen mit einem Buchstaben beginnen, - sie dürfen maximal 255 Zeichen haben - sie dürfen nicht wie VBA-Schlüsselwörter heißen - sie dürfen keine Sonderzeichen enthalten, z. B. Leerzeichen, +, -, -, / usw. 2.2 Datentypen Der Datentyp Variant wird von VBA automatisch gewählt, wenn Sie keinen Datentyp vorge- ben. Er kann sowohl Text als auch Zahlen enthalten. Wenn Sie wissen, die Daten sind nur Zahlen einer bestimmten Größenordnung, dann ist es immer sinnvoller einen passenden Da- tentyp zu wählen. So sparen Sie Speicherplatz. INTEGER hat einen Platzbedarf von 2 Bytes und Sie können ganze Zahlen im Wertebe- reich -32.768 bis 32.767 abbilden. Einige andere Datentypen: Name Typ Wertebereich Präfix Byte Ganze Zahl 0 bis 255 byt Integer Ganze Zahl ± 32.768 und 0 int Long Ganze Zahl ± 2.147.483.648 lng Single Dezimalzahl mit 8 Stellen Genauigkeit ± 3,4*1038 sng Double Dezimalzahl mit 16 Stellen Genauigkeit ± 1,8*10308 dbl Currency Festkommazahl cur String Text Beliebige Zeichenfolge str Variant Text oder Zahlen var Boolean bln Object Zeiger obj Wenn Sie Variablen mit Datentypen deklarieren ist es sinnvoll dem Variablennamen ein Prä- fix voranzustellen, um das Lesen und nachvollziehen einfacher zu machen. Sie können Vari- ablen an beliebigen Stellen in der Prozedur deklarieren. Das sollte man allerdings nicht tun. Üblich ist es am Anfang einer Prozedur die nötigen Variablen zu deklarieren
Variablendeklaration 10 2.3 Gültigkeitsbereich von Variablen Wenn Sie der Variablen einen Wert zu weisen, gilt sie nur innerhalb der Prozedur. Wenn Sie die Prozedur starten wird die Variable, wenn sie als Zahl deklariert wird, auf den Anfangs- wert 0 gesetzt. Bei einer Stringvariablen wird eine leere Zeichenkette ("") gesetzt. Geben Sie das folgende Beispiel ein: Um den Inhalt der Variablen zu prüfen, klicken Sie auf den Menüpunkt Ansicht. Wählen Sie dort den Eintrag Überwachungsfenster. Markieren Sie die Variablennamen und ziehen Sie sie ins Überwachungsfenster. Da die Prozedur noch nicht läuft, steht in der Spalte Wert: Außerhalb des Kontextes. Es gibt auch noch keine Variablen. Wenn Sie jedoch mit der Taste die schrittweise Ausführung des Makros starten, wird die Zuweisung vorgenommen.
Variablendeklaration 11 Sobald durch die Inputbox der Wert in die Variable eingelesen wurde, können Sie im Über- wachungsfenster die eingegebenen Werte sehen. Wenn die Prozedur beendet ist, sind auch die Werte in den Variablen verschwunden. 2.4 Variablen Werte zuweisen Unter Punkt 2.3 haben Sie bereits gesehen, wie den Variablen mittels einer Inputbox Werte zugewiesen werden. Sie können den Variablen auch direkt Werte zuweisen.
Variablendeklaration 12 Wenn Sie mit Objektvariablen (Tabellenblätter, Zellen und Zellbereiche usw.) arbeiten wol- len, müssen Sie die Set-Anweisung benutzen.
Schleifen 13 3. Schleifen Wenn Sie zwei oder mehr Tabellenblätter einfügen wollen, müssten Sie die Anweisung Worksheets.Add zwei oder mehrmals eingeben. Um das zu vermeiden, werden Schleifen be- nötigt. Es gibt zählergesteuerte Schleifen und Schleifen, deren Ausführung von einer Bedin- gung abhängt. Exemplarisch werden zwei Modelle vorgestellt. 3.1 For … Next-Schleife Bei dieser Schleife geben Sie vor, wie viel Mal die Anweisung wiederholt werden soll. 3.2 Do Until…Loop-Schleife Diese Schleife wird solange durchgeführt bis eine Ende-Bedingung erfüllt ist. 3.3 For Each-Schleife Diese Schleife können Sie mit (Auflistungs)objekten verwenden.
Dialoge programmieren (Formulare) 14 4. Dialoge programmieren (Formulare) Die Inputbox ist bereits eine Form des Dialogs. Sie haben gesehen, wenn Sie die Zahl der ei- zufügenden Tabellenblätter und z. B. die Namenspräfixe eingeben wollen, müssen Sie zwei Inputboxen programmieren. Sie können aber auch ein Userform nutzen, auf der Sie beide Angaben in einem Arbeitsschritt machen können. 4.1 Formular (UserForm) erzeugen Um eine Userform zu erstellen, gehen Sie wie folgt vor: - Klicken Sie im VBE auf den Listenpfeil das zweite Symbol von links. - Wählen Sie den Eintrag UserForm. Alternativ dazu können Sie in der Menüleiste auf den Befehl Einfügen klicken und dort ebenfalls den Eintrag UserForm auswählen. - Auch hier müssen Sie, wie bei der Modul-Erzeugung, darauf achten, dass Sie sich in der richtigen Mappe befinden. 4.2 Elemente der Userform Im linken Bereich des VBEs sehen Sie nun in der Struktur den Ordner Formulare, der die eben erzeugte Userform enthält.
Dialoge programmieren (Formulare) 15 Die neue Userform heißt eigentlich Userform1. Fügen Sie weitere Userformen ein, hei- ßen diese Userform2, Userform3 usw. Sie sollten der Userform einen Namen geben. Dazu klicken Sie in das Eigenschaften Fenster und tragen dort den Namen ein. Dabei sollten Sie auch hier ein Präfix, z. B. frm für Formular, benutzen. Im Eigenschaftenfenster taucht im Feld Caption nochmal die Bezeichnung Userform1 auf. Hier handelt es sich um den Namen, den Sie im Formularfenster sehen. Diesen Na- men können Sie überschreiben, in dem Sie auf das Feld Caption klicken und schreiben. Die Userform hat eine bestimmte Größe und ist am Rand mit den Markierungsklötzchen markiert. Wenn Sie auf ein Markierungsklötzchen zeigen und ziehen, können Sie die U- serform vergrößern oder verkleinern. Sobald die Userform markiert ist, erscheint auch das Fenster Toolsammlung. Die Toolsammlung enthält diverse Steuerelemente, die Sie in dem Formular benutzen können. - Wenn Sie nun die markierte Userform mit z. B. mit der Taste ablaufen lassen, sieht das in Excel wie folgt aus: Die Userform wird angezeigt und lässt sich wieder schließen. 4.3 Userform über eine Schaltfläche aufrufen Damit Sie die Userform aufrufen können, müssen Sie den Aufruf in einer Prozedur eines Mo- duls erzeugen. Es ist am besten, wenn Sie ein neues Modul erzeugen, es gleich umbenennen und den Programmtext eingeben.
Dialoge programmieren (Formulare) 16 Wenn Sie diese Prozedur erzeugt haben, können Sie es mit einer Schaltfläche oder einem Symbol in der Symbolleiste für den Schnellzugriff starten. Das funktioniert wie folgt: Klicken Sie in der Symbolleiste für den Schnellzugriff ganz rechts auf den Listenpfeil und wählen dort den Eintrag Weitere Befehle aus. Sie gelangen in das Dialogfeld Excel-Optionen. Wählen Sie aus dem Listenfeld den Befehl Makros aus. Aus der Liste der vorhandenen Makros wählen Sie das gewünschte Makro aus Klicken Sie auf die Schaltfläche Hinzufügen, so dass das Makro in der rechten Fenster- hälfte erscheint. Im Listenfeld darüber können Sie auswählen, ob das Makro immer in der Symbolleiste angezeigt werden soll oder nur dann, wenn die Datei, die das Makro enthält, geöffnet ist. Sobald das Makro in der Symbolleiste eingefügt ist, wird die Schaltfläche Ändern aktiv. Sie können nun dem Makro ein anderes Symbol und ein Quickinfo zuweisen.
Dialoge programmieren (Formulare) 17 4.4 Userform mit Steuerelementen ausstatten Die Userform muss mit Steuerelementen ausgestattet werden, damit das Formular vernünf- tig genutzt werden kann. Zunächst sollten die Schaltflächen OK und Abbrechen erzeugt wer- den. 4.4.1 CommandButton einfügen und bearbeiten Ziehen Sie das Steuerelement CommandButton auf die Formularfläche. Sobald Sie die Maustaste loslassen, erscheint die Schaltfläche auf dem Formular Damit Sie die Übersicht über die Schaltflächen und deren Programmierung behalten, sollten Sie die Schaltflächen entsprechend ihrer Aufgabe umbenennen. Diese Schaltfläche ist ein CommandButton und sollte deshalb mit Präfix cmd und dem, was dieser Button macht, beschriftet werden. Damit man auch die ESC-Taste zum Abbrechen benutzen kann, sollten Sie auf die Eigen- schaft Cancel doppelklicken, um sie auf True zu schalten. Im Feld Caption tragen Sie die Beschriftung, die auf der Schaltfläche stehen soll, ein.
Dialoge programmieren (Formulare) 18 Zu guter Letzt müssen Sie die Schaltfläche noch programmieren, damit sie die Userform schließt, wenn man draufklickt. Doppelklicken Sie auf die Schaltfläche Abbrechen und Sie gelangen in die Programmierumge- bung für diese Schaltfläche. Die Schlüsselworte (Private Sub und End Sub), der Schaltflächenname und das Klickereignis sind bereits eingestellt. Sie brauchen nur noch die Zeilen zu schreiben, was passieren soll, wenn die Schaltfläche geklickt wird: Unload Me Auf die gleiche Art produzieren Sie eine OK-Schaltfläche, die aber noch nicht programmiert werden kann. Zunächst müssen Eingabefelder erzeugt werden. 4.4.2 Texteingabe und Textbeschriftungsfelder Um Eingaben in das Formular machen zu können, müssen Sie Eingabefelder benutzen und Felder, die den Text anzeigen, was eingegeben werden soll. Wenn Sie mehrere sogenannte Labels, also Beschriftungsfelder, nutzen wollen, ist es sinnvoll ein Feld zu gestalten in Schriftart, Schriftgrad und sonstigen Eigenschaften und die weiteren Labels zu kopieren. Zu dem Beschriftungsfeld sollte eine Textbox hinzukommen, die die Eingaben aufnehmen kann. Auch hier zunächst gestalten und dann kopieren, wenn eine weitere Textbox notwen- dig ist. Die Textbox kann nicht nur Text, sondern auch Zahlen oder ein Datum aufnehmen. Allerdings müssen Sie prüfen, ob der Datentyp korrekt ist. Andernfalls muss der Datentyp umgewandelt werden.
Dialoge programmieren (Formulare) 19 Wenn die Felder befüllt wurden, muss hinter der Schaltfläche OK hinterlegt werden, was mit den Eingaben passieren soll. Doppelklicken Sie auf die Schaltfläche Ok. Sie gelangen in das Codefenster und können hier den Programmcode eingeben.
Dialoge programmieren (Formulare) 20 4.4.3 Eingabeauswahl durch Listboxen oder Comboboxen Wenn Sie keine freien Eingaben machen wollen, können Sie aus einer Listbox oder einer Combobox auswählen. In der folgenden Abbildung sehen Sie eine Ausgabe mit der Combo- box. In der folgenden Abbildung sehen Sie die gleiche Liste in einem Listenfeld. Sie können sich alle Einträge zugleich anschauen. Wenn nicht alle Einträge in die Liste passen, erscheint am Rand eine Bildlaufleiste. Für beide Objekte gilt, dass Sie sie mit den Elementen befüllen müssen. Sie können beispiels- weise in einem separaten Tabellenblatt die notwendigen Einträge erzeugen und die Bereiche mit Namen versehen oder als Tabelle definieren.
Dialoge programmieren (Formulare) 21 In der Abbildung sehen Sie, dass z. B. dem Bereich A8 bis A15 der Name Arti- kel zugewiesen wurde. Wenn Sie Namen benutzen können Sie Zeilen dazwi- schen fügen und die neuen Zeilen werden in der List- bzw. Combobox ange- zeigt. Wenn Sie die Bereiche als Tabellen definieren, können Sie die neuen Einträge unten anfü- gen. Um die Einträge der List- bzw. der Combobox zuzuweisen, können Sie das über das Eigen- schaftenfeld RowSource tun oder beim Initialisieren der Userform. - Klicken Sie doppelt auf die Userform oder wechseln in das Codefenster und wählen dort Userform aus. - wählen Sie im rechten Bereich das Ereignis Initialize aus. - der aktuellen Userform (Me) und dort dem Objekt cbo_Referat werden die Einträge aus der Tabelle tbl_Referate zugeordnet.
Dialoge programmieren (Formulare) 22 4.5 Optische Gestaltung des Formulars Wenn die Schaltflächen wild durcheinander stehen, sieht das nicht besonders gut aus. Sie sollten die Schaltflächen deshalb bündig anordnen. - Klicken Sie die erste Schaltfläche an, halten die Shift-Taste gedrückt und klicken die nächs- ten Schaltflächen an. - Klicken Sie in der Menüleiste auf Format und dort auf den Eintrag Ausrichten. - Sie können nun die markierten Objekte in einer Fluchtlinie anordnen. Die Einträge sind ausgegraut, wenn Sie nichts markiert haben. Außerdem könnte es sein, dass jemand die Formularfelder mit der TAB-Taste bedienen möchte. Dann ist es sinnvoll, die Reihenfolge einzustellen, wie die Ausfüllfelder anzuspringen sind. - Klicken Sie in der Menüleiste auf Ansicht und wählen den Eintrag Aktivierreihenfolge
Dialoge programmieren (Formulare) 23 Das Dialogfenster Aktivierreihenfolge öffnet sich: Sie können nun die einzelnen Objekte markieren und mit den Schaltflächen Nach oben oder Nach unten in die ent- sprechende Position schieben. An dieser Stelle sehen Sie auch, wie wich- tig es ist, die Schaltflächen aussagekräftig benannt zu haben.
Lernmaterial Lernmaterial Lernmaterial – Schulungsunterlagen, Übungsdateien, Lernprogramme und Tipps & Tricks – fin- den Sie im Internet unter der Adresse: https://www.afz.bremen.de/lernen Wählen Sie das gewünschte Thema über die Menüstruktur am oberen Rand der Seite oder aus der Liste aus, die Sie im rechten Bereich über die Infobox Gesamtliste der Schulungsunterlagen in den einzelnen Untermenüpunkten erreichen können. Hier können Sie Themen nachschlagen, Ihre Kenntnisse aktualisieren (z. B. bei neuer Pro- grammversion) oder sich zusätzliche Themen erarbeiten. Sie können das Lernmaterial als PDF- Dokumente am Bildschirm lesen, auf Ihrem Computer speichern oder ausdrucken. Zum Teil stellen wir zusätzlich Übungsdateien in gepackter Form (Zip-Archiv) zur Verfügung. Tipps & Tricks Oft sind es die kleinen Dinge, die die Arbeit am PC erleichtern. Dazu haben wir Tipps und Tricks zusammengestellt. Diese finden Sie sowohl bei den einzelnen Programmen als auch in einer Ge- samtliste, die Sie über die Infobox Tipps und Tricks im rechten Bereich bei den einzelnen Unter- menüpunkten erreichen können. Vielleicht entdecken Sie hier etwas, um Ihre Arbeit effektiver zu gestalten. Kompetenzzentrum E-Government (CC-EGov) Sollten Sie als Beschäftigte der Freien Hansestadt Bremen bei Ihrer Arbeit auf Probleme stoßen, die beim Einsatz Ihrer Softwareausstattung auftreten (Probleme mit Word-Dokumenten, Excel- Tabellen etc.), können Sie sich mit Ihren Fragen, Problemstellungen oder Fehlermeldungen tele- fonisch oder per E-Mail an uns wenden: cc-egov@afz.bremen.de Tel. 16 999 Beschreiben Sie Ihre Frage bzw. die Fehlersituation und Ihre bisherige Vorgehensweise und fü- gen Sie die Dateien im Original-Dateiformat als Anlage bei. Wir beantworten Ihre Fragen so schnell wie möglich, in jedem Fall melden wir uns innerhalb weniger Tage bei Ihnen.
Sie können auch lesen