| Ohne weitere Maßnahmen wird eine Kalkulation meist an jener Stelle geöffnet, an der sie zuletzt geschlossen wurde. Dabei werden die zuletzt benutzten Eingabewerte angezeigt. | Für professionelle Ansprüche ist das nicht ausreichend. Starten sie zu einem übersichtlichen Splash-Screen und stellen sie sicher, dass die "richtigen" Anfangswerte eingesetzt sind. |
Kalkulation
|
Zahlen-Werkzeug |
Profi
|
Tipps und Tricks für Kalkulations-Profis |
| Workbook_Open | Das Start-Ereignis der Kalkulations-Lösung |
| Splash-Blatt | Übersicht und Klarheit schaffen |
| Parameter | Anfangs-Daten einsetzen |
| VBA-Profi | Angepasste Lösungen |
Workbook_Open - Das Start-Ereignis |
|
| Beim Öffnen eines Excel-Dokuments wird das Ereignis (Event) Workbook_Open ausgelöst. Mit Visual Basic (VBA) können sie es "abfangen" und alle erforderlichen Arbeiten zur Initialisierung ausführen. | Symmetrisch dazu wird beim Schließen das Ereignis Workbook_BeforeClose ausgelöst, das sie zum "Aufräumen" benutzen. |
|
►
Öffnen sie das Arbeitsblatt und danach VBA mit Alt-F11 oder Menübefehl Extras | Makro | Visual Basic Editor |
►
Suchen sie (links) im Fenster "Project Explorer" ihr Dokument. ► Falls ihr Dokument noch kein VBA-Modul enthält, dann fügen sie eines dazu: Menü Einfügen | Modul. |
Öffnen sie das VBA-Modul ihres Dokuments und
tragen sie das rechts angezeigte Sub ein.(Dieses Sub können sie zum Test auch mit dem Menü Extras | Makro oder mit Hilfe eines Buttons starten). |
Sub init()
MsgBox ("Initialisierung")
End Sub
' weitere Anweisungen hier einfügen
|
Öffnen sie die Arbeitsmappe ihres Dokuments.Klicken sie auf die Objekt-Auswahlliste links oben (Allgemein) und wählen sie Workbook ► Wählen sie aus der Prozedur-Auswahlliste rechts oben Open Es wird ein leeres Sub erzeugt. Tragen sie die rechts gezeigte Anweisung ein. |
Private Sub Workbook_Open()
Call init
End Sub
' weitere Calls hier einfügen
|
|
►
Sichern und Schließen sie ihr Dokument. ► Öffnen sie es wieder - Die Init-Meldung sollte in einem Alarmfenster angezeigt werden. |
►
Damit haben sie das Grundgerüst für die Initialisierung gelegt. Für alle weiteren Init-Arbeiten ergänzen sie entweder das Sub init() oder sie legen weitere Subs (im VBA-Modul) an und fügen die ntsprechenden Call-Anweisungen im Sub Workbook_Open() dazu. |
Splash-Blatt |
|
|
Jede Profi-Lösung hat einen gut durchdachten Splash-Screen,
ebenso benötigt jede Kalkulations-Lösung ein Splash-Blatt. ► Diese Seite sollte unverwechselbar sein und das "Look & Feel" der gesamten Lösung konzentriert zum Ausdruck bringen. |
►
Sowohl AnfängerInnen als auch regelmäßige AnwenderInnen finden
an dieser Stelle eine übersichtliche Ausgangs-Position. ► Die Splash-Seite sollte knapp gehalten sein: man soll nicht rollen (scrollen), und von dort rasch zum gewünschten Ziel gelangen. |
|
►
So sieht das Navigations-Sub aus, welches zum Splash-Blatt bringt: Auf Wunsch
können sie anschließend eine Zelle oder einen Bereich des Splash-Blatts
auswählen. Ändern sie den Namen des Arbeitsblatts nach Bedarf. ► Ergänzen sie das Sub Workbook_Open() durch den Befehl Call goto_splash. ► Es ist für AnwenderInnen sehr angenehm, auf jedem Blatt (möglichst an der gleichen Stelle) ein Home-Icon zu finden. Sie laden es von einer Datei mit Menü Einfügen | Grafik | Aus Datei. |
Sub goto_splash()
Sheets("Splash").Select
End Sub
' Range("A1").Select
|
| Häufig sind im Splash-Blatt auch Navigations-Elemente enthalten. | ♦ Details zum Thema Navigation. |
Parameter |
|
| In fast jeder Kalkulations-Lösung sind zumindest einige wenige Parameter einstellbar. Es macht Sinn, diese Parameter am Anfang mit sorgfältig ausgewählten Standard-Werten einzustellen ("default") | In bestimmten Fällen können sie auch mehrere "Sätze" von Parametern vorrätig halten, von denen je nach Bedarf einer eingesetzt wird. |
Namen:Vergeben sie dazu für alle in Frage kommenden Zellen und Bereiche Namen:Bereich auswählen, Menü Einfügen | Namen | Definieren |
Vergeben sie sprechende Namen. Ausgeschlossen sind Texte, welche mit Zell-Adressen verwechselt werden können (z.B. A1 ) Verwenden sie Namen (z.B. mwst_satz ) statt Adressen ( A1 ), denn letztere sind empfindlich gegen Einfügen, Löschen oder Verschieben von Zellen. |
|
So sieht ein einfaches Sub zur Initialisierung eines (!)
Parameters aus. ► Ergänzen sie dieses Modell für alle Parameter, die initialisiert werden sollen. ► Ergänzen sie das Sub Workbook_Open() durch den Befehl Call init_parameter. ► Gleitkomma-Zahlen werden in VBA immer mit Komma-Punkt (!) formatiert. Im Kalkulationsblatt erscheint dann das jeweils eingestellte Komma-Zeichen. ► Falls die Init-Daten sehr umfangreich sind, oder sich öfters ändern, kann man sie auch von einer Datei einlesen. Kurzfristig ist dazu das Format "Text" am besten, mittelfristig eher → XML. |
Sub init_parameter()
Dim p As Range
Set p = Range("mwst_satz")
End Sub
' Set p = Range("A15") ' Vorsicht !
p.Value = 0.2
|
VBA-Profi |
|
|
In komplett ausgearbeiteten Lösungen erinnert kaum mehr etwas an das
Original-Kalkulationsprogramm: ■ Sie können Menüs und Menüleisten ändern, ergänzen, abschalten und durch spezielle angepasste Menü-Befehle ersetzen. ■ Zahlreiche Standard-Elemente können durch spezielle Lösungs-Komponenten ersetzt werden. |
■
Alle dazu notwendigen Maßnahmen werden normalerweise während der
Initialisierung durchgeführt. ■ So weitgehende Änderungen müssen vor dem Abschalten wieder rückgängig gemacht werden, derartige komplexe Lösungen verwenden dazu den → Event-Handler Workbook_BeforeClose |
|