26
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

Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 2: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

Notizen

Seite 2 www.wolfgang-steinert.at © Wolfgang Steinert

Page 3: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

Notizen

© Wolfgang Steinert www.wolfgang-steinert.at Seite 3

Page 4: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

Notizen

Seite 4 www.wolfgang-steinert.at © Wolfgang Steinert

Page 5: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 6: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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…

Page 7: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 8: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 9: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 10: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 11: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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.

Page 12: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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)

Page 13: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 14: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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.

Page 15: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 16: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 17: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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“.

Page 18: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 19: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 20: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 21: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 22: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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.

Page 23: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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

Page 24: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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.

Page 25: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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..

Page 26: Excel 2010 Makros - Wolfgang Steinert€¦ · Excel Arbeitsmappe mit Makros in einem eigenen Datei-Format (*.xlsm) abgespeichert werden. 4.2 Öffnen Bei Klick auf „Inhalte aktivieren“

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