Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Mag. Wolfgang Steinert, BA IT-Dienstleistungen
Training Coaching
© Wolfgang Steinert www.wolfgang-steinert.at [email protected]
Excel
2010
MS Excel
Makros
Erstellen von Makros
inklusive bearbeiten in VBA
Notizen
Seite 2 www.wolfgang-steinert.at © Wolfgang Steinert
Notizen
© Wolfgang Steinert www.wolfgang-steinert.at Seite 3
Notizen
Seite 4 www.wolfgang-steinert.at © Wolfgang Steinert
Inhalt
© Wolfgang Steinert www.wolfgang-steinert.at Seite 5
Inhaltsverzeichnis 1 Wozu Makros ......................................................................................................................... 6
1.1 Grenzen von Makros ................................................................................................... 6 2 Makrofunktionen ................................................................................................................... 7
2.1 Makros aufzeichnen .................................................................................................... 8
2.2 Unterschied absoluter zu relativer Aufzeichnung: ..................................................... 10 2.3 Längeres Makro - mit absoluter Aufzeichnung ......................................................... 10 2.4 Ausführen von Makros ............................................................................................... 11 2.5 Ein Makro löschen ..................................................................................................... 11
3 Schaltflächen für Makros .................................................................................................... 12 4 Makrosicherheit ................................................................................................................... 14
4.1 Speichern ................................................................................................................... 14 4.2 Öffnen ........................................................................................................................ 14
4.3 Makros automatisch starten ...................................................................................... 14 4.4 Selbst signieren ......................................................................................................... 15
5 Makros im VBA-Editor verändern ...................................................................................... 16 5.1 Der VBA-Editor .......................................................................................................... 16 5.2 Makros bearbeiten ..................................................................................................... 17 5.3 Neues Makro in VBA erstellen................................................................................... 17
6 Programmelemente ............................................................................................................. 18 6.1 Variable ...................................................................................................................... 18 6.2 Eingabeaufforderung ................................................................................................. 19
6.3 Ausgabemeldungen ................................................................................................... 19 6.4 Zuweisungen ............................................................................................................. 19
6.5 Schleifen .................................................................................................................... 20 6.6 IF…Then… Else .. End If ........................................................................................... 21
7 Benutzerdefinierte Funktion............................................................................................... 22 7.1 Prozeduren ................................................................................................................ 22 7.2 Bestandteile einer benutzerdefinierten Funktion ....................................................... 22
7.3 Die benutzerdefinierte Funktion Bruttobetrag ............................................................ 23 7.4 Die benutzerdefinierte Funktion aufrufen .................................................................. 24 7.5 Übung ........................................................................................................................ 25
8 Stichwortverzeichnis .......................................................................................................... 26
1 Wozu Makros Excel 2010 Makros
Seite 6 www.wolfgang-steinert.at © Wolfgang Steinert
1 Wozu Makros
Wie man Arbeitsabläufe automatisieren kann.
In Excel besteht die Möglichkeit, Routinearbeitsabläufe mit ständig wiederkehrenden Befehlsabläufen
aufzuzeichnen und später bei Bedarf aufzurufen. Durch den Einsatz von Makros können Sie Teile Ihrer
Arbeit automatisieren und somit beschleunigen.
Ein Makro ist im Prinzip nichts anderes als eine Aufzeichnung von Befehlsfolgen wie Tastatureingaben oder
Auswahl per Mausklick. Die verschiedenen Arbeitsschritte werden von dem so genannten Makrorekorder
aufgezeichnet.
Vor der Aufzeichnung eines Makros sollten die einzelnen Schritte und Befehle, die vom Makro ausgeführt
werden sollen, genau geplant werden. Dies ist wichtig, weil ein Makro beim Aufzeichnen sowohl die Fehler
als auch alle durchgeführten Korrekturen registriert.
1.1 Grenzen von Makros
Makros sind zwar einfach in der Erstellung, haben aber daher auch ihre Grenzen.
Sobald sich ein Excel-Dialog öffnet, wird das Makro beendet. Sie können zB nicht mit einem Makro eine
Datei unter einem bestimmten Namen abspeichern, da sich beim Aufruf des Befehls „Speichern unter..-.“
automatisch ein Excel-Dialog öffnet, der auf eine Bestätigung wartet.
Mit fortgeschrittenen Programmierkenntnissen (in der Sprache VBA) ist dies sehr wohl möglich. In diesem
Skriptum wird im letzten Teil aber nur einmal kurz in die VBA-Welt „hineingeschnuppert“ – um eventuelle
Fehler in Makros einfacher beheben zu können.
Zuerst aber zum eigentlichen Thema – den Makros…
Excel 2010 Makros 2 Makrofunktionen
© Wolfgang Steinert www.wolfgang-steinert.at Seite 7
2 Makrofunktionen
sind Einstellungen wie:
Makro aufzeichnen
Relative /absolute Aufzeichnung
Makros anzeigen
Makros löschen
Makrosicherheit
VBA-Umgebung
Erreichbar über
o Ansicht- Makros
o Entwicklertools – Menü Band (vorher einschalten)
Makros im Menüband Ansicht 1 Makro Schaltfläche im Menüband Ansicht
2 Menüband Entwicklertools
2 Makrofunktionen Excel 2010 Makros
Seite 8 www.wolfgang-steinert.at © Wolfgang Steinert
2.1 Makros aufzeichnen
Wichtig: vorher genau festlegen, was man machen möchte!
Start der Aufzeichnung auch über Statusleiste möglich.
2.1.1 einfaches Makro mit absolutem Bezug
Hintergrundfarbe ändern und Schriftfarbe auf Rot setzen (Anm.: würde man eher mit Formatschaltfläche
machen…)
1. Über Anwahl des Icons Makro aufzeichnen gelangen Sie zum Dialogfenster Makro aufzeichnen. Dort
können der Name des Makros sowie zusätzliche Informationen eingetragen werden:
2. Geben Sie im Feld Makroname den Begriff
HintergrundGrün ein und tragen Sie in das Feld
Beschreibung folgenden Text ein:
Formatiert den Hintergrund der Zelle Grün.
3. Bei der Vergabe von Makronamen ist Folgendes zu
beachten:
Makronamen dürfen maximal 255 Zeichen umfassen.
Der Makroname muss mit einem Buchstaben
beginnen.
Leerzeichen dürfen in Makronamen nicht benutzt wer-
den. Verwenden Sie stattdessen das Unterstreichungszeichen
_.
Der Name darf nicht wie die Bezeichnung einer Zelle aussehen. Makro Namen wie zum Beispiel C3
oder Z3S3 sind nicht erlaubt.
Auch Sonderzeichen sind nicht gestattet.
4. Über eine Tastenkombination, auch Shortcut genannt, können Sie ein Makro später starten. Der
Shortcut kombiniert die (Strg)-Taste mit einem Buchstaben. Für das Makro HintergrundGrün soll die
Tastenkombination (Strg)+Shift+(G) verwendet werden. Bei der Zuordnung einer Tastenkombination ist
Folgendes zu beachten:
Es wird zwischen Groß- und Kleinschreibung unterschieden.
Es dürfen nur Buchstaben des Alphabets benutzt werden. Umlaute (ä, ö, ü) können nicht verwendet
werden.
5. In der Optionsgruppe Makro speichern in können Sie festlegen, in welcher Arbeitsamere Sie das
Makro ablegen möchten. Wählen Sie: Diese Arbeitsmappe.
Standardmäßig ist die Option Diese Arbeitsmappe eingeschaltet. Dies sollten Sie für das
vorliegende Makro nicht ändern.
Bei der Wahl der Option Neue Arbeitsmappe wird eine neue Arbeitsmappe angelegt.
Persönliche Makroarbeitsmappe sollten Sie immer dann wählen, wenn Sie das Makro für alle
Arbeitsmappen zur Verfügung stellen wollen.
3 Makro Schaltfläche in der Statusleiste
4 Makro-Fenster Aufzeichnung
Excel 2010 Makros 2 Makrofunktionen
© Wolfgang Steinert www.wolfgang-steinert.at Seite 9
6. Nachdem Sie die Eingaben in dem Dialogfenster Makro aufzeichnen durchgeführt haben, verlassen
Sie das Dialogfenster über die Schaltfläche (_OK_).
1. Sie steuern jetzt die Aufzeichnung mit folgenden
Symbolen in der Multifunktionsleiste
„Entwicklertools“:
2.
In dieser Symbolleiste sehen Sie standardmäßig zwei
Symbole:
Bei der Makroaufzeichnung verwendet Excel beim Zeigen standardmäßig absolute Bezüge,
z.B. $A$1. Mit einem Mausklick auf dieses Symbol schalten Sie während der
Makroaufzeichnung die relative Adressierung ein: A1.
7. Formatieren Sie den Hintergrund grün.
8. Beenden Sie die Aufzeichnung, indem Sie die Schaltfläche anklicken. (Ansicht oder Entwicklertools oder in der Statusleiste)
Damit ist das Makro aufgezeichnet und kann ab sofort jederzeit aufgerufen werden
2.1.2 Ausführen
mit Tastenkombination oder MAKROS –Makros anzeigen – Ausführen
Um Makros aufzeichnen und bearbeiten zu können kann das Register Entwicklertools aktiviert werden.
5 Makro Schaltflächen im Band Entwicklertools
2 Makrofunktionen Excel 2010 Makros
Seite 10 www.wolfgang-steinert.at © Wolfgang Steinert
2.2 Unterschied absoluter zu relativer Aufzeichnung:
Zeichen Sie zwei verschiedene Makros auf – einmal mit relativen und einmal mit absolutem Bezug.
einfaches Makro mit relativer Aufzeichnung:
Die 5 unter einer Markierung liegenden Felder sollen blau hinterlegt werden.
einfaches Makro mit absoluter Aufzeichnung
Die 5 unter einer Markierung liegenden Felder sollen rot hinterlegt werden.
Ergebnis:
2.3 Längeres Makro - mit absoluter Aufzeichnung
Datei: Liste unsortiert
Wir zeichnen ein Makro auf, das aus der Adressliste
Titel und Anrede in die ersten zwei Spalten verschiebt
die erste Zeile FETT mit Hintergrundfarbe GELB formatiert
und nach Familien-Namen sortiert.
Abspeichern des Makros in PERSÖNLICHER MAKROARBEITSMAPPE, damit wir immer Tabellen so
bearbeiten können.
Weil wir diese Liste immer so aus dem BI-System erhalten, speichern wir das Makro mit absoluten Bezügen
ab.
Wenn wir ein Makro aufzeichnen, das immer aus drei Spalten TAG, MONAT, JAHR das Datum rechts
daneben erstellen soll, - egal wo diese drei Spalten sind - dann wäre eine relative Aufzeichnung sinnvoller.
6 Absolute - rot - und relative Aufzeichnung - blau
Excel 2010 Makros 2 Makrofunktionen
© Wolfgang Steinert www.wolfgang-steinert.at Seite 11
2.4 Ausführen von Makros
Zum Ausführen von Makros gibt es mehrere Möglichkeiten:
Tastenkombination oder
Ansicht – Makros - Makros anzeigen oder
Schaltfläche in Menüleiste – dann sollte es in der persönlichen Makro-Arbeitsmappe sein oder
über Schaltfläche auf Tabelle – dann sollte das Makro nur für diese Tabelle gelten.
2.5 Ein Makro löschen
Wenn Sie ein Makro nicht mehr benötigen, können Sie es selbstverständlich wieder löschen.
1. Rufen Sie auf: Menü Extras, Makro, Makros oder drücken Sie die Tastenkombination (Alt)+(F8).
2. In dem Dialogfenster Makro klicken Sie zunächst das zu entfernende Makro und anschließend die
Schaltfläche an.
3 Schaltflächen für Makros Excel 2010 Makros
Seite 12 www.wolfgang-steinert.at © Wolfgang Steinert
3 Schaltflächen für Makros
Über das Band „Entwicklertools“ lässt sich leicht eine Befehlsschaltfläche direkt auf den Tabellenblatt
erstellen, mit Hilfe dieser das Makro ausgeführt werden kann.
1. Schaltfläche auswählen
7 Formular-Steuerelemente in den Entwicklertools
2. Schaltfläche aufziehen
3. im Dialogfenster das richtige Makro auswählen und klicken
8 Makro Auswahl (Beispiel)
Excel 2010 Makros 3 Schaltflächen für Makros
© Wolfgang Steinert www.wolfgang-steinert.at Seite 13
4. Beschriften, indem man direkt hineinklickt und eintippt.
9 Beschriften einer Schaltfläche
5. L tippen
TIPP: Bei Grafiken kann man mit der rechten Maustaste darauf klicken und im Kontextmenü
„Makro zuweisen“ auswählen.
3.1.1 Übung
Wir wollen mit drei Schaltflächen die Farbgebung aus dem oberen Beispiel zuweisen bzw. für alle Zellen den
Hintergrund löschen. Es braucht also drei Schaltflächen: eine für blau (relativer Bezug) eine für rot, eine für
Löschen der Kästchen.
10 Bespiel für drei Schaltflächen
4 Makrosicherheit Excel 2010 Makros
Seite 14 www.wolfgang-steinert.at © Wolfgang Steinert
4 Makrosicherheit
4.1 Speichern
Aus Sicherheitsgründen müssen Excel-Dateien, die Makros enthalten sollen, als
Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden.
4.2 Öffnen
Bei Klick auf „Inhalte aktivieren“ wird die Mappe dauerhaft zum vertrauenswürdigen Dokument erklärt!
Bei Klick auf „Makros wurden deaktiviert“ oder Datei-Informationen –Sicherheitswarnung –„Erweitere
Optionen“ werden die Sicherheitsoptionen angezeigt. Hier lässt sich der Inhalt auch einmalig aktivieren.
Oder man klickt auf „Sicherheitscenter öffnen“. dann kann man vertrauenswürdige Speicherorte festlegen.
4.3 Makros automatisch starten
Es gibt zwei Makros, die automatisch gestartet werden, wenn sie bestimmte Namen haben.
Heißt es „Auto_Open“ wird es beim Öffnen gestartet;
heißt es „Auto_Close“ dann wird es beim Schließen gestartet.
Durch Drücken der A (Umschalt-)-Taste kann man diesen Automatismus unterbinden.
4.3.1 Übung:
Erstellen Sie ein Makro, dass beim Öffnen automatisch in der Zelle A1 „Willkommen!“ hinschreibt.
Excel 2010 Makros 4 Makrosicherheit
© Wolfgang Steinert www.wolfgang-steinert.at Seite 15
4.4 Selbst signieren
Man kann selbst digitale Zertifikate erstellen, die dann angeben, dass die Datei z.B. von „Max Muster“
stammt.
Der Benutzer solcher Dateien kann dann „Max Muster“ zur Liste der vertrauenswürdigen Herausgeber
hinzufügen. Damit wird keine Warnung angezeigt, wenn eine Mappe, die von „Max Muster“ stammt und
Makros enthält, geöffnet wird.
4.4.1 Erstellen:
ALLE PROGRAMME – MICROSOFT OFFICE 2010-TOOLS – DIGITALES ZERTIFIKAT FÜR VBA-
PROJEKTE.
4.4.2 Signieren
unter Entwicklertools die VBA-Umgebung öffnen; EXTRAS – DIGITALE SIGNATUR
4.4.3 Naschsehen
Die Vertrauenswürdigen Herausgeber finden sich im Sicherheitscenter
4.4.4 Löschen
Über die Internetoptionen – Inhalte – Zertifikate
5 Makros im VBA-Editor verändern Excel 2010 Makros
Seite 16 www.wolfgang-steinert.at © Wolfgang Steinert
5 Makros im VBA-Editor verändern
Hier lernen wir, wie man Makros verändern kann, ohne sie immer neu aufzuzeichnen.
5.1 Der VBA-Editor
Öffnen über Entwicklertools ODER über Makros anzeigen – Bearbeiten ODER F+Ò
links Projekt-Explorer und Eigenschaftenfenster; Rechts das Code-Fenster.
5.1.1 Projekt-Explorer
ist eine Übersicht über alle Objekte der VB-Umgebung. Makros sind in Modulen gespeichert.
5.1.2 Module und Makros …
kopieren: ganz einfach über die Zwischenablage.
drucken: Datei – Drucken
umbenennen: im eigenschaften-Fenster
exportieren:
5.1.3 VBA-Editor beenden
mit Alt+Q oder mit Datei – Schließen und zurück zu Excel…
11 VBA Editor - Normalansicht
Excel 2010 Makros 5 Makros im VBA-Editor verändern
© Wolfgang Steinert www.wolfgang-steinert.at Seite 17
5.2 Makros bearbeiten
Kommentare sind grün; Schlüsselwörter blau; Code schwarz dargestellt.
Wir werden:
o Kommentare einfügen
o Code lesbarer machen und überflüssige Teile löschen
o Fehler korrigieren
5.2.1 Unser erstes Makro - vorher
Wir löschen unnötige Teile und schreiben Kommentar dazu.
Vor dem Löschen herauskommentieren – also mit einen Apostroph ‘ versehen. das kann rückgängig
gemacht werden.
Sub HintergrundHellgrün() ' ' HintergrundHellgrün Makro ' Tastenkombination: Strg+Umschalt+G ' With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub
5.2.2 Nachher:
Sub HintergrundHellgrün() ' HintergrundHellgrün Makro ' Tastenkombination: Strg+Umschalt+G ' With Selection.Interior .Color = 5296274 End With End Sub
5.3 Neues Makro in VBA erstellen
Sub Willkommen()
' Dieses Makro schreibt “Willkommen zu Excel“ in die Zelle A1 und wechselt in die Zelle A2
ActiveCell.FormulaR1C1 = "Willkommen zu Excel!"
Range("A2").Select
End Sub
Jedes Makro beginnt mit „Sub“ und endet mit „End Sub“.
6 Programmelemente Excel 2010 Makros
Seite 18 www.wolfgang-steinert.at © Wolfgang Steinert
6 Programmelemente
Eine Anweisung ist eigentlich alles, was der Steuerung des Programms dient. Anweisungen sind daher
Zuweisungen:
z.B.: ActiveCell.FormulaR1C1 = "Willkommen zu Excel!"
Eingabe oder Ausgabemeldungen;
Verzweigungen (mit “IF”..)
Schleifen
For-To-Next; While
6.1 Variable
Meist benötigt man Platzhalter, die zu bestimmten Zeiten werte aufnehmen, z.B. den Wert der Zelle G3;
dann sind Variable gefragt.
Variablen haben einen Namen und einen Typ;
Der Name darf durchaus länger und Bezeichnend sein. z.B. statt „a ist eine ganze Zahl“ ist besser man
schreibt „PersAnzahl“ ist eine ganze Zahl;
Soll eine Variable den Eintrittspreis zwischenspeichern, so ist es sinnvoll sie gleich Eintrittspreis zu nennen.
Weitere Beispiele: bezahlt ist ein Wahrheitswert (kann also nur Wahr oder Falsch beinhalten); Eingabetext
ist eine Zeichenkette (ein String).
Variablen werden am Beginn (gleich nach „Sub“) deklariert:
verbale Beschreibung Variablendeklaration
„PersAnzahl“ ist eine ganze Zahl Dim PersAnzahl As Byte
bezahlt ist ein Wahrheitswert Dim bezahlt AS Boolean
Eingabetext ist eine Zeichenkette Dim Eingabetext As String
Excel 2010 Makros 6 Programmelemente
© Wolfgang Steinert www.wolfgang-steinert.at Seite 19
6.2 Eingabeaufforderung
Damit die Eingabe einen Wert aufnehmen kann, muss zuvor eine Variable deklariert werden. z.B.
Dim Eingabe As String
Eingabe = InputBox("Wie viele Tabellenblätter sollen eingefügt werden?", "Willkommen!")
6.3 Ausgabemeldungen
Diese Variable kann nun auch verwendet werden, um den Wert auszugeben:
MsgBox "Sie wollen also " & Eingabe & " Tabellenblätter einfügen?", vbYesNo, "Sicherheitsabfrage"
6.4 Zuweisungen
z.B. Eintrittspreis = 12
also links der Variablenname und rechts der Wert. (so wie bei der Inputbox)
Will man in Zellen Werte eintragen, müssen sie vorher ausgewählt werden:
Range("c4").Select
ActiveCell = 789
trägt in die Zelle c4 den Wert 789 ein.
12 InputBox - Beispiel
13 Massage Box - Beispiel
6 Programmelemente Excel 2010 Makros
Seite 20 www.wolfgang-steinert.at © Wolfgang Steinert
6.5 Schleifen
For – To – Next – Schleife:
Diese Schleife zählt hinauf und wird mindestens einmal durchlaufen.
Das ganze Programm zum einfügen beliebiger Blätter lautet:
Sub Frage()
'stellt die Frage nach der Anzahl der Tabellenblätter
Dim Eingabe As String
Dim i As Byte
Eingabe = InputBox("Wie viele Tabellenblätter sollen eingefügt werden?", "Willkommen!")
MsgBox "Sie wollen also " & Eingabe & " Tabellenblätter einfügen?", vbYesNo, "Sicherheitsabfrage"
Range("c4").Select
ActiveCell = Eingabe ‘gibt nur Anzahl in c4 aus
For i = 1 To Eingabe
Sheets.Add After:=Sheets(Sheets.Count)
Next i
End Sub
…Nachteil ist noch, dass man trotz der Sicherheitsabfrage die angegebenen Tabellenblätter einfügt…
Da müsste man die Message-Box umstellen, dass das Anklicken einer Schaltfläche verarbeitet wird:
Das geschieht durch die Zeile:
Bestätigung = MsgBox("Sie wollen also " & Eingabe & " Tabellenblätter einfügen?", vbYesNo,
"Sicherheitsabfrage")
natürlich muss man vorher die Variable „Bestätigung“ definieren – und zwar als BYTE, da die Schaltflächen
Zahlen zurückgeben:
Schaltfläche vba-Konstante Zahlenwert
vbYes 6
vbNo 7
vbOK 1
vbCancel 2
Excel 2010 Makros 6 Programmelemente
© Wolfgang Steinert www.wolfgang-steinert.at Seite 21
6.6 IF…Then… Else .. End If
Anschließend werden durch eine IF… Else…Endif Bedingung die Fälle unterscheiden: wenn ja geklickt
wurde hat die Variable „Bestätigung“ den Wert 6, dann wird die Schleife ausgeführt, wenn nein geklickt
wurde (und die Variable Bestätigung einen anderen Wert hat) kommt eine Info-Meldung.
Der gesamte Code sieht so aus (Hervorgehoben die Neuerungen)
Sub Frage()
'stellt die Frage nach der Anzahl der Tabellenblätter und fügt diese ein.
Dim Eingabe As String
Dim i As Byte
Dim Bestätigung As Byte
Eingabe = InputBox("Wie viele Tabellenblätter sollen eingefügt werden?", "Willkommen!")
Bestätigung = MsgBox("Sie wollen also " & Eingabe & " Tabellenblätter einfügen?", vbYesNo,
"Sicherheitsabfrage")
If Bestätigung = 6 Then
Range("c4").Select
ActiveCell = Eingabe 'ist unnötig, gibt nur Anzahl in c4 aus
For i = 1 To Eingabe
Sheets.Add After:=Sheets(Sheets.Count)
Next i
Else
MsgBox "Sie haben keine Tabellenblätter eingefügt.", vbInformation + vbOK, "Mitteilung"
End If
End Sub
7 Benutzerdefinierte Funktion Excel 2010 Makros
Seite 22 www.wolfgang-steinert.at © Wolfgang Steinert
7 Benutzerdefinierte Funktion
In diesem Abschnitt wollen wir benutzerdefinierte Funktionen erstellen. Dabei bekommen Sie auch einen
kurzen Einblick in die Programmiersprache Visual Basic für Applikationen, kurz VBA. Im unserem Beispiel
soll eine benutzerdefinierte Funktionen aus einem Nettobetrag den Bruttobetrag einschließlich 16%
Mehrwertsteuer berechnen.
7.1 Prozeduren
Die unterste Einheit von Programmen in VBA wird durch die Prozeduren gebildet. Man unterscheidet
zwischen:
Sub-Prozeduren
Function-Prozeduren und
Property-Prozeduren.
Während bei Sub-Prozeduren kein Wert zurückgegeben wird, liefern Function-Prozeduren einen
Rückgabewert. Ein Funktionsmakro wird anstatt mit Sub mit Function eingeleitet. Der letzte Befehl lautet
dementsprechend End Function. Porperty-Pozeduren spielen nur eine untergeordnete Rolle.
7.2 Bestandteile einer benutzerdefinierten Funktion
Die benutzerdefinierten Funktionen unterscheiden sich in Ihrer Verwendung nicht von den integrierten Excel-
Funktionen. Das heißt, sie werden genauso angewendet wie eine bereits integrierte Tabellenfunktion wie
beispielsweise SUMME oder WENN. Der Unterschied besteht lediglich darin, dass Sie
den Namen,
die Argumente
und den Rückgabewert
selber festlegen.
Zu einer Funktion können folgende Bestandteile gehören:
Funktionsname
Argumente
Operatoren, z.B. =
Klammern
Semikolon
Ergebnis.
Als Erkennungszeichen benötigt auch die benutzerdefinierte Funktion einen Namen. Die hier zunächst zu
erstellende benutzerdefinierte Funktion soll Bruttobetrag heißen.
Die Argumente, also die Angaben, mit denen man Excel mitteilt, welche Werte zu berechnen sind, müssen
Sie in einer benutzerdefinierten Funktion als Anwender selbst bestimmen. In unserem Fall ist dies der
Nettobetrag. Damit erhält Excel Ausgangsdaten, auf die die Funktion zurückgreifen kann. Die Argumente
werden hinter dem Funktionsnamen in einer Klammer eingeschlossen und jeweils durch Kommata getrennt
angegeben. Beim Rückgabewert handelt es sich um das Ergebnis, das nach abgeschlossener Berechnung
zurückgegeben wird.
Es fehlt noch eine Anweisung, die der Funktion mitteilt, welche Berechnung durchzuführen ist, also eine
Kombination von Zahlen, Variablen und mathematischen Operatoren, die einen Wert ergibt und vergleichbar
mit einer Formel ist.
Excel 2010 Makros 7 Benutzerdefinierte Funktion
© Wolfgang Steinert www.wolfgang-steinert.at Seite 23
7.3 Die benutzerdefinierte Funktion Bruttobetrag
Es ist möglich, auch ohne große Programmierkenntnisse, eigene Funktionen zu schreiben.
Um die benutzerdefinierte Funktion Bruttobetrag zu erstellen, gehen Sie folgendermaßen vor:
1. Wählen Sie in einer neuen Arbeitsmappe im Extras-Menü den Eintrag Makro und anschließend Visual
Basic-Editor.
2. Im Visual Basic-Editor gehen Sie den Menüweg Einfügen, Modul.
3. Sie erhalten ein Visual Basic Arbeitsblatt:
14 Das Visual Basic Arbeitsblatt erhält die Bezeichnung Modul 1
4. Geben Sie den Begriff Function gefolgt von einem Leerzeichen und dem Namen Bruttobetrag ein.
5. Öffnen Sie die Klammer und tippen Sie das Argument ein: Nettobetrag. Schließen Sie die Klammer:
Function Bruttobetrag(Nettobetrag)
Falls mehrere Argumente benötigt werden, müssen sie jeweils durch ein Komma
getrennt werden.
6. Drücken Sie die Enter-Taste. Der Editor hat danach automatisch die Zeile End Function eingetragen.
7. Drücken Sie die Tabulatortaste und schreiben Sie den folgenden Code:
Bruttobetrag = Nettobetrag * 1.20
a) Als Dezimaltrennzeichen geben Sie einen Punkt ein.
b) Mit Hilfe der Tabulatortaste können Sie Codezeilen einrücken.
Unser kleines Programm hat nun folgenden Text:
Function Bruttobetrag(Nettobetrag)
Bruttobetrag = Nettobetrag * 1.20
End Function
7 Benutzerdefinierte Funktion Excel 2010 Makros
Seite 24 www.wolfgang-steinert.at © Wolfgang Steinert
15 Die benutzerdefinierte Funktion Bruttobetrag
7.4 Die benutzerdefinierte Funktion aufrufen
Um die benutzerdefinierte Funktion aufzurufen, wechseln Sie zunächst zu einem Tabellenarbeitsblatt Ihrer
Arbeitsmappe. Es gibt zwei Möglichkeiten die benutzerdefinierte Funktion aufzurufen:
7.4.1 Die manuelle Eingabe der Funktion
1. Geben Sie in die Zelle A1 den Betrag 100 ein.
2. Tragen Sie in die Zelle B2 die Formel ein:
=Bruttobetrag(A1)
3. Bestätigen Sie die Eingabe mit der L)-Taste. Sie erhalten das gewünschte Ergebnis,
in diesem Fall 120.
Excel 2010 Makros 7 Benutzerdefinierte Funktion
© Wolfgang Steinert www.wolfgang-steinert.at Seite 25
7.4.2 Der Aufruf über den Funktions-Assistenten
1. Sie können eine benutzerdefinierte Funktion auch wie gewohnt über Einfügen, Funktion aufrufen.
Oder klicken Sie auf das Symbol Funktion einfügen in der Bearbeitungsleiste.
16 Benutzerdef Funktion einfügen
2. In der folgenden Dialogbox wählen Sie die Kategorie Benutzerdefiniert.
3. Führen Sie in der Liste der Funktionen einen Doppelklick auf Bruttobetrag aus.
4. Sie sehen jetzt die Formelpalette. Die Handhabung unterscheidet sich nicht von den integrierten
Funktionen.
5. Tragen Sie den Zellbezug in das vorgesehene Feld ein und verlassen Sie das Dialogfeld über die
Schaltfläche (_OK_).
17 benutzerdefinierte Funktion Bruttobetrag
7.5 Übung
Ändern Sie die Funktion Bruttobetrag, sodass Sie aus einem Nettobetrag und zusätzlicher Eingabe des
Steuersatzes den Bruttobetrag berechnen..
8 Stichwortverzeichnis Excel 2010 Makros
Seite 26 www.wolfgang-steinert.at © Wolfgang Steinert
8 Stichwortverzeichnis
A Argument ......................................................... 21 Ausgabemeldungen
MesssageBox .............................................. 19
B Benutzerdefinierte Funktion ............................. 21
Aufrufen ....................................................... 23 Funktions-Assistent ...................................... 24 Manuelle Eingabe ........................................ 23
Bruttobetrag ..................................................... 21
E Eingabeaufforderung ....................................... 19 Entwicklertools ................................................. 12 Ergebnis........................................................... 21
F Formelpalette ................................................... 24 Function-Prozeduren ....................................... 21 Funktion
Benutzerdefiniert .......................................... 21 Bruttobetrag ................................................. 21
Funktionsmakro ............................................... 21 Funktionsname ................................................ 21
H herauskommentieren ....................................... 17
I InputBox........................................................... 19
Eingabemeldung .......................................... 19
K Klammern ........................................................ 21
M Makro ................................................................. 6
Aufzeichnen ................................................... 6
Aufzeichnung beenden ................................. 9 Löschen ...................................................... 11 Name ............................................................ 8 Relativer Verweis .......................................... 9 Shortcut ......................................................... 8 Speichern ...................................................... 8 Tastenkombination ........................................ 8
Makro aufzeichnen .......................................... 8
N Nettobetrag ..................................................... 21
O Operator .......................................................... 21
P Persönliche Makroarbeitsmappe ................... 8
Property-Prozeduren ....................................... 21
S Schleifen ......................................................... 20 Semikolon ....................................................... 21 Shortcut ............................................................. 8 Sub-Prozeduren .............................................. 21
V Variable ........................................................... 18 Visual Basic .................................................... 21 Visual Basic-Editor .......................................... 22
W With ................................................................. 17
X xlsm ................................................................ 14