Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2013 VBA für Profis

AutoOpen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Prozedur Workbook_Open muss sich im Modul DieseArbeitsmappe befinden und wird dann automatisch beim Öffnen der Datei ausgeführt.

Transkript

Es gibt mehr Stellen, wo dieses Konzept, dass der Prozedurname sich aus einer Objektbezeichnung, einem Unterstrich, und einer Eigenschaft oder einem Ereignis, einer Methode zusammensetzt, wo dieses Konzept durchgeführt wird. Zum Beispiel, wenn Sie vielleicht noch ganz frühere Excel-Versionen kennen, dort hieß das AutoOpen. Ein Makro, welches aufgerufen wird, wenn diese Excel-Datei geöffnet wird. Der Haken damals war, AutoOpen war ein beliebiger Name und der konnte in jedem Modul einmal vorkommen. Und dann war völlig unklar, welches AutoOpen eigentlich gestartet wird. Das ist inzwischen verbessert, indem die Stelle, an der das gespeichert wird, eingeschränkt ist. Mit Alt+F11 können Sie in den Code wechseln, und haben vielleicht schon bemerkt, es gibt sowas wie DieseArbeitsmappe. Wenn Sie da einen Doppelklick drauf machen, erscheint der Code. Der ist üblicherweise leer. Und dieses Modul sieht aus wie ein ganz normales Modul, wie zum Beispiel da unten modAllgemein auch. Ist es aber nicht. Erstens wäre es ein Klassenmodul, also ein spezielles Modul, welches sich technisch ein bisschen anders verhält. Das muss uns aber hier nicht interessieren. Aber zweitens enthält es mindestens ein Objekt schon, und zwar oben in dieser Liste, dort ist, wie Sie es vielleicht von Steuerelementen auf Formularen auch kennen, schon ein Objekt enthalten, nämlich Workbook. Und wenn Sie das anklicken, werden dessen Eigenschaften hier oben aufgelistet. Und seine Standardeigenschaft ist Open, deswegen ist das Ereignis beziehungsweise der Prozedurrumpf dafür schon erzeugt worden. Und dieses Workbook_Open wird genau dann aufgerufen, wenn Sie das Workbook, nämlich die Datei öffnen. Das können wir am einfachsten testen mit einer MsgBox. Also: "Workbook_Open hat dies ausgelöst!" Und dann speichern. Und jetzt werde ich ganz einfach die Datei schließen mit Excel, und aus dem Explorer mit Doppelklick, nämlich jetzt werden öffnen. Und ohne dass ich sonst was anderes machen musste, sehen Sie, dass hier die MsgBox erschienen ist. Also wenn ich das entsprechend wieder nochmal zeige, in dieser Arbeitsmappe gibt es ein spezielles Workbook-Objekt und das enthält; ich kommentiere das schonmal wieder aus, weil das sonst furchtbar ist bei jedem Öffnen; das enthält die Möglichkeit, beim Öffnen einer Arbeitsmappe automatisch etwas auszulösen. Da stecken noch mehr drin, zum Beispiel ein Workbook_SheetActivate. Das bringt auch ein Argument mit, nämlich hier das Argument Sh. "Sheet "soll das heißen, es ist ein bisschen schlampig formuliert. ByVal bedeute eigentlich nur, dass es im Gegensatz zu ByRef nicht als Referenz, sondern als echter Wert übergeben wird. Das muss Sie auch nicht interessieren. "Sheet" soll das hier heißen, ist der Parametername. As Object ist sehr, sehr unspezifisch, hat aber die Chance, dass wir an dieser Stelle sagen können, wir würden gern mal den Namen dieses Sheets sehen. Also mit einer MsgBox schreibe ich einfach mal: "Blatt: " & sh.; da klappt jetzt keine Liste aus, aber ich weiß, es gibt zu jedem Objekt eine Name-Eigenschaft. Also wann immer ein Blatt aktiviert wird, möchte ich den Namen des Blattes sehen, der dann übergeben wird. Denn das gilt jetzt für alle Blätter gleichzeitig. Sie sehen, DieseArbeitsmappe hat sichtbare, und was man hier sehen kann, noch zwei versteckte Blätter. Wenn ich jetzt auf Fünf ist Trümpf klicke, dann wird dieses Blatt hier genannt, dessen Name-Eigenschaft, und das Ereignis automatisch ausgelöst. Ich habe es nicht in einem Blatt programmiert, sondern in dem Workbook, in der Arbeitsmappe Deswegen gilt es jetzt für jedes Blatt. Wann immer ich wechsle, passiert etwas. Natürlich wäre es auch da im wirklichen Leben blöd, dass man einfach eine MsgBox anzeigt. Was ich an der Stelle schonmal gemacht habe, ist, wenn ein Blatt gewechselt wird, weiß ich, aha, die Eingaben sind fertig, und dann kann ich die auslesen, verarbeiten und irgendwo in einem versteckten Blatt als Datenbank sammeln oder Ähnliches. Also die Programmierung steht tatsächlich in dieser Arbeitsmappe, weil es dort ein Workbook-Objekt gibt, welches verschiedene Fähigkeiten mitbringt. Diese beiden sind so erstmal die spannendsten: Workbook_Open und Workbook_SheetActivate.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!