grundlagen der vba und makro-programmierung (visual … · grundlagen der vba und...

24
Grundlagen der VBA und Makro-Programmierung Grundlagen der VBA und Makro-Programmierung (Visual Basic for Applications) am Beispiel der Deckungsbeitragsrechnung im Mehrproduktunternehmen

Upload: trancong

Post on 05-Jun-2018

262 views

Category:

Documents


7 download

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.

[email protected]

oder

[email protected]

Grundlagen der VBA und Makro-Programmierung

BBS Wirtschaft Bad Kreuznach Seite 24