grundlagen der vba und makro-programmierung (visual … · grundlagen der vba und...
TRANSCRIPT
Grundlagen der VBA und Makro-Programmierung
Grundlagen der VBA und Makro-Programmierung
(Visual Basic for Applications)
am Beispiel der Deckungsbeitragsrechnung im Mehrproduktunternehmen
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 2
Schritt 1: Entwicklertools in Hauptregisterkarte anzeigen lassen
‚Datei‘ – rechte Maustaste – ‚Menüband anpassen‘
‚Entwicklertools‘ aktivieren
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 3
Schritt 2: Excel-Datei erstellen (Berechnungen durchführen
Grafiken einfügen Formatierungen vornehmen)
Laden Sie die Datei VBADBR.xlsx
www.guenter-schwindt.de\deckungsbeitrag.htm (ganz unten: Grundlagen der VBA- und Makroprogrammierung)
Um die logische Reihenfolge der einzelnen Programmierschritte nicht
ständig zu verändern, ist es immer ratsam, zunächst die Endversion
der Excel-Datei ohne Programmierung zu erstellen. (Es ist jederzeit möglich, Ergänzungen der Excel-Datei vorzunehmen. Wenn dann
jedoch eine benutzerfreundliche Reihenfolge von Eingaben in den zu erstellenden
Eingabemasken eingehalten werden soll (‚Klickminimierung‘), muss dann auch die
Eingabefolge in der VBA-Programmierung verändert werden.)
Wechseln Sie zwischen den Tabellen ‚Kontrolle‘ und
‚Berechnungen‘ und versuchen Sie die Anwendung zu verstehen.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 4
Schritt 3: Visual Basic vorbereiten (VBA-Editor einrichten)
Entwicklertools in Registerkarte – Visual Basic
Einfügen – UserForm (oder über die Symbolleiste)
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 5
Ansicht - Eigenschaftenfenster
Über die Registerkarte ‚Ansicht‘ können auch der Projekt-Explorer
und die Werkzeugsammlung ein- und ausgeblendet werden. Diese
müssen beim Arbeiten mit ‚UserForms‘ sichtbar sein.
‚UserForms‘ sind die ‚Rohentwürfe‘ der gewünschten
Eingabemasken, die nun mit ‚Objekten‘ gestalten werden.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 6
Schritt 4: Eingabefenster (UserForm) mit Objekten
gestalten
Alle Objekte haben einen ‚Name‘ und eine ‚Caption‘.
Die ‚Caption‘ ist die ‚Bezeichnung‘ mit der das Objekt in der
Anwendung erscheint. Die ‚Names‘ sind Elemente der
Programmierung.
(Hinweis Sdt: ‚Names‘ – Excel-Vorgaben verwenden, ‚Captions‘ – eigene
Bezeichnungen verwenden. Beim Kopieren von ‚Codes‘ und ‚Objekten‘ ist der
‚Tippaufwand‘ für Änderungen der ‚Names‘ geringer und hinter der Zahlenfolge
von ‚UserForms‘ steht eine gewisse Logik. Das ist aber Ansichtssache.)
Ändern Sie die ‚Caption‘ von ‚UserForm1‘ in ‚Verkaufspreise und Mengen‘
Speichern Sie häufig. Sie müssen die Anwendung immer als
Excel-Arbeitsmappe mit Makros (*.xlsm) speichern.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 7
Ziehen Sie eine ‚Multiseite‘ aus der Werkzeugsammlung in
UserForm1
Fügen Sie dann mit rechter Maustaste eine ‚Neue Seite‘ ein.
Klicken Sie die einzelnen Registerkarten an und ändern Sie
jeweils die ‚Caption‘. (Sie wissen schon, wie Sie die ‚Caption‘ ändern können.
Es geht auch mit der rechten Maustaste über ‚Umbenennen‘. Sie müssen allerdings
noch häufig mit dem ‚Eigenschaftsfenster‘ arbeiten. Gewöhnen Sie sich also daran.)
Page1 – Gehäuse I
Page2 – Gehäuse II
Page3 – Gehäuse III
Entwerfen Sie nun ein
Konzept für Ihre Eingabe-
maske. (Gerne auch händisch; im
Kopf geht auch.)
Sie können jede beliebige Bezeichnung
verwenden. (z.B.: Puppe 1, Puppe 2, Puppe 3)
Die Captions spielen für die Programmierung
keine Rolle
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 8
Ziehen Sie nun ein ‚Beschriftungsfeld‘ in die 1. Registerkarte
des ‚UserForm‘ und ändern Sie die ‚Caption‘ mit der von Ihnen
gewünschten Bezeichnung. (Es geht auch mit Linksklick in das
Beschriftungsfeld – markieren – überschreiben.)
Kopieren Sie nun das Beschriftungsfeld in der erforderlichen
Anzahl in die einzelnen Registerkarten des ‚UserForms‘ und
ändern Sie jeweils die Beschriftung. (rechte Maustaste – Kopieren –
Einfügen; oder über die Symbolleiste)
Richten Sie die Beschriftungsfelder an den Rasterpunkten des
UserForms aus.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 9
BESCHRIFTUNGSFELDER Eingabe von Bezeichnungen
(Konstanten)
TEXTFELD dient zur Verknüpfung mit der Excel-Anwendung;
in Textfeldern werden in den Eingabemasken die Variablen verändert.
Ziehen Sie nun das erste ‚Textfeld‘ in die 1. Registerkarte des
‚UserForm‘ an die richtige Stelle.
Kopieren Sie nun das Textfeld in der erforderlichen Anzahl in
logischer Reihenfolge in die einzelnen Registerkarten des
‚UserForms‘ und ändern Sie jeweils die Beschriftung.
Wenn Sie hier die logische Reihenfolge der vorzunehmenden
Eingaben einhalten, wird die spätere Eingabe im Eingabemenü
benutzerfreundlicher. Es wird so ermöglicht, die Eingabefelder mit der
TAB-Taste in einer logischen Reihenfolge anzusteuern ohne
Eingabefelder zu überspringen.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 10
Achten Sie auf eine fortlaufende Ziffernfolge der Textfelder im
‚TapIndex‘ des Eingabefensters, so, wie Sie die Eingabereihenfolge
gerne hätten. Wenn Sie die Textfelder nicht in der gewünschten
Reihenfolge kopieren, müssen Sie den ‚TapIndex‘ später ändern oder
die Eingabefelder jeweils mit der Maus ansteuern. Bei ‚TapStop‘
sollte ‚True‘ (voreingestellt) eingestellt sein.
Schritt 5: UserForm (Eingabemenü) mit Excel-
Anwendung verknüpfen
Die Verknüpfung von ‚UserForm‘ (Eingabemenü) und Excel-
Anwendungen wird über ‚ControlSource‘ im Eingabefenster
vorgenommen.
Klicken Sie auf das erste ‚Textfeld‘ in die 1. Registerkarte des
‚UserForm‘.
Geben Sie unter ‚ControlSource‘ die Tabelle der Excel-
Anwendungen an, die Sie ansteuern wollen und die Zelle in die
Variable eingegeben werden. Dabei folgt auf die Eingabe der
Tabelle immer ein Ausrufungszeichen!
z.B.: ‚Berechnungen!B4‘ (siehe Seite. 11)
(Groß- und Kleinschreibung ist bei Tabellen- und Zellenangaben egal.)
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 11
Kopieren Sie den ‚ControlSource‘ des ersten Textfeldes in die
‚ControlSources‘ der weiteren Textfelder und ändern Sie jeweils
die Zelladressierung.
Schritt 6: UserForm (Eingabemenü) öffnen und schließen
Eingabemenüs werden durch Klick auf ‚Befehlsschaltflächen‘
geöffnet und geschlossen.
Ziehen Sie eine ‚Befehlsschaltfläche‘ in das UserForm.
Ziehen sie ggf. das UserForm in eine geeignete Größe, um Platz
zwischen der von Ihnen angelegten ‚Multiseite‘ und dem Rand des
‚UserForms‘ zu haben. Wenn Sie die Befehlsschaltfläche auf der
Multiseite ablegen, sehen Sie diese nur auf der gerade aktivierten
Registerkarte. (siehe Seite 12)
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 12
Ändern Sie die ‚Caption‘ der Befehlsschaltfläche mit der von
Ihnen gewünschten Bezeichnung. (Es geht auch mit Linksklick in
die Befehlsschaltfläche – markieren – überschreiben.)
Klicken Sie mit
der rechten Maus-
taste auf die Befehls-
schaltfläche und
dann auf
‚Code anzeigen‘
Damit wird die
Voraussetzung zur
Codeeingabe mit der
Programmiersprache
Visual Basic
geschaffen. Keine
Angst, es sind nur
wenige Befehle
nötig!
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 13
Ein Befehl beginnt bei VB immer mit ‚Private Sub‘ und endet mit
‚End Sub‘ Nach ‚Private Sub‘ seht eine Adresse, die durch den Klick
mit der rechten Maustaste auf ein Objekt voreingestellt wird.
Zwischen ‚Private Sub‘ und ‚End Sub‘ beginnt die Programmierung
durch Einrückung mit der ‚Tab-Taste‘. (Es geht auch ohne Tab-Einrückung,
aber man soll.)
Der Befehl zum Schließen des Eingabemenüs (UserForm1) lautet:
‚UserForm1.Hide‘ (Wichtiger Befehl!)
Nach Eingabe des Punktes gibt Excel Befehlsvorschläge, die nach
Eingabe von Buchstaben immer weiter eingrenzt und schließlich nur
noch angeklickt werden müssen. (Die Texteingabe geht häufig schneller.)
Bedeutung:
‚Name‘ unseres
Objektes ist
‚CommandButton1‘
Nach der Aktion
‚Click‘ soll das
Eingabemenü
‚UserForm1‘
verschwinden.
Hinweis:
Befehle können
kopiert werden. Ohne
Änderung der ‚Names‘
muss dann nur noch
die entsprechende
Objektziffer
geändert werden. Mit Änderung der ‚Names‘ muss der veränderte
‚Name‘ neu eingetippt werden.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 14
Sie können nun das Eingabemenü schließen aber noch nicht öffnen.
Wechseln Sie in die Excel-Anwendung und danach in die
Tabelle ‚Kontrolle‘. Aktivieren Sie die Registerkarte
‚Entwicklertools‘ und klappen Sie das Symbol ‚Einfügen‘ auf.
Sie können diesen Schritt an jeder beliebigen Stelle der Excel-
Anwendung durchführen. Insbesondere bei umfangreichen Projekten
empfiehlt es sich jedoch, die Anwendung auf verschiedene Tabellen
zu verteilen.
Klicken Sie auf das ActiveX-Steuerelement
‚Befehlsschaltfläche‘ und danach in der Excel-Anwendung an die
Stelle, an der Sie eine Befehlsschaltfläche zum Öffnen des
Eingabemenüs einfügen möchten.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 15
Klicken Sie mit der rechten Maustaste auf das ActiveX-
Steuerelement ‚Befehlsschaltfläche und aktivieren Sie das Eigen-
schaftenfenster. Ändern Sie die ‚Caption‘ mit der von Ihnen
gewünschten Bezeichnung.
Passen Sie ggf. mit den ‚Anfassern‘ die Größe der Befehlsschaltfläche
an.
Klicken Sie mit der rechten Maustaste auf das ActiveX-
Steuerelement ‚Befehlsschaltfläche‘ und auf ‚Code anzeigen‘.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 16
Geben Sie den ‚Code‘ zum Öffnen des Eingabemenüs ein.
Der Befehl zum Öffnen des Eingabemenüs (UserForm1) lautet:
‚UserForm1.Show‘ (Wichtiger Befehl!)
Wechseln Sie in die Excel-Anwendung und deaktivieren Sie in
der Registerkarte ‚Entwicklertools‘ den ‚Entwurfsmodus‘.
Der ‚Entwurfsmodus wird von Excel automatisch aktiviert, wenn Sie
eine Befehlsschaltfläche in eine Excel-Anwendung einfügen. Sie
müssen ihn deaktivieren, damit Sie jetzt das Eingabemenü öffnen und
schließen können.
Durch Klick auf die Befehlsschaltfläche können Sie jetzt das
Eingabemenü öffnen und schließen und Änderungen der von Ihnen
definierten Variablen vornehmen.
Herzlichen Glückwunsch!
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 17
Schritt 7: Makros aufzeichnen
Makros sind Programme, die von Excel selbst geschrieben werden,
nachdem der entsprechende Befehl dazu gegeben wurde. Auf Befehl
wird dann die Programmaufzeichnung von Excel wieder beendet.
Excel bindet dann jeden Klick, jede Berechnung, jede Einfügung von
Objekten, Grafiken und Bildern ein, die der User während der
Aufzeichnungsphase vornimmt. Makros können dann Befehls-
schaltflächen zugewiesen werden um z.B. mit Klick Berechnungen
durchzuführen oder Objekte einzubinden. In der vorliegenden
Anwendung soll auf umfangreiche Rechenoperationen verzichtet
werden. Die Vorgehensweise ist jedoch immer gleich, egal ob das von
Excel geschriebene Programm klein oder groß ist.
In der Anwendung sollen makrogesteuerte Seitenwechsel durch-
geführt werden. Das mag im vorliegenden Fall etwas übertrieben sein,
ist aber bei umfangreichen Anwendungen aus organisatorischen
Gründen sehr hilfreich.
Wechseln Sie in die Excel-Anwendung und klicken Sie in der
Registerkarte ‚Entwicklertools‘ auf ‚Makros aufzchn.‘.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 18
Klicken Sie noch nicht auf OK, sondern vergeben Sie nur
einen ‚Makronamen‘ mit dem Sie zum Ausdruck bringen wollen,
dass Sie in eine andere Tabelle (Berechnungen) wechseln wollen.
Wenn Sie jetzt auf ‚OK‘ klicken, zeichnet Excel alle Ihre Aktionen als
Programm auf. Die Aufzeichnung wird in der Registerkarte
‚Entwicklertools‘ durch Klick auf ‚Aufzeichnung beenden‘ beendet.
Gehen Sie nun in der folgenden Reihenfolge vor:
1. Klicken Sie auf ‚OK‘
2. Wechseln Sie in die Tabelle ‚Berechnungen‘
3. Klicken Sie in der Symbolleiste auf ‚Aufzeichnung beenden‘
Damit haben Sie ein kleines Programm generiert, das von Excel als
Modul im Visual-Basic-Editor automatisch gespeichert wird.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 19
Schritt 8: Einer Befehlsschaltflächen ein Makro zuweisen
Klicken Sie auf die Registerkarte ‚Entwicklertools‘ und dann
auf die Symbole ‚Entwurfsmodus‘ und ‚Einfügen‘
Klicken Sie auf das Formularsteuerelement ‚Schaltfläche‘ und
weisen Sie das von Ihnen programmierte und bezeichnete Makro
zu. (z.B. Berechnungen) Klicken Sie dann auf ‚OK‘
Klicken Sie in die Schaltfläche und benennen Sie die Schaltfläche
sinnvoll um. Passen Sie dann die Größe der Schaltfläche mit den
‚Anfassern‘ nach Ihren Vorstellungen an.
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 20
Bleiben Sie zunächst im Entwurfsmodus und wechseln Sie auf
die Tabelle ‚Berechnungen‘
Zeichnen Sie nun das Makro ‚Kontrolle‘ auf und weisen Sie es
als ‚Formularsteuerelement‘ der ‚Schaltfläche‘ ‚Kontrolle‘ zu.
Wenn Sie die Aufzeichnung beendet und das Makro zugewiesen
haben, können Sie über die entsprechenden Schaltflächen zwischen
den Tabellen der Excel-Anwendung wechseln.
Herzlichen Glückwunsch!
Schritt 9: Fertigstellung (Hausaufgabe)
Entwerfen Sie ein Konzept um die Kosten über ein
Eingabemenü erfassen zu können. (variable Stückkosten, erzeugnisfixe
Kosten, erzeugnisgruppenfixe Kosten, unternehmensfixe Kosten)
Erstellen Sie nach Ihrem Konzept ein UserForm (UserForm2)
und eine Schaltfläche zur menügesteuerten Eingabe der Kosten.
Ändern Sie in den Eingabemenüs die Variablen und
beobachten Sie die Auswirkungen auf die Deckungsbeiträge und
das Betriebsergebnis.
Machen Sie sich über das Eingabefenster des VBA-Editors
mit den Formatierungsmöglichkeiten von UserForms vertraut,
und ändern Sie ggf. die Formatierungen, wenn Sie mit den
Voreinstellungen von Excel nicht zufrieden sind.
Erstellen Sie ein Makro zur Durchführung der Rechen-
operationen und weisen Sie es einem Steuerelement ‚Schaltfläche‘
zu
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 21
Ihre Excel-Anwendung besteht nun aus den folgenden Elementen:
Tabelle mit der Kontrollseite
Tabelle mit Berechnungen
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 22
Menü zur Eingabe der Variablen Verkaufspreis und Absatzmenge
Menü zur Eingabe der Kosten
Grundlagen der VBA und Makro-Programmierung
BBS Wirtschaft Bad Kreuznach Seite 23
Weitere Arbeitsaufträge und Lösungsvorschläge mit Excel-
Anwendungen zu vielen betriebswirtschaftlichen Themen können Sie
downloaden.
Folgen Sie im Frame dem Pfad Schule – Lernmaterial.
Wählen Sie dann im Frame die gewünschten betriebswirtschaftlichen
Themenbereiche aus.
Die Lösungsvorschläge sind weitgehend passwortgeschützt. Die
Passwörter stellt Ihnen der Autor gerne zur Verfügung, falls sie diese
nicht selbst an den Icons erkennen können.
oder