Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken ....

151
Logistikmanagement mit Heuristiken Logistische Problemstellungen unter Verwendung von Excel VBA lösen Prof. Dr. Heinz-Michael Winkels WS 2013/14

Transcript of Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken ....

Page 1: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Logistikmanagement

mit Heuristiken

Logistische Problemstellungen

unter Verwendung von Excel VBA lösen

Prof. Dr. Heinz-Michael Winkels

WS 2013/14

Page 2: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

II

Inhaltsverzeichnis

Inhaltsverzeichnis ........................................................................................................ II A Crash-Kurs in Excel VBA......................................................................................... 6

A.1 Die Entwicklungsumgebung von Excel VBA .................................................... 7 A.1.1 Aktivierung der Entwicklertools .............................................................. 7 A.1.2 Aufruf der Entwicklungsumgebung ........................................................ 7 A.1.3 Der Projekt-Explorer .............................................................................. 8 A.1.4 Das Eigenschaftenfenster .................................................................... 11 A.1.5 Das Code-Fenster ............................................................................... 12 A.1.6 Der Objektkatalog ................................................................................ 14 A.1.7 Testumgebung: Das Direktfenster ....................................................... 17 A.1.8 Testumgebung: Das Überwachungsfenster ......................................... 18 A.1.9 Testumgebung: Das Lokal-Fenster...................................................... 19 A.1.10 Die Excel-Hilfe innerhalb der Entwicklungsumgebung ............ 20 A.1.11 Einstellen der Entwicklungsumgebung.................................... 22

A.2 Die Eingabe von Programm-Code ................................................................. 24 A.2.1 Erfassen von Makros mit dem Makro-Rekorder .................................. 24 A.2.2 Bearbeiten oder Ausführen eines vorhandenen Makros über die

Menüstruktur ........................................................................................ 26 A.2.3 Der Start von Makros mit Graphiken und Steuerelementen ................ 27

A.2.3.1 Ausführen eines Makros durch Anklicken eines Grafikobjektes27 A.2.3.2 Ausführen eines Makros durch Anklicken eines

Steuerelementes ..................................................................... 28 A.2.4 Programmierung mithilfe des Code-Fensters ...................................... 29

A.2.4.1 IntelliSense ............................................................................. 29 A.2.4.2 Hilfestellungen über die Bearbeiten Symbolleiste ................... 30 A.2.4.3 Direkter und indirekter Aufruf des Code-Fensters ................... 32 A.2.4.4 Anlegen eines neuen Modules ................................................ 32 A.2.4.5 Aufruf eines vorhandenen Modules......................................... 32 A.2.4.6 Anlegen einer neuen Prozedur ............................................... 33

A.2.5 Debugging/Fehlersuche ....................................................................... 34 A.2.5.1 Zeilenweise Abarbeitung einer Prozedur ................................ 34 A.2.5.2 Verwendung von Haltepunkten in einer Prozedur ................... 35 A.2.5.3 Verwendung von Überwachungsausdrücken in einer Prozedur35

A.2.6 Standarddialoge................................................................................... 35 A.2.6.1 Die Funktion MsgBox .............................................................. 36 A.2.6.2 Die Funktion InputBox ............................................................. 37 A.2.6.3 Die Methode InputBox............................................................. 38

A.2.7 Erstellen einer User-Form .................................................................... 39 A.2.7.1 Benutzerformular erstellen ...................................................... 39 A.2.7.2 Steuerelemente einfügen ........................................................ 40 A.2.7.3 Steuerelementeigenschaften festlegen ................................... 41 A.2.7.4 Steuerelement-Eigenschaften initialisieren ............................. 43 A.2.7.5 Steuerelement- und Dialogfeldereignisse erstellen ................. 43 A.2.7.6 UserForm anzeigen................................................................. 44 A.2.7.7 Steuerelemente während der Code-Ausführung verwenden .. 44 A.2.7.8 Besonderheiten beim Dialogende ........................................... 45

A.2.8 Internet Links für Hilfestellungen zur VBA Programmierung ................ 46 A.3 Die Syntax von VBA....................................................................................... 47

A.3.1 Kommentare und Schreibkonventionen ............................................... 47

Page 3: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Inhaltsverzeichnis

III

A.3.2 Standardkonventionen für die Namensgebung .................................... 47 A.3.3 Prozeduren .......................................................................................... 48

A.3.3.1 Sub-Prozeduren ...................................................................... 48 A.3.3.2 Function-Prozeduren............................................................... 50 A.3.3.3 Property-Prozeduren ............................................................... 50

A.3.4 Konstante, Variable und Datenfeldern ................................................. 51 A.3.4.1 Standard-Datentypen .............................................................. 51 A.3.4.2 Benutzerdefinierte Datentypen ................................................ 52 A.1.1 Aufzähl-Typen ......................................................................... 53 A.3.4.3 Deklarieren von Konstanten .................................................... 53 A.3.4.4 Deklarieren von Variablen ....................................................... 55 A.3.4.5 Deklarieren von Variablen innerhalb einer Prozedur ............... 56 A.3.4.6 Deklarieren von Datenfeldern innerhalb einer Prozedur ......... 57

A.3.5 Operatoren .......................................................................................... 59 A.3.5.1 Arithmetische Operatoren zum Durchführen mathematischer

Berechnungen ......................................................................... 59 A.3.5.2 Vergleichsoperatoren zum Durchführen von Vergleichen ....... 59 A.3.5.3 Verkettungsoperatoren zum Aneinanderhängen von

Zeichenfolgen ......................................................................... 59 A.3.5.4 Logische Operatoren zum Durchführen logischer Operationen59

A.3.6 Kontrollstrukturen................................................................................. 60 A.3.6.1 IF-Verzweigung ....................................................................... 60 A.3.6.2 IIF-Verzweigung ...................................................................... 60 A.3.6.3 For-Next-Schleife .................................................................... 61 A.3.6.4 For-Each-Next-Schleife ........................................................... 61 A.3.6.5 Do-Until-Loop-Schleife ............................................................ 62 A.3.6.6 Do-While-Loop-Schleife .......................................................... 62 A.3.6.7 Select Case-Anweisung .......................................................... 62

A.4 Verwendung der verschiedenen Funktions-Arten in Excel-VBA .................... 64 A.4.1 Die verschiedenen Funktions-Arten in Excel-VBA ............................... 64 A.4.2 Benutzerdefinierte VBA-Funktionen..................................................... 64

A.4.2.1 Verwendung in VBA-Prozeduren ............................................ 64 A.4.2.2 Verwendung in Arbeitsblättern ................................................ 65

A.4.3 Vorinstallierte VBA-Funktionen ............................................................ 66 A.4.3.1 Verwendung in VBA-Prozeduren ............................................ 66 A.4.3.2 Verwendung in Arbeitsblättern ................................................ 66

A.4.4 Excel-Funktionen ................................................................................. 67 A.4.4.1 Besonderheiten von Excel-Funktionen.................................... 67 A.4.4.2 Verwendung in VBA-Prozeduren ............................................ 68 A.4.4.3 VBA-Befehle für die Zellenbelegung in Arbeitsblättern ........... 69

A.5 Verwendung von Objekten in Excel-VBA ....................................................... 71 A.5.1 Begriffsklärung ..................................................................................... 72 A.5.2 Schreibweisen ..................................................................................... 73 A.5.3 Objektlisten .......................................................................................... 74 A.5.4 Objektvariablen .................................................................................... 74 A.5.5 Das Excel Objektmodell ....................................................................... 75

A.5.5.1 Das Application-Objekt ............................................................ 76 A.5.5.2 Das Workbook-Objekt ............................................................. 76 A.5.5.3 Das Worksheet-Objekt ............................................................ 77 A.5.5.4 Das Range-Objekt................................................................... 77

A.5.6 Spezielle Verwendungen des Excel Objektmodells ............................. 78

Page 4: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

IV

A.5.6.1 Positionierung in Range-Objekten .......................................... 78 A.5.6.2 Positionierung mit der Cells-Eigenschaft ................................. 79 A.5.6.3 Cursorposition feststellen ........................................................ 79 A.5.6.4 Zellen, Zellbereiche, Zeilen, Spalten gezielt auswählen.......... 80 A.5.6.5 Relatives Versetzen von Bereichen und Cursor ...................... 80 A.5.6.6 Bereichsnamen vergeben mit Name-Eigenschaft ................... 81 A.5.6.7 Wertzuweisungen mit Value-Eigenschaft ................................ 82 A.5.6.8 Formeln eintragen mit der Formula-Eigenschaft ..................... 82 A.5.6.9 Formatierung von Zellbereichen ............................................. 82 A.5.6.10 Löschen von Zellbereichen ................................................. 83

A.5.7 Erstellung eigener Klassen .................................................................. 83 A.5.7.1 Definition einer Klasse ............................................................ 83 A.5.7.2 Eigenschaften ......................................................................... 83 A.5.7.3 Methoden ................................................................................ 85 A.5.7.4 Spezielle Ereignisprozeduren: Konstruktor und Destruktor ..... 85

A.5.8 Erzeugung neuer Objekte .................................................................... 86 A.5.9 Entfernen von Objekten ....................................................................... 87 A.5.10 Erstellung von Ereignisprozeduren ......................................... 87

A.5.10.1 Allgemeine Ereignisprozeduren .......................................... 87 A.5.10.2 Eigene Ereignisprozeduren ................................................. 88 A.5.10.3 Objekt mit WithEvents erstellen .......................................... 88 A.5.10.4 Deklaration einer Objektvariablen vom Typ Application ...... 89 A.5.10.5 Eingabe des Programmcodes für die Ereignisprozedur ...... 90 A.5.10.6 Ausführen der Ereignisprozedur.......................................... 90

B Übersicht über die vorinstallierten VBA-Funktionen .............................................. 91 B.1 Datums- und Zeitfunktionen ........................................................................... 91 B.2 Textfunktionen ............................................................................................... 92 B.3 Dateifunktionen und Anweisungen ................................................................ 95 B.4 Mathematische Funktionen ............................................................................ 97

C Übersicht über die Excel-Funktionen ................................................................... 100 C.1 Finanzmathematische Funktionen ............................................................... 100 C.2 Logische Funktionen .................................................................................... 104 C.3 Textfunktionen ............................................................................................. 104 C.4 Datums- und Uhrzeitfunktionen ................................................................... 106 C.5 Nachschlage- und Verweisfunktionen .......................................................... 108 C.6 Mathematische und trigonometrische Funktionen ....................................... 110 C.7 Statistische Funktionen ................................................................................ 114 C.8 Konstruktionsfunktionen............................................................................... 122 C.9 Cubefunktionen ............................................................................................ 124 C.10Informationsfunktionen................................................................................. 126 C.11Datenbankfunktionen ................................................................................... 127 C.12Kompatibilitätsfunktionen ............................................................................. 128 C.13Add-ins und Automatisierung ....................................................................... 131

D Übersicht über die wichtigsten Excel-Objekte ..................................................... 132 D.1 Das Application-Objekt ................................................................................ 132

D.1.1 Eigenschaften .................................................................................... 132 D.1.2 Methoden ........................................................................................... 133 D.1.3 Ereignisse .......................................................................................... 133

D.2 Das Workbook-Objekt .................................................................................. 137 D.2.1 Eigenschaften .................................................................................... 137 D.2.2 Methoden ........................................................................................... 137

Page 5: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Inhaltsverzeichnis

V

D.2.3 Ereignisse .......................................................................................... 138 D.3 Das Worksheet-Objekt ................................................................................. 141

D.3.1 Eigenschaften .................................................................................... 141 D.3.2 Methoden ........................................................................................... 142 D.3.3 Ereignisse .......................................................................................... 142

D.4 Das Range-Objekt ....................................................................................... 144 D.4.1 Eigenschaften .................................................................................... 144 D.4.2 Methoden ........................................................................................... 145 D.4.3 Ereignisse .......................................................................................... 145

Literaturverzeichnis.................................................................................................. 146 Stichwortverzeichnis ................................................................................................ 149

Page 6: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

6

A Crash-Kurs in Excel VBA

In diesem Abschnitt geben wir einen Überblick über die Programmiersprache Visual Basic for Applications (VBA) von Microsoft, ausgerichtet auf Excel, wobei wir

Kenntnisse in einer gängigen Programmiersprache voraussetzen. Das hat den

Vorteil, dass damit die Erklärung grundlegendender Begriffe nicht logisch

aufeinander aufbauend erklärt werden muss. Der nachfolgende Text ist als Steilkurs

für Programmierer mit Vorkenntnissen gedacht, die sich möglichst schnell in eine für

sie neue Programmiersprache und deren Entwicklungsumgebung einarbeiten wollen,

ohne sich lange mit zwar pädagogischen aber für ihre momentane Problemstellung

irrelevanten Beispielen zu beschäftigen.12

VBA ist eine leistungsfähige Skriptsprache und die am weitesten verbreitete

Möglichkeit, auf Microsoft-Office-Anwendungen (Excel, Word, Access etc.)

basierende Programme zu erstellen. VBA ist auf prozedurale Programmierung

ausgerichtet. Zwar gibt es auch in diesem Zusammenhang Klassen und Objekte mit

Merkmalen wie Datenkapselung, nicht jedoch die Implementierungsvererbung

objektorientierter Sprachen.

In diesem kurzen Schnelleinstieg können natürlich nur die wichtigsten Aspekte von

VBA behandelt werden. Wir empfehlen dem Nutzer, die nicht erwähnten Icons und

Menüs auf dem Bildschirm selbständig aus zu probieren, um auf diese Weise deren

Funktionalität spielerisch zu erfassen. Sie lassen sich in der Regel intuitiv verstehen.

Diese Vorgehensweise empfiehlt sich übrigens für jede neue

Programmierumgebung.

Als Hilfsmittel greifen wir vornehmlich auf die von Microsoft bereits in Excel

integrierte und somit direkt verfügbare Hilfe-Funktion zurück. Im Bedarfsfall können 1 Umfassende und sehr ausführliche Einführungen in Excel-VBA findet man beispielsweise in den

Büchern von Held (2004, 2010a, 2010b). Eine kompakte Einführung bietet Nahrstedt (2011). Für

einen Grundkurs in Programmierung mit Visual Basic siehe beispielsweise Kämper (2009). 2 Die Ausführungen hier basieren weitgehend auf der Excel-Hilfe und dabei insbesondere auf

http://office.microsoft.com/de-de/ecel-help/

http://www.excel-functions.info

http://de.excelfunctions.eu/

Page 7: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

7

hier Antworten zu den meisten Fragen der Themenstellung gefunden werden.

Weitere Hilfestellungen kann man dann über das Internet erlangen, diesbezügliche

Links werden angegeben.

Am Ende eines Abschnittes wird in der Regel ein zugehöriges Suchkriterium für die

Hilfe-Funktion angegeben und durch markiert. Damit kann man dann

weiterführende Informationen zu den jeweiligen Themen finden. Eine weitere

Möglichkeit besteht darin, mit der Maus auf ein entsprechendes Icon des Bildschirms

zu zeigen und die F1-Hilfe-Taste zu drücken.

A.1 Die Entwicklungsumgebung von Excel VBA

A.1.1 Aktivierung der Entwicklertools

Die Registerkarte Entwicklertools wird in Excel 2010 nicht standardmäßig

angezeigt. Sie kann wie folgt aktiviert werden:

Registerkarte Datei Optionen Menüband anpassen Hauptregisterkarten

Kontrollkästchen Entwicklertools aktivieren OK.

Abbildung: Aktivierung der Entwicklertools

A.1.2 Aufruf der Entwicklungsumgebung

Page 8: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

8

Innerhalb der Entwicklungsumgebung kann für eine Anwendung der Programm-Code

geschrieben und Bildschirmformulare mit deren Steuerelemente entwickelt werden.

Sie ist somit das Gegenstück zur Ausführung einer Anwendung.

Die Entwicklungsumgebung kann in Excel 2010 über folgende Möglichkeiten

aufgerufen werden:

• Tastenkombination ALT + F11 (die schnellste Möglichkeit).

• Innerhalb der Registerkarte Entwicklertools durch Anklicken des Visual Basic Symbols oder alternativ des Menüpunktes Code Anzeigen.

• Anklicken eines beliebigen Tabellenreiters (unten auf dem Blatt) und innerhalb

des Drop-down-Menüs Code Anzeigen wählen.

Abbildung: Aufrufen der Benutzeroberfläche

Makros: Erstellen oder Löschen eines Makros

Die Menüstruktur wirkt auf den ersten Blick recht komplex. Es können diverse

Fenster über den Menüpunkt Ansicht angezeigt werden, die sich bei näherer

Betrachtung hinsichtlich ihrer Funktionalität sehr praktisch ergänzen. Neben den

Standards wie Projekt-Explorer und Eigenschaftenfenster sind da auch noch die

Fenster Überwachungsfenster, Direktfenster, Lokal-Fenster sowie der

Objektkatalog.

A.1.3 Der Projekt-Explorer

Unter einem Projekt versteht man eine Zusammenfassung unterschiedlicher

Programmtexte für eine bestimmte Anwendung (im Beispiel: eine Tourenplanung).

Page 9: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

9

Man spricht auch von einem Container für die unterschiedlichen Arten von

Programm-Code und nennt die Arten allgemein Module. Dazu gehören1:

• Programm-Code hinsichtlich der geöffneten Excel-Objekte: der

Arbeitsmappen (mit der Standard-Bezeichnung: DieseArbeitsmappe) und

deren Arbeitsblätter (mit den Standard-Bezeichnungen Tabelle1, etc.),

• Programm-Code für Formulare (oder: UserForms, kurz: Forms) genannte

Benutzeroberflächen mit den Standard-Bezeichnungen UserForm1, etc. Hier

handelt es sich um Container für Bildschirmmasken, Steuerelemente und

zugehörigen Anweisungen in Form von Prozeduren.

• Allgemeiner, nicht objekt-spezifischer Programm-Code in Form von

Prozeduren, der in unterschiedlichen Sinneinheiten (für die Programmstruktur

und eventuellen Textaustausch zwischen Projekten) zusammengefasst bzw.

„gekapselt“ wird: Standardmodule mit den Standard-Bezeichnungen Modul1,

etc. 2

• sowie den Klassenmodulen mit den Standard-Bezeichnungen Klasse1, etc.

als Container für selbst definierte Objekte mit den Definitionen ihrer Methoden

und Eigenschaften.

Jedes Projekt besitzt einen Namen. Wird der gleiche Projektname (im Beispiel

VBAProjekt) in unterschiedlichen Dateien benutzt, so erscheint in Klammern dahinter

auch der Dateiname.

1 Oftmals wird sprachlich nicht zwischen Modulen und Standardmodulen unterschieden, was häufig

zur Verwirrung beiträgt. 2 Standardmodule wurden von Microsoft bis 2007 als Code-Module bezeichnet.

Page 10: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

10

Abbildung: Projekt-Explorer

Der Projekt-Explorer dient nur zur Verwaltung der Projekte, nicht zu deren inhaltlicher

Erstellung. Er zeigt eine hierarchische Liste aller Projekte der momentan geöffneten

Arbeitsmappen an, sowie die über den Excel-Manager eingebundenen Add-Ins

(installierte Dateien mit der Endung .xla bzw. .xlam, in der Abbildung beispielsweise

der Solver). Diese lassen sich jedoch nur dann im Detail anzeigen, wenn sie nicht

Passwort-geschützt sind.

Page 11: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

11

Darüber hinaus wird auch noch das Projekt Personal.xlsb angezeigt1, in der als

persönliche Library solche Programm-Codes gespeichert werden können, die dann

auch für alle weiteren eigenen Arbeitsmappen zur Verfügung stehen sollen.

Für das Öffnen des Projekt-Explorers gibt es folgende Möglichkeiten:

• Tastenkombination STRG + R drücken.

• Registerkarte Ansicht Projekt-Explorer wählen.

• Anklicken des Icons Projekt-Explorer in der Symbolleiste der

Entwicklungsumgebung.

Bei einem neuen Projekt wird immer VBAProjekt als Vorgabe-Namen für das aktuelle

Projekt aufgeführt. Für ein solches neues Projekt sind nur die Microsoft Excel

Objekte standardmäßig vorhanden und angezeigt. Formulare, Standardmodule oder

Klassenmodule müssen dann erst noch angelegt werden.

Mit Rechtsklick auf VBAProjekt Eigenschaften von VBAProjekt kann man den

Namen ändern und die detaillierte Anzeige des Projektes per Passwort sperren.

Projekt-Explorer

A.1.4 Das Eigenschaftenfenster

Im Eigenschaftenfenster werden alle Eigenschaften und Einstellungen des im

Projekt-Explorer ausgewählten Moduls zur Entwurfszeit angezeigt. Die

voreingestellten Werte können hier verändert werden, ohne dass dafür aufwändige

Programmierarbeit zu leisten ist. (Beispiele: Ein- und Ausblenden von Tabellen,

Festlegen von Eingabebereichen, für die Programmierung genutzte interne

Namensgebungen für alle angesprochenen Module, usw.).

Für das Öffnen des Eigenschaftenfensters gibt es folgende Möglichkeiten:

• Taste F4 drücken,

• Registerkarte Ansicht Eigenschaftenfenster wählen,

1 Personal.xlsb wird seit Excel 2007 für die persönliche Makrosammlung benutzt, vorher war das die

Datei personl.xls

Page 12: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

12

• Anklicken des Icons Eigenschaftenfenster in der Symbolleiste der

Entwicklungsumgebung.

Abbildung: Eigenschaftenfenster bezogen auf das Excel Objekt DieseArbeitsmappe

Eigenschaftenfenster

In der Hilfe befindet sich ebenfalls eine Übersicht mit nützlichen Shortcuts für das

Editieren der Eigenschaften.

Shortcuts für das Eigenschaftenfenster

Um die Definition/Bedeutung der einzelnen Eigenschaften zu erhalten, markiere man

den Namen durch Anklicken bis er blau hinterlegt ist und drücke dann auf die F1-Taste.

A.1.5 Das Code-Fenster

Das Code-Fenster ist der eigentliche Visual-Basic-Editor. Es dient zum Erstellen,

Anzeigen und Bearbeiten von Visual-Basic-Code.

Page 13: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

13

Für das Öffnen eines Code-Fensters gibt es folgende Möglichkeiten:

• Doppelklick im Projektfenster auf ein Excel-Objekt, Standardmodul oder

Klassenmodul.

Beim Doppelklick auf ein Formular öffnet sich zunächst ein graphischer Editor,

der sogenannte Formular-Designer zum Entwurf von Dialog-Formularen und

Platzieren von Steuerelementen, beim weiteren Doppelklick auf ein

Steuerelement oder eine Formularfläche dann das Code-Fenster für die

Eingabe zugehöriger Prozeduren.

• Markieren eines Moduls im Projektfenster und Anklicken der Schaltfläche

Code anzeigen in der Kopfzeile des Projektfensters.

• Markieren eines Moduls im Projektfenster und im Menü Ansicht auf Code klicken oder F7 drücken.

Abbildung: Code-Fenster

Im oberen Teil sind zwei Auswahlfelder zu sehen. Im Feld Objekt (1) können alle

verfügbaren Objekte ausgewählt werden. Abhängig von der Auswahl ändern sich

dann auch die Einträge im Feld Prozedur (2). Es werden nur die für das Feld Objekt

möglichen Ereignisse angezeigt.

In der Kennzeichenleiste im Fenster unten links kann gewählt werden, ob die

Prozeduren eines Modules einzeln oder gesamt angezeigt werden.

Code-Fenster

Page 14: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

14

A.1.6 Der Objektkatalog

Der Objektkatalog wird über den Menüpunkt Anzeige oder die F2-Taste angezeigt.

Er stellt alle relevanten Objekte übersichtlich dar, nicht nur die Objekte aus den

vordefinierten Excel-Bibliotheken, sondern auch die eventuell manuell erstellten

Objekte aus allen zugänglichen Projekten.

Abbildung: Objektkatalog

Das Feld Projekt/Bibliothek zeigt alle Bibliotheken an, auf die das aktive Projekt

verweist. Es können Bibliotheken hinzugefügt oder über die Auswahl Alle Bibliotheken angezeigt werden.

Im Feld Suchtext darunter kann Freitext eingeben werden, wobei auch

Platzhalterzeichen verwendet werden können. Die letzten vier Einträge werden

gespeichert und können ausgewählt werden.

In dem Teilfenster Klassen werden alle verfügbaren Klassen der ausgewählten

Bibliothek aufgelistet. Die Klasse wird in Fettschrift dargestellt, wenn für diese Code

Page 15: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

15

vorhanden ist. Standardelement einer Klasse sind durch ein * markiert und werden

automatisch verwendet, wenn kein anderes Element festgelegt wurde.

Das Teilfenster Elemente von zeigt alle Elemente der ausgewählten Klasse, wobei

Methoden, Eigenschaften, Ereignisse oder Konstante, für die Code vorhanden ist, in

Fettschrift dargestellt werden.

Das Teilfenster Details zeigt detaillierte Informationen des ausgewählten Elements

oder der übergeordneten Klasse an. Der hier angezeigte Text kann kopiert werden.

In diesem Drop-down-Feld lassen sich die Bibliotheken, in denen gesucht werden

soll, wiederum eingrenzen.

Dabei kann zwischen folgenden Bereichen gewählt werden:

BIBLIOTHEK BESCHREIBUNG

Alle Bibliotheken Alle Elemente aus allen Klassen werden angezeigt.

Excel Nur Elemente, die in Excel zur Verfügung stehen.

MSForms Element, die für die Erstellung von Microsoft Formularen benutzt werden können.

Office Alle Elemente, die im gesamten Office-Paket genutzt werden können.

stdole Die für das Microsoft Objektsystem OLE zur Verfügung stehenden Elemente.

VBA Alle Elemente, die nur im VBA Editor zur Verfügung stehen.

VBAProject Zeigt alle Elemente an, die im aktuellen Projekt benutzt werden.

Tabelle: Bibliotheken des Objektkataloges

Nachdem der Suchbegriff in das zweite Drop-down-Feld eingeben wurde, erscheinen

alle gefundenen Ergebnisse im Bereich Suchergebnisse. Dabei werden die

Page 16: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

16

gefundenen Elemente angezeigt, welchen Klassen diese zugeordnet sind und in

welcher Bibliothek sie sich befinden. Das untere Anzeigefeld zeigt die Eigenschaften

des jeweiligen Elementes. Beispielhaft ist in der nachfolgenden Abbildung der

Suchbegriff sqrt zu sehen. Anschließend wurde das Element SqrtPi ausgewählt, um

die Eigenschaften des Elementes zu veranschaulichen.

An dieser Stelle kann durch einfaches Markieren eines Elementes die Excel-Hilfe zu

diesem aufgerufen werden. Dazu muss entweder die F1-Taste, der Button im

Objektkatalog oder das Excel-Hilfe Icon im Kontextmenü gewählt werden. Die

Elemente lassen sich per Copy & Paste in das gewünschte Projekt kopieren.

Abbildung: Suchanfrage im Objektkatalog

Page 17: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

17

Wird ein Rechtsklick innerhalb des Objektkataloges ausgeführt, so öffnet sich das

bekannte Kontextmenü. Dieses enthält zwei nützliche Funktionen. Zum einen lässt

der Punkt Verborgene Elemente anzeigen auch versteckte Elemente sichtbar

werden und zum anderen können mit dem Unterpunkt Verweise zusätzliche

Bibliotheken in den Objektkatalog eingebunden werden. Durch einfaches Anhaken

des jeweiligen Verweises wird die Verknüpfung zum Objektkatalog hergestellt und ist

durch anschließende Bestätigung des Fensters verfügbar. Die zur Verfügung

stehenden Bibliotheken hängen von der Software ab, die auf dem Rechner installiert

ist.

Die folgende Abbildung zeigt ein Dialogfenster zur Aktivierung weiterer Bibliotheken.

Abbildung: Verweise im Objektkatalog

Objektkatalog

A.1.7 Testumgebung: Das Direktfenster

Zum Austesten von Programmen und zur Fehlersuche lässt sich das Direktfenster

verwenden. Es wird über die Registerkarte Ansicht Direktfenster oder alternativ

durch die Tastenkombination STRG + G geöffnet.

Page 18: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

18

Im Direktfenster kann temporärer Code eingegeben werden, der nach Betätigung der

Eingabetaste ausgeführt wird. Der (ausgetestete) eingegebene Code kann aus dem

Direktfenster kopiert und in das Code-Fenster eingefügt werden. Das Speichern des

Codes im Direktfenster ist nicht möglich.

Abbildung: Direktfenster

Direktfenster

A.1.8 Testumgebung: Das Überwachungsfenster

Das Überwachungsfenster dient ebenfalls für Testzwecke. Es erscheint automatisch,

sobald im Code spezielle Überwachungsausdrücke deklariert wurden.

Abbildung: Überwachungsfenster

Page 19: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

19

Der Überwachungsausdruck wird in der Spalte Ausdruck angezeigt. In der Spalte

Wert wird der Wert des Ausdrucks beim Übergang in den Haltemodus angezeigt.

Dieser Wert kann bearbeitet werden. Bei unzulässigen Werten bleibt das

Bearbeitungsfeld aktiv, der Wert wird markiert und eine Meldung mit der

Fehlerbeschreibung erscheint. Durch Betätigen der ESC-Taste können Änderungen

zurückgenommen werden.

Aktuelle Werte, die nicht im Gültigkeitsbereich liegen, werden beim Wechsel in den

Haltemodus nicht angezeigt.

Überwachungsfenster

A.1.9 Testumgebung: Das Lokal-Fenster

Das Lokal-Fenster komplettiert die Instrumente der Testumgebung. Es zeigt alle

festgelegten Variablen in der gegenwärtigen Prozedur mit zugehörigem Wert an.

Nach einem Wechsel zwischen Laufzeit- und Haltemodus oder der Auswahl eines

anderen Eintrages in der Aufrufliste wird das Lokal-Fenster aktualisiert.

Abbildung: Lokal-Fenster

Die Namen der Variablen werden in der Spalte Ausdruck aufgelistet und können

nicht verändert werden. Um alle Variablen des aktuellen Moduls auf Modulebene

anzuzeigen, kann die erste Variable in der Liste, eine spezielle Modulvariable,

erweitert werden. Variablen werden in den verschiedenen Modulen differenziert

dargestellt. Die Systemvariable <Me> ist bei einem Klassenmodul definiert, während

bei Standardmodulen der <Name des aktuellen Moduls> die erste Variable darstellt

Page 20: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

20

Über das Lokal-Fenster sind globale Variablen und Variablen in anderen Projekten

nicht verfügbar.

Der Eintrag in der Spalte Wert kann bearbeitet werden. Bei unzulässigen Werten

bleibt das Bearbeitungsfeld aktiv, der Wert wird markiert und eine Meldung mit der

Fehlerbeschreibung erscheint. Durch Betätigen der ESC-Taste können Änderungen

zurückgenommen werden. Dabei muss für alle numerischen Variablen ein gültiger

Wert angegeben werden, während bei Zeichenfolgevariablen keine Eingabe

vorhanden sein muss. Es besteht die Möglichkeit, Variablen mit untergeordneten

Variablen ein- oder auszublenden, wobei ausgeblendete Variablen keinen Wert

anzeigen. Der Variablentyp wird im Element Typ angezeigt und kann nicht bearbeitet

werden.

Lokal-Fenster

A.1.10 Die Excel-Hilfe innerhalb der Entwicklungsumgebung

Die Excel-Hilfe bietet dem Entwickler zahlreiche Möglichkeiten, Fragen zur Visual

Basic Thematik nachzuschlagen.

Für den Aufruf der Excel-Hilfe innerhalb der VBA-Entwicklungsumgebung gibt es

folgende Möglichkeiten:

• Über die Menüleiste durch Aufruf des Icons .

• Anklicken des Punktes .

• Drücken der F1-Taste.

Abbildung: Aufruf der Excel-Hilfe in der Menüleiste

Die nachfolgende Abbildung zeigt die Excel-Hilfe nach dessen Aufruf. Das gesamte

Inhaltsverzeichnis der Hilfe wird durch das Symbol (1) angezeigt und an der

Page 21: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

21

gleichen Stelle auch wieder ausgeblendet. Für die Suchanfragen wird das

Eingabefeld (2) genutzt. Darüber hinaus besteht die Möglichkeit, über den Drop-

down-Button (3) den Suchbereich einzuschränken oder zu erweitern.

Abbildung: Die Excel-Hilfe

Die nächste Abbildung zeigt die Einschränkung der Suche. Die Inhalte des

Suchbereichs sind in zwei Kategorien aufgeteilt. Der obere Bereich Inhalte von Office.com (1) stellt die sogenannte Online-Suche dar. In diesem Abschnitt werden

alle Suchanfragen mit der Online-Hilfe von Microsoft bearbeitet. Dazu wird eine

aufgebaute Internetverbindung benötigt.

Der Bereich Inhalte von diesem Computer (2) bewirkt, dass nur die lokalen Inhalte

der Excel-Hilfe durchsucht werden. Diese wird automatisch bei der

Standardinstallation von Microsoft Excel 2010 auf dem Computer installiert und reicht

für die meisten Suchanfragen aus.

Page 22: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

22

Abbildung: Einschränkung der Suche

A.1.11 Einstellen der Entwicklungsumgebung

Die Entwicklungsumgebung von Excel VBA kann individuell eingestellt werden über

die Befehlsfolge: Registerkarte Entwicklertools Extras Optionen.

Abbildung: Einstellungen der Entwicklungsumgebung: Editor

Unter den Editor-Einstellungen sollte Variablendeklaration erforderlich aktiviert

sein. Damit ist es dann im Sinne einer sauberen Programmentwicklung erforderlich,

alle verwendeten Variablen vor deren Nutzung zu deklarieren. Auf diese Weise wird

in allen neuen Modulen die Anweisung Option Explicit an erster Stelle den

Page 23: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

23

allgemeinen Deklarationen hinzugefügt. Für jede nicht definierte Variable erfolgt

dann eine Fehlermeldung.

Abbildung: Einstellungen der Entwicklungsumgebung: Verankerung

Verankerbare Fenster werden automatisch ausgerichtet, nicht verankerbare Fenster

können an eine beliebige Position auf dem Bildschirm verschoben werden. Auf diese

Weise können beispielsweise Projekt- und Eigenschaftenfenster praktischerweise

auf einen zweiten Bildschirm verlagert werden.

Optionen

Page 24: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

24

A.2 Die Eingabe von Programm-Code

Die Programmierumgebung von Visual Basic unterscheidet Excel-Objekte,

Formulare, Standardmodule und Klassenmodule. Als Programm-Code werden (im

Sprachgebrauch von Microsoft) sogenannte (VBA-) Makros erzeugt, das sind

Textbausteine in der Syntax der Programmiersprache VBA, die durch den Visual–

Basic-Interpreter oder Präprozessor bei der Ausführung automatisch durch ein

größeres Stück Programm-Code ersetzt werden. Der Makro-Begriff stammt aus den

Anfängen von Excel (Version 4). Damals wurde noch eine auf BASIC abzielende

rudimentäre Programmiersprache benutzt. Im Zusammenhang mit dem fortgeschrittenen VBA sind die Begriffe Makro und (VBA-) Prozedur synonym.

Der Programm-Code wird innerhalb der Entwicklungsumgebung über das Code-Fenster eingegeben. Hierbei werden die bereits erwähnten Modul-Blätter, kurz

Module erzeugt. Ein Modul kann eines oder mehrere Makros/Prozeduren enthalten.

Der besondere Vorteil der Nutzung des Code-Fensters besteht in den

Programmierhilfen, genannt IntelliSense, die Microsoft hier bietet. Alternativ kann

man aber auch für die Programmerzeugung externe (ASCII-) Text-Editoren benutzen

und diesen Text dann über den Projekt-Explorer importieren:

Rechtsklick auf Modul und Datei importieren wählen.

Das Exportieren von Programm-Code in ASCII-Dateien zum Sichern und

eventuellen Verwendung für andere Zwecke verläuft entsprechend.

A.2.1 Erfassen von Makros mit dem Makro-Rekorder

Mit dem Makro-Rekorder lassen sich bequem und einfach Makros erstellen. Er wird

über die Registerkarte Entwicklertools (1) Makro aufzchn. (2) OK gestartet.

Ein neues Fenster öffnet sich, in dem der Makroname und der Speicherort

angegeben werden. Eine Tastenkombination zum späteren Ausführen des Makros

kann optional hinterlegt werden.

Page 25: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

25

Abbildung: Makro aufzeichnen mit Makro-Rekorder

Nach dem Start des Makro-Rekorders werden alle Tastatureingaben und Mausklicks

aufgezeichnet. Diese Aufzeichnungen werden relativ zur Cursor-Position beim

Aufruf des Rekorders vorgenommen, wenn vorher noch die Option Relative Aufzeichnung durch Anklicken festgestellt wird (dabei wird der Text gelb hinterlegt).

Die Aufzeichnung wird über die Registerkarte Entwicklertools Aufzeichnung beenden (3) gestoppt.

Abbildung: Makro-Aufzeichnung beenden

Page 26: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

26

Schnellstart: Erstellen eines Makros

A.2.2 Bearbeiten oder Ausführen eines vorhandenen Makros über die Menüstruktur

Die vorhandenen Makros (gleichgültig, ob per Aufzeichnung oder manuell erstellt)

können über viele Möglichkeiten ausgeführt oder bearbeitet werden.

In der Excel-Umgebung:

• unter der Registerkarte Entwicklertools mit Klick auf das Symbol Makros

• oder alternativ über die Alt + F8 -Taste.

In der Entwicklungsumgebung:

• wählt man unter dem Menü Ausführen Sub/UserForm ausführen

• oder über die F5-Taste

• oder über den Rechtspfeil in der Werkzeugleiste.

Man erhält in allen Fällen das nachfolgende Fenster.

Abbildung: Fenster nach Aufruf des Menüpunktes Makro

Beim Klick auf Bearbeiten öffnet sich das Code-Fenster für das Modul, das dieses

Makro enthält, bei Schritt die schrittweise Testausführung.

Page 27: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

27

Unter Optionen lässt sich nachträglich eine zugehörige Tastenkombination mit der

STRG-Taste einrichten oder ändern, mit der das Makro aus Excel heraus gestartet werden kann.

Ausführen eines Makros

A.2.3 Der Start von Makros mit Graphiken und Steuerelementen

Eine alternative, aber sehr benutzerfreundliche Möglichkeit zum Ausführen eines

Makros besteht darin, eine Graphik oder ein Steuerelement in eines der geöffneten

Excel-Arbeitsblätter aufzunehmen und mit dem Makro zu verbinden.

A.2.3.1 Ausführen eines Makros durch Anklicken eines Grafikobjektes

Für diesen Zweck wird zunächst in ein Arbeitsblatt ein Grafikobjekt eingefügt, z. B.

ein Bild, eine ClipArt, eine Form oder eine SmartArt. Die entsprechenden

Möglichkeiten finden sich unter der Registrierkarte Einfügen.

Abbildung: Einfügen von Graphikobjekten

Hinzufügen, Ändern oder Löschen von Formen.

Man kann das Graphikobjekt nun mit der rechten Maustaste anklicken und einem Makro zuweisen. Microsoft spricht hier von einem Hotspot. Es lässt sich durch

Anklicken dann noch zusätzlich formatieren:

Abbildung: Formatieren eines Graphikobjektes

Ausführen eines Makros

Page 28: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

28

A.2.3.2 Ausführen eines Makros durch Anklicken eines Steuerelementes

Eine weitere Möglichkeit, eine Graphik zum Aufruf eines Makros zu benutzen,

besteht darin, Formular- oder ActiveX-Steuerelemente als spezielle Objekte in ein

Arbeitsblatt zu integrieren. Für diesen Zweck klicke man unter der Registrierkarte Entwicklertools auf Einfügen. Die entsprechende Toolbox wird angezeigt, man

kann ein Steuerelement anwählen und auf dem Arbeitsblatt platzieren. Während

dieses Vorganges ändert sich die Form des Cursors zu einem Kreuz.

Abbildung: Einfügen von Formularsteuerelementen und ActiveX-Steuerelementen

Abbildung: Anzeige der Toolbox für Steuerelemente

Will man das Steuerelement hinterher bearbeiten, muss zuvor in der Registerkarte Entwicklertools auf den Entwurfsmodus umgeschaltet werden.

Formularsteuerelemente Formularsteuerelemente sind die ursprünglichen Steuerelemente von Excel (XLM).

Das Makro wird über Rechtsklick auf dem Steuerelement mit diesem verbunden

und startet dann beim Anklicken des Steuerelementes. Innerhalb der

Formularsteuerelemente wird je nach Art des Elementes bei dessen Formatierung

auf den Inhalt von Arbeitsblatt-Zellen oder Zellenbereichen verwiesen. Diese Werte

Page 29: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

29

können dann als Parameter für ein Makro im Rahmen der Programmierung

übernommen werden.1

ActiveX-Steuerelemente ActiveX-Steuerelemente bieten im Vergleich zu Formularsteuerelementen

umfangreichere Optionen zur Automatisierung einer Aufgabe an. Es ist nicht möglich,

ein Makro über ein ActiveX-Steuerelement nur durch Zuweisung auszuführen, so wie

es bei einem Formularsteuerelement möglich ist. Die Makros gehören hier

stattdessen als eigener VBA-Code direkt zum Steuerelement, so wie bei den noch zu

beschreibenden UserForms und werden auch genauso behandelt. Zusätzlich

verfügen sie über umfangreiche Eigenschaften, mit denen Darstellung, Verhalten,

Schriftarten und andere Merkmale angepasst werden können. Klickt man auf das

Steuerelement, so wird zugehörige VBA-Code ausgeführt und alle für dieses

Steuerelement auftretenden Ereignisse verarbeitet.

Einige der ActiveX-Steuerelemente stehen nur auf UserForms zur Verfügung.2

Übersicht über Formulare, Formularsteuerelemente und ActiveX-Steuerelemente

auf einem Arbeitsblatt.

A.2.4 Programmierung mithilfe des Code-Fensters

Neben der automatischen Erfassung von Makros mit Hilfe des Makro-Rekorders

kann Programm-Code im integrierten Visual-Basic-Editor über das Code-Fenster

erstellt und bearbeitet werden.

A.2.4.1 IntelliSense

Der Visual-Basic-Editor verfügt mit IntelliSense über eine integrierte Funktionalität,

die dem Programmierer durch zusätzliche Informationen und Auswahlmöglichkeiten

die Arbeit erleichtert und die insbesondere den Aufwand des manuell einzugebenden

Quellcodes reduzieren soll:

1 Siehe http://support.microsoft.com/kb/291073/de 2 Siehe http://office.microsoft.com/de-de/excel-help/ubersicht-uber-formulare-formularsteuerelemente-

und-activex-steuerelemente-auf-einem-arbeitsblatt-HA010342745.aspx

Page 30: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

30

• Der Quellcode wird nach jeder Eingabezeile optisch hinsichtlich der

Schreibweise (Groß- und Kleinschreibung) zur besseren Übersichtlichkeit

aufbereitet.

• (Insbesondere lange) Variablennamen können mit STRG + Leertaste oder

STRG + Tab automatisch vervollständigt werden, sobald ein Name eindeutig

feststeht.

• Bei der Eingabe eines Punkts hinter einer Objektvariablen werden die

Eigenschaften und Methoden eines Objektes auflistet und die leichte Auswahl

aus der Liste ermöglicht.

• Bei dem Aufruf von Prozeduren erfolgen Hilfestellungen zur Angabe der

Parameter.

Diese Hilfestellungen können eingestellt werden über die Befehlsfolge:

Registerkarte Entwicklertools Extras Optionen.

Editor (Registerkarte, Dialogfeld "Optionen")

A.2.4.2 Hilfestellungen über die Bearbeiten Symbolleiste1

Die IntelliSense Funktionalitäten können zusätzlich auch über die Symbolleiste

Bearbeiten abgerufen werden. Sie enthält weitere Schaltflächen, die

Tastenkombinationen für häufig verwendete Menübefehle zum Bearbeiten von Code

darstellen:

Abbildung: Symbolleiste Bearbeiten

Eigenschaften/Methoden anzeigen (Strg + J)

Öffnet ein Feld im Code-Fenster mit den Eigenschaften und Methoden,

die für das Objekt vor dem Punkt (.) verfügbar sind.

1 Siehe Excel-Hilfe unter „Bearbeiten Symbolleiste“

Page 31: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

31

Konstanten anzeigen (Strg + Umschalt + J)

Öffnet ein Feld im Code-Fenster mit den Konstanten, die für die eingegebene

Eigenschaft zur Verfügung stehen, die vor dem Gleichheitszeichen (=) steht.

QuickInfo (Strg + I)

Stellt Informationen zur Syntax für eine Variable, Funktion, Methode oder

Prozedur zur Verfügung, auf deren Namen sich der Cursor befindet.

Parameterinfo (Strg + Umschalt + I)

Zeigt im Code-Fenster ein Popup-Fenster mit Informationen zu den

Parametern der Funktion an, in der sich der Cursor befindet.

Wort vervollständigen (Strg + Leertaste)

Visual Basic ergänzt automatisch das eingegebene Teil-Wort.

Einzug vergrößern (Tab vorwärts)

Verschiebt alle Zeilen des markierten Bereichs bis zum nächsten Tabstop.

Einzug verkleinern (Tab rückwärts) Verschiebt alle Zeilen des markierten Bereichs bis zum vorherigen Tabstop.

Haltepunkt ein/aus (F9)

Setzt oder entfernt einen Haltepunkt für das Debuggen in der aktuellen Zeile.

Block auskommentieren Fügt Kommentarzeichen am Zeilenanfang eines markierten Textbereichs ein.

Auskommentierung des Blocks aufheben

Entfernt Kommentarzeichen am Zeilenanfang eines markierten Textbereichs.

Lesezeichen setzen/zurücksetzen

Aktiviert bzw. deaktiviert ein Lesezeichen für die aktive Zeile im Code-Fenster.

Nächstes Lesezeichen

Setzt den Fokus auf das nächste Lesezeichen in der Lesezeichenliste.

Vorheriges Lesezeichen

Verschiebt den Fokus auf das vorherige Lesezeichen in der Lesezeichenliste.

Alle Lesezeichen löschen

Löscht alle Lesezeichen.

Bearbeiten-Symbolleiste

Page 32: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

32

A.2.4.3 Direkter und indirekter Aufruf des Code-Fensters

Alle nicht über Formulare eingegebenen Programme werden direkt gespeichert und

lassen sich auch direkt aufrufen: die Excel-Objekte, die Standardmodule oder die

Klassenmodule.

Für den Programm-Code, der den Ablauf von Benutzeroberflächen (UserForms)

regelt, wird das Code-Fenster innerhalb des logisch übergeordneten Formular-Designers aufgerufen, indem auf ein Steuerelement geklickt wird.

A.2.4.4 Anlegen eines neuen Modules

Die Excel-Objekte sind immer schon über die gewöhnliche Excel-Umgebung

vorgegeben. Falls aber noch keine Standard- bzw. Klassenmodule vorhanden sein

sollten, müssen diese zunächst angelegt werden, bevor Programm-Code

eingegeben werden kann.

Für das Anlegen eines neuen Standardmodules [Klassenmodules] gibt es folgende

Möglichkeiten:

• Man wählt in der Entwicklungsumgebung aus dem Menü Einfügen den Befehl

Modul [Klassenmodul].

• Man wählt in der Symbolleiste Voreinstellung das Drop-down-Symbol und

dann Modul [Klassenmodul].

• Rechtsklick im Projekt-Explorer auf den Projektnamen Einfügen Modul [Klassenmodul].

In jedem Fall öffnet sich ein noch leeres, jetzt editierbares Code-Fenster.

Projekt-Explorer

A.2.4.5 Aufruf eines vorhandenen Modules

Zum Öffnen eines bereits vorhandenen Programmtextes klickt man im Projekt-

Explorer doppelt auf den Namen des Modules, das diesen Text enthält oder wählt –

wie oben erwähnt - das gewünschte Makro über die Registerkarte Entwicklertools

mit Klick auf das Symbol Makros.

Page 33: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

33

Für jedes vorhandene Modul kann ein eigenes Code-Fenster geöffnet werden. Auf

diese Weise kann Programm-Code zwischen unterschiedlichen Modulen und

Fenstern verschoben oder kopiert werden.

Makros

A.2.4.6 Anlegen einer neuen Prozedur

Nachdem das Code-Fenster geöffnet ist, bietet die Entwicklungsumgebung

Hilfestellung bei der Eingabe einer neuen Prozedur (im alten Sprachgebrauch: eines

Makros).

Dazu gibt es folgende Möglichkeiten:

• Man wählt in der Entwicklungsumgebung aus dem Menü Einfügen den Befehl

Prozedur.

• Man wählt in der Symbolleiste Voreinstellung das Drop-down-Symbol

(Prozedur einfügen) und dann Prozedur.

Abbildung: Prozedur hinzufügen

Es öffnet sich das obige Fenster, indem dann einer der drei möglichen Prozedur-

Typen (SUB, FUNCTION, PROPERTY) sowie der Gültigkeitsbereich der Prozedur

festgelegt werden.

Page 34: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

34

VBA unterscheidet zwischen vier Gültigkeitsbereichen für Prozeduren, Objekte,

Variablen und Konstante:

• PUBLIC: Öffentliche Ebene, d.h. alle Prozeduren in allen Modulen

• PUBLIC und Option Private –Anweisung für ein Modul: Projektebene, d.h. alle

Prozeduren in allen Modulen des zugehörigen Projektes, aber nicht darüber

hinaus.

• PRIVATE: Modulebene, alle Prozeduren in dem Modul der so deklarierten

Prozedur

• STATIC: Prozedurebene und bedeutet, dass die zugehörigen lokalen

Variablen nach dem Aufruf der Prozedur ihren Wert beibehalten und nicht

standardmäßig gelöscht werden.

Für Prozeduren in Klassenmodulen (und nur hier) gibt es dazu noch den optionalen

Zusatz FRIEND. Dadurch sind diese Prozeduren auch in bestimmten anderen

Klassen des Projektes aufrufbar, den sogenannten befreundeten Klassen.

In jedem genannten Fall erzeugt die Entwicklungsumgebung dann das Gerüst

innerhalb der VBA-Syntax, welches anschließend durch weiteren Programm-Code

ergänzt werden kann.

Erstellen einer Prozedur

A.2.5 Debugging/Fehlersuche

In der Entwicklungsumgebung werden unter dem Menü Debuggen verschiedene

Werkzeuge aufgeführt, die bei der Diagnose und dem Auffinden von Fehlern

behilflich sein können.

A.2.5.1 Zeilenweise Abarbeitung einer Prozedur

Eine zeilenweise Abarbeitung, bei der jeder einzelne Schritt bestätigt werden muss,

ist über das Menü Debuggen Einzelschritt oder die F8-Taste möglich. Eine

weitere Möglichkeit besteht darin, den Lauf des Makros mit Hilfe der

Page 35: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

35

Tastenkombination STRG + F8 an einer mit dem Cursor markierten Position zu

unterbrechen.

Verfolgen der Ausführung des Codes

A.2.5.2 Verwendung von Haltepunkten in einer Prozedur

Über das Menü Debuggen Haltepunkt ein/aus oder mit der F9-Taste können

entsprechende Haltepunkte eingefügt und mit der Tastenkombination

STRG + UMSCHALT + F9 wieder gelöscht werden.

Setzen und Löschen eines Haltepunktes

A.2.5.3 Verwendung von Überwachungsausdrücken in einer Prozedur

Darüber hinaus können über das Menü Debuggen Überwachung hinzufügen

benutzerdefinierte Überwachungsausdrücke festgelegt werden, die das Verhalten

eines Ausdrucks beobachten und im Überwachungsfenster angezeigt werden.

Sobald die Anwendung in den Haltemodus wechselt, können die einzelnen Werte

überprüft werden.

Hinzufügen eines Überwachungsausdrucks

A.2.6 Standarddialoge

Excel bietet eine Vielzahl an Standarddialogen für Interaktionen mit dem Anwender.

Diese werden z. B. dazu verwendet, Hinweise zu geben, Dateien auszuwählen oder

Einstellung von Optionen vorzunehmen.

Grundsätzlich lassen sich zwei Arten von Dialogfenstern (Dialoge) unterscheiden:

• Vordefinierte VBA-Dialoge, wie z. B. MsgBox, InputBox

• Integrierte Excel-Dialoge.

Page 36: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

36

Generell basieren alle Dialoge auf dem UserForm-Objekt. Die Standard-Dialoge

können über die Application-Eigenschaft Dialogs aufgerufen werden und mit der

Methode Show angezeigt und ausgeführt werden.

Listen der integrierten Dialogfeldargumente

A.2.6.1 Die Funktion MsgBox

MsgBox ist eine sehr häufig genutzte Funktion, die den Programmablauf unterbricht,

in einem Dialogfeld eine Meldung anzeigt und auf die Auswahl einer Schaltfläche

wartet. Es wird ein Wert vom Typ Integer zurückgegeben, der anzeigt, auf welche

Schaltfläche der Benutzer geklickt hat.

Parameter:

Prompt Erforderlich. Eine Kette von max. 1024 Zeichen, die als Meldung im

Dialogfeld erscheint.

Buttons Optional mit Standardwert 0. Numerischer Ausdruck mit einem

kombinierten Wert, der Anzahl und Typ der anzuzeigenden

Schaltflächen entspricht, die Art des zu verwendenden Symbols

sowie die Standardschaltfläche und die Bindung des Dialogfeldes

angibt.

Title Optional mit Anwendungsname als Standardwert. Ein

Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes

angezeigt wird.

Helpfile Nur in Verbindung mit HelpContextId: Ein Zeichenfolgenausdruck,

der die Hilfedatei mit der kontextbezogenen Hilfe für das Dialogfeld

angibt.

HelpContextId Optional. Ein numerischer Ausdruck mit der Hilfekontextkennung für

MsgBox(Prompt[, Buttons] [, Title] [, Helpfile, HelpContextId])

Page 37: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

37

das entsprechende Hilfethema.

Beispiele ohne Berücksichtigung eines Rückgabewertes: (Keine Klammern!)

MsgBox “Weitermachen ?“

MsgBox “Der eingegebene Wert“ + Chr(13) + “ist unzulässig!“

MsgBox “Ldistanz: “ & 27 & “ km“

Bei einem Rückgabewert müssen Klammern gesetzt werden:

Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)

MsgBox-Funktion, MsgBox-Funktion (Beispiel)

A.2.6.2 Die Funktion InputBox

VBA stellt für Benutzereingaben die Funktion InputBox zur Verfügung. Sie zeigt eine

Eingabeaufforderung in einem Dialogfeld an, wartet auf die Eingabe eines Textes

oder auf das Klicken auf eine Schaltfläche und gibt einen Wert vom Typ String

zurück, der den Inhalt des Textfeldes angibt.

Parameter:

Default optional: Zeichenfolge als Vorbelegung für das Eingabefeld,

Standardwert ist leer.

Left optional: Numerischer Ausdruck für die x-Position des Dialogfeldes, der

horizontale Abstand des linken Rands des Dialogfeldes vom linken

Rand des Bildschirms in Points gemessen. Das Dialogfeld wird

standardmäßig horizonal zentriert.

Top optional: Numerischer Ausdruck für die y-Position des Dialogfeldes, der

vertikale Abstand des oberen Rands des Dialogfeldes zum oberen

Rand des Bildschirms in Points gemessen. Das Dialogfeld wird

InputBox(prompt [, Title] [, Default] [, Left] [, Top] _ [, Helpfile, HelpContextId])

Page 38: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

38

standardmäßig 1/3 vom oberen Bildrand positioniert.

Die anderen Parameter sind wie bei der Funktion MsgBox definiert.

Wenn außer dem ersten benannten Argument weitere Argumente angeben werden

sollen, muss InputBox in einem Ausdruck verwendet werden.

Wenn einige Parameter mit einer Position am Anfang nicht angeben werden sollen,

muss dennoch das entsprechende Komma als Trennzeichen angeben werden, so

dass der Sinn von eingegebenen Parametern ersichtlich wird. Für komplett

ausgelassene Parameter am Listenende gilt das also nicht.

Beispiele Eingabe = InputBox( “Anzahl eingeben“, “Übersicht“, 0, 830, 950)

Eingabe = InputBox( , , , 830, 950)

InputBox-Funktion, InputBox-Funktion (Beispiel)

A.2.6.3 Die Methode InputBox

Neben der Funktion InputBox gibt es auch noch die Application-Methode mit

gleichem Namen. Der Unterschied zur Funktion besteht darin, dass bei der Methode

auch noch der Typ des eingegebenen Wertes definiert werden kann.

Parameter (sonst wie bei der Funktion InputBox):

Type optional: Gibt den Datentyp des Rückgabewertes an. Wenn dieses

Argument nicht angegeben wird, gibt das Dialogfeld Text zurück.

Ohne Angabe des Objekts geht VBA von der InputBox-Funktion aus und liefert bei

der Type-Angabe eine Fehlermeldung.

Wird Type nicht als Argument angegeben, so wird der Eingabewert je nach Form als

Zahl, Text Boolscher Wert oder Formel interpretiert.

Werte, die im Argument Type übergeben werden können:

Objekt.InputBox(Prompt [, Title] [, Default] [, Left] [, Top] _ [, HelpFile, HelpContextId][, Type])

Page 39: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

39

Wert Bedeutung

0 Formel

1 Zahl

2 Text (Zeichenfolge)

4 Wahrheitswert (True oder False)

8 Zellbezug, z. B. ein Range-Objekt

16 Fehlerwert, z. B. #NV

64 Wertearray

Beispiele ZahlEingabe = Application.InputBox( “Bitte Anzahl eingeben“)

ZellenEingabe =Application.InputBox(

Prompt:=“Bitte Zelle markieren“, Type:=8)

Application.InputBox-Methode

A.2.7 Erstellen einer User-Form

Neben den nicht veränderbaren Standard-Dialogen gibt es die benutzerdefinierten

Dialoge, die sogenannten UserForms. Sie dienen der Realisierung einer

anwenderfreundlichen Lösung und können mit individuellen Steuerelementen

bestückt und automatisiert werden.

Zu den Steuerelementen gehören folgende Elemente:

• Eingabe- und Textfelder

• Listenfelder

• Kombinationslistenfelder

• Optionsschaltflächen

• Kontrollkästchen.

Vorgehensweise: Erstellen eines benutzerdefinierten Dialogfelds

A.2.7.1 Benutzerformular erstellen

Page 40: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

40

UserForms können über das Menü Einfügen ausgewählt werden und öffnen einen

Formular-Designer mit zugehörigen Werkzeugen (s. nachfolgende Abbildung).

Abbildung: UserForm-Eingabe

A.2.7.2 Steuerelemente einfügen

Diese Werkzeuge ermöglichen es dem Benutzer, unterschiedliche Steuerelemente in

die UserForm einzufügen. Standardmäßig sind folgende Elemente enthalten:

Elemente markieren.

Texte einfügen.

Eingabefeld einfügen.

Kombinationsfeld einfügen. Mit einem Klick auf das Pfeilsymbol gibt es weitere Auswahlmöglichkeiten. Werte können hier auch manuell durch den Benutzer eingetragen werden.

Listenfeld einfügen. Da mehrere Einträge gleichzeitig angezeigt werden, benötigt das Listenfeld mehr Platz. Kann die UserForm nicht alle Einträge anzeigen, wird dynamisch eine vertikale Steuerungsleiste eingebunden.

Rahmen einfügen. Einzelne Elemente können mit Hilfe des Rahmenelementes gruppiert werden.

Page 41: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

41

Kontrollkästchen einfügen. Bei der Verwendung von Kontrollkästchen innerhalb einer Gruppe können ein aber auch mehrere Kontrollkästchen aktiviert werden.

Optionsfeld einfügen. Bei der Verwendung von Kontrollkästchen innerhalb einer Gruppe kann immer nur ein Kontrollkästchen aktiviert sein.

Umschaltfeld einfügen. Mit Hilfe des Umschaltfeldes können zwei Funktionen in einem Steuerelement untergebracht werden, wie z.B. Gitternetz ein/ Gitternetz aus.

Befehlsschaltfläche einfügen. Die Befehlsschaltflächen können später mit Makros bestückt werden.

Register einfügen. Inhaltlich zusammenhängende Steuerelemente in Gruppen können mit jeweils unterschiedlichen Informationen zusammengestellt und angezeigt werden.

Multiseiten einfügen. Größere Mengen an Information, die zu unterschiedlichen Kategorien gehören, können eingegeben werden.

Bildlaufleiste einfügen. Dieses Steuerelement wird verwendet, wenn die UserForm so groß ist, dass bestimmte Elemente nur mit Hilfe von Bildlaufleisten angezeigt werden können.

Drehfeld einfügen. Mit Hilfe dieses Symbols können z.B. Zahlen schrittweise erhöht werden. Meist wird dieses Steuerelement zusammen mit einem Textfeld verwendet, in dem das Ergebnis schrittweise angepasst werden kann.

Grafiken, Logos oder Bilder einfügen.

Einen Bereich über ein Eingabefeld markieren bzw. eigene Texte eingeben und an die UserForm übergeben.

Tabelle: Steuerelemente einer UserForm

Zusätzlich können über einen Rechtsklick auf die Werkzeugsammlung weitere

Steuerelemente hinzugefügt werden. Ebenso können bereits ausgewählte

Werkzeuge aus der Ansicht gelöscht werden.

A.2.7.3 Steuerelementeigenschaften festlegen

Steuerelemente können zusätzlich noch durch weitere Eigenschaften beschrieben

werden. Diese sind über einen Rechtsklick Eigenschaften auf das

entsprechende Steuerelement zugänglich.

Beschriftung

Page 42: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

42

Beim Einfügen der Steuerelemente wird standardmäßig eine Beschriftung eingefügt.

Diese kann in einem weiteren Schritt den Anforderungen entsprechend abgeändert

werden. Dazu auf die Standard-Beschriftung klicken und die neue Beschriftung

einfügen.

Positionierung

Mit der StartupPosition-Eigenschaft ist es möglich, den Startwert festzulegen, an

welcher Stelle auf dem Bildschirm der Dialog erscheinen soll. Da diese Eigenschaft

nicht im Objektkatalog aufgeführt ist, werden hier die vier Einstellungen erläutert:

EINSTELLUNG WERT BESCHREIBUNG

Manual 0 Für den Dialog wird keine Anfangseinstellung festgelegt.

CenterOwner 1 Dialog wird auf dem Element zentriert, zu dem das UserForm-Objekt gehört (Defaulteinstellung).

CenterScreen 2 Dialog wird anhand des Bildschirms zentriert.

Windows Default 3 Dialog erscheint in der linken oberen Ecke des Bildschirms.

Tabelle: UserForm positionieren

Unabhängig von StartupPosition können Dialoge manuell positioniert werden.

Dazu werden die Eigenschaften Left und Top in der UserForm_Activate-Ereignisprozedur eingestellt.

Aktivierreihenfolge

Bei der Erstellung von UserForms sollte die Aktivierreihenfolge beachtet werden,

anhand derer die einzelnen Steuerelemente ausgeführt werden. Dies kann in Bezug

auf ein Springen mit der Tab-Taste interessant für den Benutzer sein. Mit einem

Rechtsklick auf die UserForm kann im Menü-Fenster die Reihenfolge ausgewählt

werden:

Page 43: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

43

Abbildung: Aktivierreihenfolge

UserForm programmieren

Nachdem Steuerelemente in die UserForm eingefügt wurden, können diese auch mit

Funktionen versehen werden. Steuerelemente können zur Laufzeit initialisiert

werden, indem der VBA-Code in einer Prozedur verwendet wird. Dazu müssen dann

auch Prozeduren/Makros erstellt werden, welche die UserForm aufrufen, um

Eingaben zu tätigen. Die eingegebenen Daten müssen dafür in einer Tabelle

gespeichert werden. Zum Schluss muss die UserForm wieder beendet werden.

A.2.7.4 Steuerelement-Eigenschaften initialisieren

Mit Hilfe des Initialize-Ereignisses können Anfangswerte für das Steuerelement

festgelegt werden. Der Vorteil hier besteht darin, dass der Initialisierungscode im

Formular bleibt und dadurch in andere Projekte kopiert werden kann. Mit Hilfe der

Show-Methode, mittels der das Dialogfeld angezeigt werden kann, können die

Steuerelemente initialisiert werden.

Außerdem können Steuerelemente zur Laufzeit initialisiert werden, indem VBA-Code

in einem Makro verwendet wird.

Initialisieren von Steuerelement-Eigenschaften

A.2.7.5 Steuerelement- und Dialogfeldereignisse erstellen

UserForms besitzen einen vordefinierten Ereignissatz, d.h. dass z. B. eine

Befehlsschaltfläche ein Click-Ereignis oder UserForms-Objekte ein Initializie-Ereignis

besitzen.

Page 44: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

44

Um Ereignisprozeduren für ein Steuerelemente bzw. ein Formular zu schreiben,

muss das Steuerelement bzw. das Formular mit einem Doppelklick geöffnet werden

und aus dem Drop-down-Listenfeld bzw. über Einfügen Prozedur eine Prozedur

ausgewählt werden. Dann erst kann der Code der Ereignisprozedur hinzugefügt

werden.

A.2.7.6 UserForm anzeigen

Um eine UserForm über VBA-Code anzuzeigen, muss sie zunächst als Objekt

geladen und dann mit der Show-Methode angezeigt werden.

Load-Anweisung

UserForm Objekt

Soll eine erstellte UserForm getestet werden, so kann die Ausführung über

Ausführen Sub/ Formular ausführen oder über die F5-Taste angestoßen

werden.

A.2.7.7 Steuerelemente während der Code-Ausführung verwenden

Während der Code-Ausführung besteht die Möglichkeit, einige der Steuerelemente-

Eigenschaften festzulegen und zurückzugeben. Daten, die in ein Formular

eingegeben wurden, gehen beim Schließen des Fensters verloren. Daher müssen

die eingegebenen Daten in Variablen der Modulebene gespeichert werden, während

das Formular noch ausgeführt wird.

Verwenden von Steuerelementen während der Code-Ausführung

Load UserFormName

UserFormName.Show

Page 45: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

45

A.2.7.8 Besonderheiten beim Dialogende

Durch den X-Button des Dialogfelds in der rechten oberen Ecke kann ein Dialog

geschlossen werden. Ist dies nicht gewünscht, so muss das QueryClose-Ereignis

mit dem Parameter CloseMode ausgewertet werden.

Dieses Ereignis kann verschiedene Zustände haben:

EINSTELLUNG WERT BESCHREIBUNG

vbFormControlMenu 0 Der Benutzer hat auf der UserForm im Systemmenü den Befehl Schließen gewählt.

VbFormCode 1 Die Unload-Anweisung wird durch Code aufgerufen.

VbAppWindows 2 Die aktuelle Windows-Betriebsumgebungssitzung wird beendet.

VbAppTaskManager 3 Die Anwendung wird vom Windows-Task-Manager geschlossen.

Tabelle: QueryClose-Ereignis

Dieses Ereignis kann über das Argument Cancel gesteuert werden. Durch Festlegen

des Arguments auf einen Wert ungleich 0 wird das QueryClose-Ereignis in allen

geladenen Benutzerformularen beendet. So wird verhindert, dass die UserForm und

die Anwendung geschlossen werden.

Private Sub UserForm_QueryClose(Cancel%, CloseMode%)

If CloseMode = vbFormControlMenu Then Cancel = True

End Sub

Page 46: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

46

A.2.8 Internet Links für Hilfestellungen zur VBA Programmierung

Einige geeignete Portale und Medien sind im Folgenden aufgeführt:

BEREICH / ANBIETER INTERNETLINK / BEGRIFF

Wikibooks VBA in Excel http://de.wikibooks.org/wiki/VBA_in_Excel

Galileo Computing Einstieg in Visual Basic 2010

http://openbook.galileocomputing.de/einstieg_vb_2010/

VBA-Programmierung http://www.vba-wordwelt.de/

Visual Basic Online Seminar http://www.vb-seminar.de/

Excel Standard und Excel VBA http://www.online-excel.de/

Microsoft Developer Network

http://msdn.microsoft.com/de-de/library/office/ee814737(v=office.14).aspx

Youtube Suchbegriff: VBA Tutorial

Office Forum http://www.office-loesung.de/viewforum10_0_0.php

Excel-Formel-Übersetzer http://de.excel-translator.de/

Tabelle: Hilfestellungen über das Internet

Page 47: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

47

A.3 Die Syntax von VBA

Das folgende Kapitel sind die wichtigsten Sprachelemente von VBA

zusammengefasst. Zusätzliche Erläuterungen liefert grundsätzlich das Visual-Basic

Sprachverzeichnis in der Excel-Hilfe für Entwickler .

A.3.1 Kommentare und Schreibkonventionen

Eingefügte Kommentare und Übersichtlichkeit im Schriftbild sind wesentliche

Merkmale guter Programmierung. Sie sind unabdingbar, um ein Programm auch

nach längerer Zeit schnell wieder verstehen zu können.

• Ein Kommentarbereich (nicht notwendig am Anfang einer Zeile) beginnt mit

einem Hochkomma und endet am Zeilenende.

• Eine Kommentarzeile beginnt mit der klassischen Anweisung Rem (für

Remark).

• Für eine bessere Übersichtlichkeit können Texte eingerückt werden.

• Längere Anweisungen können auf mehrere Zeilen verteilt werden, indem ein

Unterstrich mit vorangehendem Leerzeichen gesetzt wird.

• Mehrere Anweisungen innerhalb einer Zeile werden durch Doppelpunkt

getrennt.

A.3.2 Standardkonventionen für die Namensgebung

Eine Reihe von Sprachelementen in VBA muss zur Unterscheidung einen Namen

erhalten, z. B. Variablen, Konstante, Prozeduren, Objekte, Formulare, etc.

Rem Das ist ein Kommentar. ‘ Dies ist ebenfalls eine Kommentarzeile. ‘ Es folgt eine Anweisung über drei Zeilen. i = MsgBox("Dies ist ein sehr langer Text.", _ vbOKOnly, _ "Achtung! Achtung!") ‘ Es folgen drei Anweisungen in einer Zeile x=y: u=w: a=b

Page 48: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

48

Hierbei ist folgende Standardkonvention zu beachten:

• Das erste Zeichen muss ein Buchstabe sein,

• jedes weitere Zeichen eine Ziffer, ein Buchstabe oder ein Sonderzeichen,

• Sonderzeichen wie #, %, &, ! , ? sowie mathematischen Zeichen und

Leerzeichen sind nicht erlaubt,

• maximal 255 Zeichen,

• kein VBA Schlüsselwort.

A.3.3 Prozeduren

Eine Prozedur ist eine Folge von gemeinsam ausgeführten Anweisungen. In VBA

unterscheidet man die Prozedurtypen Sub, Function und Property. Jede Prozedur

muss mit einem eindeutigen Namen versehen werden.

Prozeduren sind standardmäßig Public, wenn sie nicht explizit mit Public oder

Private deklariert werden. Auf eine solche Prozedur kann von allen anderen

Prozeduren in allen Modulen zugegriffen werden. Bei Verwendung in einem Modul

mit einer Option Private-Anweisung kann auf die Prozedur nur innerhalb des

Projekts zugegriffen werden.

A.3.3.1 Sub-Prozeduren

ArgListe ist eine Variablenliste mit den Argumenten, die an die Sub-Prozedur beim

Aufruf übergeben werden. Mehrere Variablen werden durch Kommata getrennt.

Dabei wird die folgende Syntax verwendet:

[Private | Public] [Static] Sub Name [(ArgListe)]

[Anweisungen]

[Exit Sub]

[Anweisungen]

End Sub

Page 49: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

49

Mit folgenden Bedeutungen:

• Optional, dass ein Argument nicht erforderlich ist. Alle daran anschließenden

Argumente müssen ebenfalls optional sein.

• ByVal, dass das Argument als Wert übergeben wird.

• ByRef, dass das Argument als Referenz zur Speicheradresse übergeben wird

(Standard in VBA)

• ParamArray ist nur als letztes Argument in ArgListe zulässig und gibt an,

dass das letzte Element ein als Optional deklariertes Datenfeld mit Variant-

Elementen ist. ParamArray erlaubt die Angabe einer variablen Anzahl von

Argumenten und darf nicht in Kombination mit den Schlüsselwörtern ByVal, ByRef oder Optional benutzt werden.

Sub-Anweisung

Aufruf einer Sub-Prozedur

Mit folgenden Bedeutungen:

• Call ist dabei ein optionales Schlüsselwort. Wird es angegeben, so MUSS

ArgListe in Klammern stehen.

• ArgListe ist die durch Kommata getrennte Liste der Variablen, die an die

Prozedur übergeben werden sollen. Wird das Schlüsselwort Call NICHT

verwendet, darf ArgListe NICHT in Klammern stehen.

Call-Anweisung

[Optional][ByVal | ByRef] [ParamArray] VarName[()]

[As Typ][=Standardwert]

Call ProzedurName[(ArgListe)]

bzw.

ProzedurName[ArgListe]

Page 50: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

50

A.3.3.2 Function-Prozeduren

Function-Prozeduren sind standardmäßig Public, wenn sie nicht explizit mit Public,

Private oder Friend deklariert werden. Für ArgListe gelten die gleichen Regeln, wie

sie unter Sub-Prozeduren aufgeführt wurden.

Aufruf einer Function-Prozedur

Der Aufruf einer Function-Prozedur innerhalb eines Ausdrucks erfolgt durch Angabe

des Funktionsnamens gefolgt von der Argumentliste in Klammern.

Beispiel: d = LuftDist(x_a, y_A, x_B, y_B, -1)

Wird die Funktion nur aufgerufen ohne den Rückgabewert zuzuordnen, so wird die

Funktion wie eine Sub-Prozedur behandelt.

Beispiel: MsgBox “Weitermachen?“

Call MsgBox(“Weitermachen?“)

Function-Anweisung

A.3.3.3 Property-Prozeduren

Über Property-Prozeduren können benutzerdefinierte Eigenschaften in UserForms,

Standardmodulen und Klassenmodulen erstellt und bearbeitet werden. Sie werden

damit zu einer Eigenschaft des Moduls, das die Prozedur enthält.

[Public | Private | Friend] [Static] Function Name [(ArgListe)]

[As Typ]

[Anweisungen]

[Name = Ausdruck]

[Exit Function]

[Anweisungen]

[Name = Ausdruck]

End Function

Page 51: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

51

Schreiben einer Property-Prozedur

A.3.4 Konstante, Variable und Datenfeldern

Das Speichern von Daten läuft auch in VBA über Konstante und Variable, die durch

Namen unterschieden werden. Hinsichtlich des Speicherbedarfes werden die

üblichen unterschiedlichen Datentypen betrachtet. Bei der Deklaration von

Konstanten, Variablen oder Datenfeldern wird dann deren individueller

Speicherbedarf festgelegt.

A.3.4.1 Standard-Datentypen

WERT DATENTYP WERTEBEREICH/

SPEICHERBEDARF KÜRZEL DEFTYP

Ganze Zahlen

Byte Wertebereich: 0. . . 255, 1 Byte Speicherbedarf kein DefByte

Integer Integer Wertebereich: -32 768. . . 32 767, 2 Byte Speicherbedarf

% DefInt

Long Wertebereich: -2 147 483 648. . . 2 147 483 647, 4 Byte Speicherbedarf

& DefLng

Reelle Zahlen

Single Fließkommazahl mit 8 Stellen Genauigkeit, 4 Byte Speicherbedarf

! DefSng

Double Fließkommazahl mit 16 Stellen Genauigkeit, 8 Byte Speicherbedarf

# DefDbl

Currency

Festkommazahlen mit 15 Stellen Genauigkeit vor und 4 Stellen hinter dem Komma; Speicherbedarf: 8 Byte

@ DefCur

[Public | Private] [Static] Property {Get | Let | Set}

Eigenschaftsname [(Argumente)] [As Typ]

Anweisungen

End Property

Page 52: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

52

WERT DATENTYP WERTEBEREICH/

SPEICHERBEDARF KÜRZEL DEFTYP

Zeichenketten String Speicherbedarf: 10 Byte und 2 Byte pro Zeichen; Länge nur durch RAM begrenzt

$ DefStr

Wahrheitswerte Boolean

Datentyp, der nur zwei Werte annehmen kann (True, False); Speicherbedarf: 2 Byte

kein DefBool

Variant-Datentyp Variant

Nimmt je nach Bedarf einen der obigen Datentypen an; Speicherbedarf: mindestens 16 Byte, bei Zeichenketten 22 Byte plus 2 Byte pro Zeichen

kein DefVar

Datum/Zeit Date 8 Byte Speicherbedarf Kein DefDate

Objekte Object Verweis auf ein Objekt 4 Byte Speicherbedarf kein DefObj

Tabelle: Standard-Datentypen in VBA

Datentypen

A.3.4.2 Benutzerdefinierte Datentypen

Neben den Standard-Datentypen kann man als Benutzer aber auch noch eigene

Datensätze mittels der Type-Anweisung definieren.

Die Type-Anweisung kann nur auf Modulebene verwendet werden. Nach der

Deklaration eines solchen benutzerdefinierten Typs kann eine Variable oder ein

Datenfeld dieses Typs innerhalb des Gültigkeitsbereiches dieser Type-Deklaration

deklariert werden.

[Private | Public] Type TypName

AttributName1 [([Indizes])] As Typ [AttributName2 [([Indizes])] As Typ] ...

End Type

Page 53: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

53

Beispiel: Type Lkw

Hersteller As String = “MAN“

Gewicht As Double = 34.12

Stellplaetze As Integer = 100

End Type

Lkw.Hersteller = “Mercedes“

Type-Anweisung

A.1.1 Aufzähl-Typen

Enum-Typen werden mit konstanten Werten initialisiert, die zur Laufzeit nicht

verändert werden. Sie werden für die Deklaration von Variablen und Parameter mit

klar definiertem diskretem Wertebereich verwendet und beschränken diese auf den

angegebenen Wertebereich.

Die Enum-Anweisung kann nur auf Modulebene verwendet werden. Enum-Typen

sind standardmäßig Public. Im Falle von Private ist der Typ nur in dem Modul

sichtbar, in dem er definiert wurde.

Enum-Anweisung

A.3.4.3 Deklarieren von Konstanten

Konstanten können innerhalb oder außerhalb des Anweisungsblocks einer Prozedur

(also zwischen Sub Name() … End Sub) definiert werden. In Sub-, Function- oder

Property-Prozeduren deklarierte Konstanten gelten als lokal innerhalb dieser

Prozedur. Eine Konstante, die außerhalb einer Prozedur deklariert wurde, ist für das

[Private | Public] Enum EnumName

ElementName1 [= Konstantenausdruck] [ElementName2 [= Konstantenausdruck]] ...

End Enum

Page 54: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

54

gesamte umgebende Modul definiert. Konstanten können an allen Stellen verwendet

werden, an denen auch ein Ausdruck zulässig ist.

Beispiel: Const conAlter As Integer = 34

Die optionalen Schlüsselworte Private und Public dürfen nicht innerhalb von

Prozeduren benutzt werden, sondern nur außerhalb auf Modulebene. Die

Deklaration muss dann also vor dem Schlüsselwort Sub erfolgen. Private bedeutet

dabei, dass die Konstante nur innerhalb desjenigen Moduls zur Verfügung steht, in

dem sie deklariert wurde, Public dagegen, dass sie allen Prozeduren in allen

Modulen zur Verfügung steht. Innerhalb von Klassenmodulen dürfen Konstante nicht

als Public deklariert werden.

Deklarieren von Konstanten

Es gibt vielfältige innerhalb von VBA bereits vordefinierte Konstante, um die

Programmierung zu erleichtern, sie sind in der Excel-Hilfe unter Konstanten

erläutert.

• CallType-Konstanten

• Compiler-Konstanten

• Dateiattribut-Konstanten

• Dateieingabe/-ausgabe-Konstanten

• Datumsformat-Konstanten

• Datumskonstanten

• Dir-, GetAttr- und SetAttr-Konstanten

• DriveType-Konstanten

• Farbkonstanten

• Formularkonstanten

• IMEStatus-Konstanten

• Kalender-Konstanten

[Public | Private] Const Name [ As Datentyp ] = Ausdruck

Page 55: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

55

• MsgBox-Konstanten

• QueryClose-Konstanten

• Shell-Konstanten

• SpecialFolder-Konstanten

• StrConv-Konstanten

• Systemfarben-Konstanten

• Tasten-Code-Konstanten

• Tristate-Konstanten

• VarType-Konstanten

• Vergleichskonstanten

• Verschiedene Konstanten

A.3.4.4 Deklarieren von Variablen

Wenn in den Editor-Einstellungen Variablendeklaration erforderlich aktiviert wurde

oder wenn die Anweisung Option Explicit im Modul verwendet wird, erfolgt für jede

nicht deklarierte Variable eine Fehlermeldung. Ohne zwingende Variablendeklaration

wird jede nicht deklarierte Variable als Variant-Typ behandelt.

Variablen sind Speicherplätze für Zeichenfolgen (Strings), Werte und Objekte. Ihre

Gültigkeit und die Lebensdauer ihrer Werte sind abhängig vom Ort und der Art ihrer

Deklaration.

• Deklaration innerhalb einer Prozedur

Die Variable ist lokal, hat ihre Gültigkeit also ausschließlich für diese Prozedur

und kann nicht aus anderen Prozeduren angesprochen werden.

• Deklaration im Modulkopf

Die Variable gilt für alle Prozeduren dieses Moduls, eine Weitergabe als

Parameter ist nicht notwendig.

• Deklaration im Modulkopf eines Standardmoduls als Public

Die Variable gilt für alle Prozeduren der Arbeitsmappe, soweit das die

Prozedur enthaltene Modul nicht als Private deklariert ist.

Public-Variablen und Variablen auf Modulebene sollte man eigentlich tunlichst

vermeiden, da man nicht immer schnell feststellen kann, wann diese öffentlichen

Page 56: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

56

Variablen ihren Wert verlieren oder wo er geändert wird. Die sauberste Lösung ist die

Deklaration innerhalb der Prozeduren und die Weitergabe als Parameter.1

GÜLTIGKEITSBEREICH UND LEBENSDAUER EINER VARIABLEN

DEKLARATION

Öffentlich (alle Prozeduren in allen Modulen (des Projektes))

Deklaration vor der Sub-Zeile mit Public-Anweisung z. B.: Public Variable As Datentyp

Privat (nur in den Prozeduren des Moduls)

Deklaration vor Sub-Zeile mit Private-Anweisung z. B.: Private Variable As Datentyp

Lokal vergänglich (Prozedurebene, Wert wird gelöscht)

Deklaration nach der Sub-Zeile mit Dim-Anweisung

Lokal statisch (Prozedurebene, Wert wird beibehalten)

Deklaration nach der Sub-Zeile mit Static-Anweisung: z. B.: Static Variable As DatenTyp

Tabelle: Gültigkeitsbereiche und Lebensdauer von Variablen in VBA

Public-Anweisung, Private Anweisung, Dim-Anweisung, Static-Anweisung

A.3.4.5 Deklarieren von Variablen innerhalb einer Prozedur

Die Deklaration von Variablen innerhalb einer Prozedur kann unter VBA auf drei

Arten erfolgen. Die klassische Variante verwendet den expliziten Datentyp, die

kürzere Variante lediglich ein Kurzzeichen direkt an den Namen gehängt. Mit der

DefTyp-Anweisung kann man darüber hinaus auch noch Variablentypen für

Variablennamen festlegen, deren Name mit einem Buchstaben innerhalb eines

gewissen Bereiches beginnt. Innerhalb einer Prozedur sollte man die Dim-Anweisung in der Regel an den Anfang der Prozedur stellen.

Die Datentyp-Kürzel und DefTyp-Bezeichnungen entnehme man der obigen Tabelle

zu den Standard-Datentypen.

1 Vergl.

http://de.wikibooks.org/wiki/VBA_in_Excel/_G%C3%BCltigkeit_von_Variablen_und_Konstanten#Dekla

ration_auf_Prozedurebene

Page 57: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

57

Beispiel: Dim AnzPers As Integer, LkwGew As Double

Dim AnzPers%, Curr$

DefInt A-K, P-R

Deklarieren von Variablen

DefTyp Anweisung

A.3.4.6 Deklarieren von Datenfeldern innerhalb einer Prozedur

Datenfelder sind Variablen mit einer zusätzlichen Dimensionsangabe.

Deklarieren von Datenfeldern:

Beispiel: Dim Distanz(10,20) As Double

Ob ein Datenfeld mit 0 oder 1 beginnend indiziert ist, hängt von der Einstellung der

Option Base-Anweisung ab. Wenn Option Base 1 nicht angegeben ist, beginnen

alle Datenfelder mit dem Index Null. Das obige Beispiel wäre dann also eine 11x21-

Matrix.

Festlegen der Startindizes:

Die Dim-Anweisung kann auch in Kombination mit einem leeren Klammernpaar zur

Deklaration eines dynamischen Datenfelds verwendet werden. Nach einer solchen

Dim Name1 As Datentyp1[, Name2 As Datentyp2[, …]]

Dim Name1DatentypKürzel1[, Name2DatentypKürzel2[, …]]

DefTyp Buchstabenbereich1[, Buchstabenbereich2[, …]]

Dim Name (Dimension1[, Dimension2[,…]]) As Datentyp

Option Base {0 | 1}

Page 58: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

58

Deklaration kann man mit der nachfolgenden ReDim-Anweisung innerhalb des

Programmablaufes die Anzahl der Dimensionen und Elemente in dem Datenfeld neu

definieren. Gleiches gilt für bereits vorher festgelegte Werte der Indizes:

Dynamisches Datenfeld erzeugen:

Neudimensionierung von Datenfeldern:

Das Preserve rettet dabei – soweit möglich – vorhandene Daten, während die

nachfolgende Anweisung das Datenfeld neu initialisiert:

Neuinitialisierung von Datenfeldern:

Neben den Datenfeldern mit dem durch Option Base vorgegebenen Startindex

lassen sich aber auch noch Datenfelder mit einem bestimmtem Indexbereich

festlegen.

Deklarieren von Datenfeldern mit festgelegtem Indexbereich:

Beispiel: Dim LuftDistanz(5 To 10,10 To 20, 30) As Double

Wenn keine Untergrenze angegeben ist, wird die Vorgabe durch Option Base

vorausgesetzt.

Dim Name()

Redim [Preserve] Name (Dimension1 [, Dimension2 [,…]]) As Datentyp

Erase Name

Dim Name (Indizes1[, Indizes2[,…]]) As Datentyp

Page 59: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

59

Deklarieren von Datenfeldern

A.3.5 Operatoren

VBA verwendet die üblichen arithmetischen, Vergleichs-, Verkettungs- und logischen

Operatoren.

Operatoren (Zusammenfassung)

A.3.5.1 Arithmetische Operatoren zum Durchführen mathematischer Berechnungen

= , + , - , * , / ,^ , \ , Mod.

Arithmetische Operatoren

A.3.5.2 Vergleichsoperatoren zum Durchführen von Vergleichen

= , > , >= , < , <= , <> , Like (Mustervergleich bei Zeichenketten), Is (vergleicht

Objekt-Variable).

Vergleichsoperatoren

A.3.5.3 Verkettungsoperatoren zum Aneinanderhängen von Zeichenfolgen

& (Aneinanderhängen von Zeichenketten), + (Addition oder Verkettung zweier

Ausdrücke).

Verkettungsoperatoren

A.3.5.4 Logische Operatoren zum Durchführen logischer Operationen

And; Or; Xor; Not;. Eqv (logische Äquivalenz); Imp (logische Implikation).

Logische Operatoren

Page 60: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

60

A.3.6 Kontrollstrukturen

Der folgende Abschnitt listet die Syntax zu den üblichen Kontrollstrukturen einer

Programmiersprache.

A.3.6.1 IF-Verzweigung

Verzweigungen können mit Hilfe von Bedingungen bestimmte Zustände abfragen.

Bei der If-Verzweigung wird zwischen zwei Formen unterschieden werden:

Normale Syntax:

Block Syntax:

Mit Hilfe von Verschachtelungen können mit der Blockform mehrere Bedingungen

nacheinander durchgeführt werden. Das End If ist dabei zwingend erforderlich.

If …Then…Else-Anweisung

A.3.6.2 IIF-Verzweigung

If Bedingung Then Aktion1 Else Aktion2

‘ Version 1 If Bedingung Then

Anweisungsblock1 Else

Anweisungsblock2 End If ‘ Version 2 If Bedingung1 Then

Anweisungsblock1 ElseIf Bedingung2

Anweisungsblock2 Else

Anweisungsblock3 End If

Page 61: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

61

Die IIf-Verzweigung ist eine abgewandelte Form der If-Verzweigung. Diese wertet

einen Ausdruck aus und gibt entweder den Wert für die korrekte oder für die falsche

Auswertung zurück.

Iif-Funktion

A.3.6.3 For-Next-Schleife

Mit Hilfe der For-Next-Schleife kann ein Block von Anweisungen eine unbestimmte

Anzahl an Wiederholungen durchlaufen werden. Dabei wird eine Zählervariable

verwendet, die sich bei jedem Durchlauf erhöht oder verringert.

For…Next-Anweisung

A.3.6.4 For-Each-Next-Schleife

Die For-Each-Next-Schleife wiederholt eine Gruppe von Anweisungen für jedes

Element in einem Datenfeld oder in einer Auflistung (von Objekten).

IIf(Ausdruck, korrekt, falsch)

For Zähler = Anfang To Ende

Anweisung [Exit For] [Anweisung]

Next [Zähler]

For Each Element In Gruppe

[Anweisung] [Exit For] [Anweisung]

Next [Element]

Page 62: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

62

For Each…Next-Anweisungen

A.3.6.5 Do-Until-Loop-Schleife

Durch die Do-Until-Loop-Schleife wird ein Block von Anweisungen solange

wiederholt, bis eine Bedingung den Status True erhält. Diese Bedingung wird jeweils

am Ende eines Durchlaufs geprüft.

Do…Loop-Anweisung

A.3.6.6 Do-While-Loop-Schleife

Diese Schleife funktioniert analog zur Do-Until-Loop-Schleife. Jedoch wird die

Bedingung immer zu Beginn der Schleife abgefragt.

Do…Loop-Anweisung

A.3.6.7 Select Case-Anweisung

Die Select Case-Anweisung überprüft einen Ausdruck nach möglichen Werten und

führt anschließend eine oder mehrere Anweisungen durch.

Do Until Bedingung

Anweisung [Exit Do] [Anweisung]

Loop

Do While Bedingung

Anweisung [Exit Do] [Anweisung]

Loop

Page 63: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

63

Select Case-Anweisung

Select Case Ausdruck

Case Auswahlwert1 [Anweisungsblock1]

Case Auswahlwert2 [Anweisungsblock2]

… [Case Else

Anweisungsblock x] End Select

Page 64: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

64

A.4 Verwendung der verschiedenen Funktions-Arten in Excel-VBA1

A.4.1 Die verschiedenen Funktions-Arten in Excel-VBA

In Excel-VBA gibt es drei Arten von Funktionen:

• die benutzerdefinierte VBA-Funktionen, also die Function Prozeduren

innerhalb der VBA Syntax,

• bereits vorinstallierte VBA-Funktionen, die dem kompletten Office-Paket und

damit auch Excel zur Verfügung stehen,

• sowie die Excel-Funktionen, die innerhalb der Tabellenkalkulation aufgerufen

werden können und die im Register Formeln aufgelistet sind.

A.4.2 Benutzerdefinierte VBA-Funktionen

A.4.2.1 Verwendung in VBA-Prozeduren

Wenn bestimmte Berechnungen häufig wiederholt werden, ist es sinnvoll, dafür

spezielle Funktionen zu definieren, in logistischen Anwendungen beispielsweise für

die Entfernungsberechnung nach Luftlinie zwischen zwei Orten auf einer Landkarte

oder auf dem Globus.

Man beachte im Beispiel, dass die Parameter der Funktion in der Function-

Anweisung per Kommata getrennt werden.

Im Sinne eines guten Programmierstils ist übrigens immer auf eine saubere

Dimensionierung zu achten, für die Funktionen selbst, deren Parameter sowie die in

den Funktionen verwendeten Variablen. 1 Für eine ausgezeichnete Darstellung siehe

http://de.wikibooks.org/wiki/VBA_in_Excel/_Funktionen#Einsatz_von_benutzerdefinierten_Funktionen

_.28UDF.29 (Fassung vom 25.7.2013).

Function dPythagoras(xA As Double, yA As Double, _ xB As Double, yB As Double) As Double dPythagoras = Sqr((xA - xB) ^ 2 + (yA - yB) ^ 2) End Function

Page 65: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

65

A.4.2.2 Verwendung in Arbeitsblättern

Nachdem man innerhalb der Entwicklungsumgebung eine Funktion in ein Modul

eingegeben hat, steht diese Excel als benutzerdefinierte Funktion zur Verfügung.

Klickt man im Register Formeln auf Funktion einfügen oder alternativ die

Shift + F3-Taste und wählt die Kategorie Benutzerdefiniert, so erhält man

beispielsweise:

Abbildung: Einfügen einer benutzerdefinierten Funktion

Hier ist darauf zu achten, dass für den Funktionsnamen keine in Excel belegten

Namen verwendet werden, im oberen Beispiel etwa würde der Name X7 zu einer

Fehlermeldung führen wegen des Konfliktes mit der gleichnamigen Zelle.

Besitzt eine Funktion mehrere Parameter, so werden diese beim Aufruf im

Tabellenblatt in der deutschsprachigen Excel Version nicht per Komma, sondern

mit Semikolon getrennt!

Function Mult7(x As Integer) As Integer Mult7 = 7 * x End Function

Page 66: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

66

Abbildung: Aufruf einer benutzerdefinierten Funktion mit mehreren Parametern

A.4.3 Vorinstallierte VBA-Funktionen

A.4.3.1 Verwendung in VBA-Prozeduren

Vorinstallierte Funktionen lassen sich - ob mit oder ohne Parameter – direkt in

Prozeduren aufrufen.

In jeder neuen Excel-Version kommen neue VBA-Funktionen hinzu.

Für eine gewollt abwärtskompatible Anwendung ist deshalb zunächst zu prüfen, ab

wann die Funktion für VBA zur Verfügung gestellt wurde.

A.4.3.2 Verwendung in Arbeitsblättern

Unter anderem wegen der unterschiedlichen Sprachversionen lassen sich VBA-

Funktionen nicht direkt in Arbeitsblättern aufrufen. Schreibt man beispielsweise

‘ ‘ ohne Parameter ‘ Sub PathAct() MsgBox CurDir End Sub ‘ ‘ mit Parameter ‘ Sub TypeAct() MsgBox TypeName(ActiveSheet) End Sub

Page 67: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

67

= sqr(2) in eine Zelle des Arbeitsblattes, so führt das zu der Fehlermeldung

„#NAME?“.

Dieses Problem kann man damit umgehen, dass man die VBA-Funktion in einer

benutzerdefinierten Funktion „kapselt“ und damit so wie oben im Beispiel

dPythagoras das Ergebnis ins Tabellenblatt überträgt.

Hat eine VBA-Funktion den gleichen Namen wie eine Excel-Funktion, so kann man

sie ohne Fehlermeldung in die Zellen eines Arbeitsblattes eingetragen werden, wobei

mehrere Parameter wieder anstatt per Komma per Semikolon getrennt werden. Doch

hier ist Vorsicht geboten: Trotz Namensgleichheit können Excel- und VBA-

Funktionen zu unterschiedlichen Ergebnissen führen (siehe z. B. die Trim-Funktion).

A.4.4 Excel-Funktionen

A.4.4.1 Besonderheiten von Excel-Funktionen

Sprachversion Excel-Funktionen werden unabhängig von der Sprachversion1 intern von Excel

immer in ihre englischsprachige Originalversion übertragen und so verarbeitet. Die

deutschen Funktionsnamen werden also intern immer übersetzt, aus einem

Trennsemikolon bei Parameteraufzählungen wird ein Komma, ein Dezimalkomma

bei unseren Zahlenangaben zu einem angelsächsischen Dezimalpunkt, usw.

Eine Gegenüberstellung eines Teils der deutschen und englischen Begriffe befindet

sich im Installationsverzeichnis von Office in der Datei VBAListe.xls. Sehr hilfreich

ist für diesen Zweck im Internet der Excel-Formel-Übersetzer unter http://de.excel-

translator.de.

Absolute oder relative Bezugsart

1 Hier wird grundsätzlich von einer deutschsprachigen Excel-Version ausgegangen.

Function UmgebungsVariable() UmgebungsVariable = Environ("Path") End Function

Page 68: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

68

Eine weitere Besonderheit der Excel-Funktionen, dass ihre Parameter mit absolutem

oder relativem Bezug zur aktuellen Cursor-Position eingegeben werden können.

Standardmäßig werden die Spalten der Arbeitsblätter von Excel mit Buchstaben A,

B, …, Z, AA, AB, …usw. sowie die Zeilen sowie die Zeilen mit Nummern 1, 2, 3, …

usw. bezeichnet.

Für Programmierzwecke ist es aber praktischer, wenn sowohl die Zeilen als auch die

Spalten durchnummeriert sind. Dafür hat Excel das Z1S1-Bezugssystem in der

deutschen Version bzw. das R1C1-Bezugssystem in der englischsprachigen

Originalversion. Unter der Registerkarte Datei Optionen Formeln kann man

diese Bezugsart übrigens einstellen.

REFERENZ (DEUTSCH)

REFERENZ (ENGL.)

BEDEUTUNG

Z(-10)S R[-10]C Ein relativer Bezug auf die Zelle, die sich in derselben Spalte zehn Zeilen über der aktiven Zelle befindet.

Z(10)S(5) R[10]C[5] Ein relativer Bezug auf die Zelle, die sich zehn Zeilen unter und fünf Spalten rechts von der aktiven Zelle befindet.

Z10S5 R10C5 Ein absoluter Bezug auf die Zelle, die sich in der zehnten Zeile und in der fünften Spalte befindet.

Z(-1) R[-1] Ein relativer Bezug auf die gesamte Zeile oberhalb der aktiven Zelle.

Z R Ein absoluter Bezug auf die aktuelle Zeile.

Tabelle: Relative und absolute Positionsangaben im Z1S1- bzw. R1S1-Bezugssystem

Z1S1-Bezugsart

A.4.4.2 Verwendung in VBA-Prozeduren

Die Excel-Tabellenfunktionen können in ihrer englischen Originalbezeichnung

auch in VBA eingesetzt werden. Dazu muss man sie zunächst aber als solche

kenntlich machen, indem ihnen ein Application oder ein WorksheetFunction

voranstellt wird.

Page 69: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

69

Bei der Verwendung von WorksheetFunction bietet der Editor Hilfestellungen für

die Auswahl der Funktionen und deren Argumente an.

Application ist vorteilhaft für den Zweck der Abwärtskompatibilität von Excel-

Versionen und für die Rückgabe von Fehlerwerten.

A.4.4.3 VBA-Befehle für die Zellenbelegung in Arbeitsblättern

Value: Eintrag eines absoluten Wertes

Formula: Eintrag einer Formel mit absolutem Zellbezug

‘ ohne Editierhilfe Public Sub Average_Beispiel1() Dim Bereich As Range Set Bereich = Sheets("Tabelle1").Range("A1:A10") MsgBox Application.Average(Bereich) End Sub ‘ mit Editierhilfe Public Sub Average_Beispiel2() Dim Bereich As Range Set Bereich = Sheets("Tabelle1").Range("A1:A9") MsgBox WorksheetFunction.Average(Bereich) End Sub Public Sub Average_Beispiel3() Dim Bereich As Range Set Bereich = Sheets("Tabelle1").Range("A1:A8") MsgBox Application.WorksheetFunction.Average(Bereich) End Sub

‘ Die Zelle B1 erhält den Wert der Funktion Sub Average_Value() Dim Bereich As Range Set Bereich = Sheets("Tabelle1").Range("A1:A10") Cells(1,2).Value = WorksheetFunction.Average(Bereich) End Sub

‘ Die Zelle B2 erhält die Formel =MITTELWERT(A1:A10) ‘ Die Bereichsangabe erfolgt absolut Sub Average_AbsoluteFormel() Range("B2").Formula = "=AVERAGE(A1:A10)" End Sub

Page 70: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

70

FormulaR1C1: Eintrag einer Formel mit relativem Zellbezug

Der relative Bezug wird in eckigen Klammern bei den Rows und Columns

angegeben. Im folgenden Beispiel treten relativer und absoluter Zellbezug auf.

Der absolute Bezug wird ohne Klammern bei den Rows und Columns angegeben.

FormulaLocal: Eintrag einer Formel in deutscher Syntax Möchte man nicht auf die deutsche Syntax verzichten, so kann man die

FormulaLocal-Eigenschaft verwenden. Damit ist es möglich, Tabellenfunktionen so

anzugeben, wie man es von der Standardoberfläche gewohnt ist.

FormulaLocalR1C1: Eintrag einer Formel in deutscher Syntax mit relativem Zellbezug

‘ Die Zelle B3 erhält die Formel =MITTELWERT(A1:A10) ‘ Die Bereichsangabe erfolgt relativ zu B3 Sub Average_RelativeFormelA() Range("B3").Select Range("B3").FormulaR1C1 = "=AVERAGE(R[-1]C[-1]:R[7]C[-1])" End Sub

‘ Die Zelle B4 erhält die Formel =MITTELWERT(A$1:A$10) ‘ Die Bereichsangabe erfolgt relativ und absolut zu B4 Sub Average_RelativeFormelB() Range("B4").Select Range("B4").FormulaR1C1 = "=AVERAGE(R1C[-1]:R10C[-1])" End Sub

‘ Die Zelle C2 erhält die Formel =MITTELWERT(A1:A10) ‘ Die Formel wird in deutscher Syntax eingegeben. ‘ Die Bereichsangabe erfolgt absolut zu C2 Sub Average_AbsoluteFormelLocal() Range("C2").FormulaLocal = "=MITTELWERT(A1:A10)" End Sub

Page 71: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

71

Man beachte in der FormulaR1C1Local-Schreibweise die runden anstelle der

eckigen Klammern für die relativen Bezüge sowie die Zeilenangabe „Z“ anstelle von

„C“ bzw. die Spaltengabe „S“ anstelle von „C“.

Im nachfolgenden Beispiel treten relativer und absoluter Zellbezug gemeinsam auf:

Grundsätzlich sollte mit Formula gearbeitet und FormulaLocal gemieden werden,

um problemlos Makros austauschen zu können.

A.5 Verwendung von Objekten in Excel-VBA

Objekte bilden das Gerüst der Office-Anwendungen. Sie stellen die wichtigen

Elemente einer Anwendung dar, bei Excel: Tabellen, Zellbereiche, einzelne Zellen,

Diagramme, Eingabeformulare oder Reports/Berichte, aber auch Fenster, Module,

Steuerelemente, Statusleisten, Menüelemente etc.

In Excel-VBA steht eine unübersichtlich anmutende Vielzahl von Objekten zur

Verfügung. Vollständige Auflistungen mit Details und Beispielen zu den aktuell

gültigen Objekten findet man im Objektkatalog und in der Excel-Hilfe

Excel2010-Entwicklerreferenz Excel-Objektmodellreferenz. Wir werden hier

nur die wesentlichen Aspekte des Excel Objektmodells behandeln.

‘ Die Zelle C3 erhält die Formel =MITTELWERT(A1:A10) ‘ Die Formel wird in deutscher Syntax eingegeben. ‘ Die Bereichsangabe erfolgt relativ zu C3 Sub Average_RelativeFormelALocal() Range("C3").Select Range("C3").FormulaR1C1Local = "=MITTELWERT(Z(-2)S(-2):Z(7)S(-2))" End Sub

‘ Die Zelle C4 erhält die Formel =MITTELWERT(A$1:A$10) ‘ Die Formel wird in deutscher Syntax eingegeben. ‘ Die Bereichsangabe erfolgt relativ und absolut zu C4 Sub Average_RelativeFormelBLocal() Range("C4").Select Range("C4").FormulaR1C1Local = "=MITTELWERT(Z1S(-2):Z10S(-2))" End Sub

Page 72: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

72

A.5.1 Begriffsklärung

Im Rahmen der objektorientierten Programmierung sind Objekte Abstraktionen von

Dingen der realen Welt. Einem Objekt ordnet man Eigenschaften, Methoden,

Ereignisse sowie Unterobjekte zu.

Eigenschaften (auch Attribute) sind die Merkmale eines Objektes. Sie werden durch

Zustandsvariablen ausgedrückt. Werden Eigenschaften verändert, so ändert sich das

Verhalten oder das Erscheinungsbild. Sobald ein Objekt eine konkrete Ausprägung

erhalten hat, (es instanziiert wurde), können die Eigenschaften abgefragt und ggf.

festgelegt werden. Einige Eigenschaften sind schreibgeschützt und können daher

nur gelesen, aber nicht geändert werden.

Methoden (engl. methods) beschreiben einen Vorgang bzw. eine Tätigkeit, die mit

einem Excel-Objekt ausgeführt werden kann, um dessen Eigenschaften zu ermitteln

oder zu verändern. Wenn man Objekte als Substantive und Eigenschaften als

Adjektive in einem Satz sieht, sind Methoden die Verben, mit denen ausgedrückt

werden kann, was das Substantiv macht.

Klassen sind die Zusammenfassung der Eigenschaften und Methoden von

Objekten. Sie stellen damit also einen Objekttyp dar, der sich von anderen

Objekttypen durch die Menge und die Art seiner Eigenschaften und Methoden

unterscheidet. Die Begriffe Objekt und Klasse werden bei Microsoft teilweise leider

synonym verwendet, was manchmal zur Verwirrung beiträgt. In Rahmen der

objektorientierten Programmierung wäre eine Klasse aber eine Vorlage, sozusagen

ein Bauplan, oder eine Schablone, für die Erstellung eines konkreten Objekts mit

konkreten Eigenschaften. Dieses konkrete Objekt besitzt dann alle grundsätzlichen

Eigenschaften und Methoden der Klasse. Man spricht bei einer solchen

Konkretisierung auch von einer Instanz der Klasse und nennt den Prozess

Instanzierung1.

Ereignisse sind Zustandsbeschreibungen eines Objektes, auf die mit bestimmten

Programmabläufen, den Ereignisprozeduren reagiert wird. Die Ereignisse können

1 Man findet auch die Schreibweise Instanziierung. Dem wird hier Instanzierung im Sinne der neuen

Rechtschreibung vorgezogen.

Page 73: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

73

durch systemexterne Aktionen (Mausklicks, Tastatureingaben, etc.) oder

systeminterne Aktionen (Variablen erhalten bestimmte Werte) ausgelöst werden. Das

kann im Rahmen der Excel Objekthierarchie auf den drei Ebenen Application,

Workbook und Worksheet geschehen. Welche Ereignisse für diese Ebenen

verfügbar sind, kann im Objektkatalog nachgeschlagen werden. Ereignisse sind

entweder auf eine einzige Ebene begrenzt oder sind auf mehreren Ebenen

verfügbar.

A.5.2 Schreibweisen

Zur ausführlichen Bezeichnung eines Objektes, einer Methode, einer Eigenschaft

oder eines Ereignisses benutzt man die Schreibweise:

Bei dieser Schreibweise muss in Excel VBA aber nicht immer die vollständige

Auflistung mit dem Objektbezeichner erfolgen, wenn aus dem Zusammenhang klar

ist, worauf man sich bezieht oder wenn Grundeinstellungen (Default-Werte) genutzt

werden. Befindet man sich beispielsweise in der Prozedur eines Eingabeformulars

mit dem Namen UserForm1, so ist die Standardeinstellung für die Eigenschaft einer

TextBox „Text“. Dann kann man alternativ schreiben:

Beispiel

Oft kommt es in Prozeduren vor, dass mehrere Elemente eines Objektes

hintereinander verarbeitet werden. Dann kann man folgende Schreibweise benutzen:

Objekt[.Unterobjekt…][.Methode | .Eigenschaft | .Ereignis ]

UserForm1.TextBox1.Text = „Das ist ein Eingabefeld!“ TextBox1.Text = „Das ist ein Eingabefeld!“ TextBox1 = „Das ist ein Eingabefeld!“

Page 74: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

74

A.5.3 Objektlisten

Microsoft unterscheidet grundsätzlich zwischen Auflistungen von Objekten und den

Objekten an sich. Objekte kann man in Auflistungen verwalten und werden

traditionell in Listen ablegen, die den Namen des Objekts tragen, gefolgt von einem

Plural-„s“, z. B. Workbooks für die Workbook-Objekte oder Worksheets bei den

Worksheet-Objekten. Innerhalb dieser Auflistungen können Objekte über einen

Namen oder einen Index angesprochen werden.

Im nachfolgenden Beispiel wird das erste Fenster in der Arbeitsmappe „Tourenplan“

genannt und diese Bezeichnung dann als Index in der Windows-Auflistung

verwendet.

Solche Objektlisten lassen sich auch für eigene Objekte mithilfe der Klasse

Collection erstellen.

Collection (innerhalb der VBA Bibliothek)

A.5.4 Objektvariablen

Mit der Dim-Anweisung kann Variablen der Datentyp Objekt zugewiesen werden.

With Objektname .Eigenschaft1 = Wert .Eigenschaft2 = Wert .Eigenschaft3 = Wert … .Methode1([Parameterliste1] .Methode2([Parameterliste2] .Methode3([Parameterliste3] … End With

ActiveWorkbook.Windows(1).Caption = "Tourenplan" ActiveWorkbook.Windows("Tourenplan").ActiveSheet.Calculate

Page 75: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

75

Die Zuweisung von Objekten an Variable geschieht nicht über „=“ sondern über die

Set-Anweisung:

Für Objektvariablen kann man Bezeichnungen wählen, die in der Schreibweise z.T.

wesentlich kürzer sind als die Objekte unter Excel, mit denen sie referieren. Damit

kann man Schreibarbeit ersparen.

A.5.5 Das Excel Objektmodell

Programmierobjekte werden in der Hierarchie des Objektmodells der Anwendung

organisiert und spiegeln so grob die Programmoberfläche wider.

Abbildung: Excel Objektmodell

Dabei bedeutet:

Application

Workbook

Worksheet

Range

[...]

[...] [...]

[...] [...]

[...]

Dim Objektvariable As Objekt

Set Objektvariable = Objektausdruck

Set myObject = ActiveWorkbook MsgBox myObject.Sheets(2).Name

Page 76: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

76

• Application Object die gesamte Excel-Anwendung

• Workbook Object die Excel-Arbeitsmappe

• Worksheet Object ein Tabellenblatt

• Range Object ein Zellenbereich bestehend aus einer oder

mehreren Zellen

A.5.5.1 Das Application-Objekt

Das Application-Objekt stellt die Excel-Anwendung selbst dar und somit die höchste

Ebene der Excel-Objekthierarchie. Neben zahlreichen Informationen über die

laufende Anwendung (die derzeit geöffneten Benutzer-Objekte) werden

Einstellungen und Optionen zur Verfügung gestellt, die sich auf die gesamte

Anwendung auswirken, ebenfalls Methoden, die Objekte der obersten Ebene

zurückgeben.

Viele Eigenschaften und Methoden des Application-Objekts sind global. Bei der

Schreibweise muss deshalb nicht der Objektbezeichner Application mit angegeben

werden. Gleiches gilt für Eigenschaften und Methoden, die gängige Objekte der

Benutzeroberfläche zurückgeben (z.B. ActiveCell, ActiveSheet).

Application-Object

Um Excel von „außen auf zu rufen“, wird die Activate-Eigenschaft hinsichtlich eines

Window oder Workbook-Objektes verwendet:

A.5.5.2 Das Workbook-Objekt

Mit dem Workbook-Objekt wird auf eine einzelne Arbeitsmappe zugegriffen, also die

gespeicherte Excel-Datei. Soll ein Workbook-Objekt aus der Liste der Workbooks

Application.Windows("VBATest.xlsx").Activate 'oder Application.Workbooks("VBATest.xlsx ").Activate

Page 77: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

77

ausgewählt werden, so geschieht das in der Regel durch die Angabe des

Dateinamens.

Workbook-Objekt, Workbooks-Objekt

A.5.5.3 Das Worksheet-Objekt

Worksheet-Objekte sind die einzelnen Tabellenblätter einer Excel-Anwendung. Sie

können über die Worksheets-Auflistungen per Name oder Index aufgerufen werden:

Worksheet-Objekt; Worksheets-Objekt

A.5.5.4 Das Range-Objekt

Das Range-Objekt ist die wichtigste Abstraktion eines Worksheet-Objekts. Mit

diesem Objekt werden einzelne Zellen, Zeilen, Spalten oder allgemeine

(zusammenhängende oder nicht zusammenhängende) Zellbereiche dargestellt,

wobei eines oder mehrere Arbeitsblätter angesprochen werden können.

Als spezielle Zellbereiche werden Zeilen mit Rows bezeichnet, Spalten mit

Columns.

Ein Cell-Object gibt es übrigens nicht in der Excel-Objekthierarchie, dafür kann man

aber die Cells-Eigenschaft des Range-Objektes nutzen.

Range-Objekt, Ranges-Objekt

Workbooks(“VBATest.xlsx”).Activate

Worksheets("Tabelle1").Activate ‘oder Worksheets(1).Activate

Page 78: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

78

A.5.6 Spezielle Verwendungen des Excel Objektmodells

In diesem Abschnitt werden auf der Grundlage von Excel-Objekten ein paar wichtige

praktische Vorgehensweisen für die Ablaufsteuerung und die Navigation innerhalb

von Tabellen zusammengefasst. Eine umfangreichere Übersicht über die wichtigsten

Excel-Objekte liefert Anhang D.

A.5.6.1 Positionierung in Range-Objekten

Im Excel A1-Standardformat (max. 65536 Zeilen als Zahlen 1, 2, 3, …; max. 256

Spalten als Buchstaben A, B, C, …) wird:

• eine einzelne Zelle durch ihre Adresse in der Form “B3“ dargestellt,

• ein einzelner Zellbereich durch per Doppelpunkt getrennte Angabe der

Adresse links oben und der Adresse rechts unten, z.B. “D4:F14“ oder

• ein allgemeiner Zellbereich durch eine per Kommata getrennte Liste

mehrerer Adressen und/oder Zellbereiche wie “B3, D4:F14, X12, G20:T40“

Die Bezeichnung ist dabei immer in Hochkommata eingeschlossen.

Für die Positionierung mit obiger Zellbereichs-Angabe gibt es zwei Syntax-

Versionen:

Die erste Syntax-Version arbeitet mit einem einzigen Zellbereich, der im

Standardformat angegeben ist. Bei der zweiten Syntax-Variante stellt Zellbereich1

die linke obere Ecke und Zellbereich2 die rechte untere Ecke des Bereiches dar.

Zellbereich1 und 2 können Adressen von Einzelzellen oder allgemeine Zellbereiche

sein. Bei Überschneidung wird die Vereinigungsmenge genommen.

Objekt.Range(Zellbereich) Objekt.Range(Zellbereich1, Zellbereich2)

Page 79: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

79

Die erste Anweisung arbeitet mit dem Bereich B1:D3, die zweite mit B1:E5.

A.5.6.2 Positionierung mit der Cells-Eigenschaft

So wie das R1C1-Format bei den Funktionen ist es für die Berechnung von

Zelladressen und für die Benutzung von Variablen für Zelladressen vorteilhaft, für die

Zeilen und Spalten eines Tabellenblattes Zahlen zu verwenden.

Mit der Cells-Eigenschaft von Range-Objekten gibt es dann folgende Syntax-

Varianten:

In der ersten Variante ist wieder die obere linke Ecke bis zur unteren rechten Ecke

gemeint, in der zweiten das angegebene Element. Die dritte Variante gibt alle Zellen

des Tabellenblattes an.

A.5.6.3 Cursorposition feststellen

ActiveCell ist eine Eigenschaft des Application-Objekts, die eine Range-Objekt

zurück gibt. ActiveSheet gibt als Eigenschaft von Application den Namen der aktiven

Tabelle zurück oder legt ihn fest. Damit kann man die aktuelle Cursorposition

ermitteln:

• ActiveCell.Address

Adresse der aktiven Zelle des aktiven Tabellenblattes

Worksheets(“Tabelle1“.Range(“B1“,“D3“) Worksheets(“Tabelle1“.Range(“B1:C3“,“C1:E5“)

Objekt.(Cells(Row1,Column1), Cells(Row2,Column2)) Objekt.Cells(Row,Column) Objekt.Cells

Page 80: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

80

• ActiveCell.Row

Zeilennummer der aktiven Zelle des aktiven Tabellenblattes

• ActiveCell.Column

Spaltennummer der aktiven Zelle des aktiven Tabellenblattes

• ActiveCell.Parent.Name

Name der Tabelle mit der aktiven Zelle des aktiven Tabellenblattes

• ActiveSheet.Parent.Name

Name der Arbeitsmappe des aktiven Tabellenblattes

A.5.6.4 Zellen, Zellbereiche, Zeilen, Spalten gezielt auswählen

Nachdem man ein Arbeitsblatt ausgewählt hat, können einzelne Zellen mit dem

Range-Objekt über Activate markiert werden, also der Cursor gesetzt werden.

Für Zellbereiche benutzt man Select, Zeilen und Spalten werden ebenfalls über

Select markiert.

Beispiele:

A.5.6.5 Relatives Versetzen von Bereichen und Cursor

Range(Zellbereich).Select Cells(RowIndex,ColumnIndex).Select Rows(RowIndex).Select Columns(ColumnIndex).Select

Worksheets(“Tabelle1”).Activate Range(“C2:F14”).Select Range(“B2”).Activate Rows(17).Select Columns(19).Select

Page 81: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

81

Offset ist eine Eigenschaft des Range-Objektes, das einen Bereich darstellt, der

gegenüber dem angegebenen Bereich versetzt ist.

Beispiel

A.5.6.6 Bereichsnamen vergeben mit Name-Eigenschaft

Mithilfe der Namensvergabe an Zellenbereiche lässt sich die Schreibweise in vielen

Fällen übersichtlicher gestalten.

Rangeobjekt.Offset(rowOffset,columnOffset) rowOffset (optional): Anzahl der Versatzzeilen nach unten (positiv), 0, oder bei negative Werten nach oben. columnOffset (optional): Anzahl der Versatzspalten nach rechts (positiv), 0, oder bei negative Werten nach links.

‘ Cursor 4 nach unten und 2 nach links Worksheets(“Tabelle1”).Activate Range.Offset(rowOffset,columnOffset) ActiveCell.Offset(4,-2) ‘ oder ActiveCell.Offset(rowOffset:=4, columnOffset:=-2)

‘ Namensvergabe Range(”A1”).Name = “Km_pro_Std” Range(Cell(1,2)).Name = “kWh” ‘Wertzuweisung Range(“km_pro_Std”) = 60 ‘ Löscht den Namen wieder: Range(”Km_pro_Std”).Name.Delete

Page 82: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

82

A.5.6.7 Wertzuweisungen mit Value-Eigenschaft

Als Default-Wert kann die Angabe „Value“ zu einem Range-Objekt entfallen.

A.5.6.8 Formeln eintragen mit der Formula-Eigenschaft

A.5.6.9 Formatierung von Zellbereichen

Hinsichtlich der Zellformatierung können Schrifttypen, Rahmen und Farben vergeben

werden.

Die allgemeine Syntax lautet:

Range(”A1”).Value = “Die Antwort aller Fragen” ‘ auch: Range(”A1”) = “Die Antwort aller Fragen” ‘ Range(Cell(1,2)).Value = 42 ‘ auch: Range(Cell(1,2)) = 42

Range(”A1”).Formula = “= A2 + A3” ‘ Sheets(“Tabelle1”).Cells(1,1)).Formula = “= A2 + A3” ‘ auch: ActiveCell.Formula = “= A2 + A3”

‘Schrifttypen Range.Font.Eigenschaft = Wert

'Rahmen Objekt.Borders Objekt.Borders(Index)

Page 83: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

83

Für weitere Details siehe die entsprechenden Eigenschaften des Range Objektes

A.5.6.10 Löschen von Zellbereichen

Es gibt unterschiedliche Möglichkeiten, Zellen oder Zellinhalte zu löschen. Die

einfachste Möglichkeit im angegeben Bereich alle Einträge und Formatierungen zu

löschen geht über die Clear-Methode eines Range-Objektes:

A.5.7 Erstellung eigener Klassen

A.5.7.1 Definition einer Klasse

Für die Definition eigener Klassen wird in VBA das Klassenmodul verwendet. Dieses

besondere Modul dient als Container für die Definition von Eigenschaften und

Methoden einer Klasse. Der Name des Klassenmoduls lässt sich im

Eigenschaftenfenster einstellen. Nach der Definition einer Klasse wird diese auch im

Objektkatalog aufgeführt.

Das Attribut Instancing ist standardmäßig auf Private gesetzt, so dass die

Definitionen in dieser Klasse nur auf das Modul beschränkt sind.

A.5.7.2 Eigenschaften

‘Hintergrundfarben Rahmenfarben Schriftfarben Range.Interior.ColorIndex = Wert Range.Borders.ColorIndex = Wert Range.Font.ColorIndex = Wert ‘oder mit Mischfarben Range.Interior.Color = RGB(Rotwert, Grünwert, Blauwert) Range.Borders.Color = RGB(Rotwert, Grünwert, Blauwert) Range.Font.Color = RGB(Rotwert, Grünwert, Blauwert)

Range(Zellbereich).Clear

Page 84: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

84

Die im Modulkopf einer Klasse deklarierten Variablen sind Eigenschaften der Klasse.

Auf Private deklarierte Variable/Eigenschaften können nur Methoden der eigenen

Klasse zugreifen. Eine mit Public deklarierte Variable/Eigenschaft kann von jedem

Objekt und jeder Prozedur aus gelesen und verändert werden.

Um Eigenschaftswerte nur auslesen aber nicht verändern zu können, kann man

Public Functions benutzen:

Eine weitere Möglichkeit zur Definition von Eigenschaften ist durch die schon

dargestellten Property-Prozeduren gegeben, die beim Zugriff auf die Eigenschaft

ausgeführt werden. Der Rumpf dieser Prozeduren wird beim Anlegen einer neuen

Prozedur - wie ebenfalls schon beschrieben - automatisch erzeugt:

• Property Get: Eine Prozedur, die den Wert einer Eigenschaft zurückgibt

• Property Let: Eine Prozedur, die den Wert einer Eigenschaft festlegt

• Property Set: Eine Prozedur, die einen Verweis zu einem Objekt herstellt

Property-Prozeduren treten normalerweise paarweise auf: Property Let mit

Property Get und Property Set mit Property Get. Wird nur eine Property Get-

Prozedur deklariert, so ist die Eigenschaft schreibgeschützt.

Public Bereich As String

Public Function Bereich() As String Bereich = “A1:B10” End Function

[Public | Private] [Static] Property {Get | Let | Set}

Eigenschaftsname [(Argumente)] [As Typ]

Anweisungen

End Property

Page 85: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

85

Im Gegensatz zu Public-Variablen können Property-Prozeduren im Objektkatalog

durch Texte beschrieben werden.

In der Regel sollten Eigenschaften als Private deklariert werden. Zugriff auf

Eigenschaften sollte nur durch als Public deklarierte Methoden möglich sein.

A.5.7.3 Methoden

Die Methoden der Klasse werden im Klassenmodul im Anschluss an die

Eigenschaften als Sub- oder Function-Prozedur mit den Zugriffsmöglichkeit Public

oder Private deklariert. Auf Private deklarierte Methoden kann nur innerhalb der

eigenen Klasse zugegriffen werden, auf Public deklarierte Methoden von jedem

Objekt und jeder Prozedur aus.

A.5.7.4 Spezielle Ereignisprozeduren: Konstruktor und Destruktor

Wählt man im Code-Fenster im Objekt-Feld den Eintrag Class, so erscheinen

Programmgerüste für die Methode Class_Initialize(), den sogenannte Konstruktor,

und für Class_Terminate(), den Destruktor.

Diese beiden Methoden sind standardmäßig in jeder Klasse angelegt. Bei jeder

Instanzierung eines Objektes dieser Klasse wird automatisch der Konstruktor

gestartet, vor jeder Löschung eines Objektes dieser Klasse der Destruktor. Als

Private-Prozeduren können sie nicht von außen aufgerufen werden. Im Konstruktor

können Eigenschaften der Klasse auf Anfangswerte gesetzt werden, im Destruktor

Aufräumarbeiten durchgeführt werden, beispielsweise dynamisch diejenigen Objekte

gelöscht werden, die durch die Instanz erzeugt wurden.

Private Sub Class_Initialize() End Sub Private Sub Class_Terminate() End Sub

Page 86: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

86

A.5.8 Erzeugung neuer Objekte

Um die angelegten Funktionalitäten einer Klasse nutzen zu können, müssen von der

Klasse Instanzen, also die Objekte gebildet werden. Aus jeder Klasse können

beliebig viele1 Instanzen erzeugt werden, die alle nebeneinander existieren.

Mit dem Schlüsselwort New werden neue Instanzen einer Klasse gebildet.

Beispielsweise in der Dim-Anweisung:

Das Schlüsselwort New kann je nach Gültigkeitsbereich und Lebensdauer

entsprechend auch im Zusammenhang mit Private, Public, Set und Static benutzt

werden.

New

Das Objekt wird mit der Deklarationsanweisung noch nicht erzeugt.2 Erst der Zugriff

auf irgendeine Eigenschaft oder Methode der Objektvariablen lässt das Objekt

tatsächlich im Speicher entstehen. Greift man nicht auf das Objekt zu, wird auch

keine Instanz erzeugt. Um die sofortige Objekterzeugung zu erzwingen3, kann man

auch die Methode der frühen Bindung für die Instanzierung verwenden:

Frühe Bindung:

1 Natürlich begrenzt durch den zur Verfügung stehenden Speicherplatz 2 Was aus Platzgründen manchmal als vorteilhaft erscheint. 3 Was aus Laufzeitgründen manchmal als vorteilhaft erscheint.

Dim Objektvariable As New Klassenname

Dim Objektvariable As KlassenName Set Objektvariable As New KlassenName

Page 87: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

87

Alternativ gibt es auch noch die Methode der späten Bindung. Der Objektvariable

wird zunächst der allgemeine Datentyp Object zugewiesen und dann später der

konkrete Objekttyp, also die Klasse zugewiesen:

Späte Bindung:

Bei der frühen Bindung kann man als Programmierer den Vorteil von IntelliSense

nutzen. Bei der späten Bindung kann man nutzen, dass die Variable jeden beliebigen

Objekttyp aufnehmen kann, sogar unterschiedliche Typen nacheinander.

A.5.9 Entfernen von Objekten

In VBA muss ein Objekt nicht explizit gelöscht werden. Objekte in nicht als Static

deklarierten Prozeduren werden automatisch aus dem Speicher entfernt. Gleiches

gilt, falls keine Variable mehr auf das Objekt zeigt. Das ist beispielsweise dann der

Fall, wenn mit dem Set-Befehl eine Objektvariable, die vorher dem betreffenden

Objekt zugeordnet wurde, nun auf ein anderes Objekt zeigt oder den Wert „Nothing“

erhält.

A.5.10 Erstellung von Ereignisprozeduren

A.5.10.1 Allgemeine Ereignisprozeduren

Dim Objektvariable As Object … … Set Objektvariable As New KlassenName

Dim Objektvariable As Object … Set Objektvariable As New KlassenName1 … Set Objektvariable As New KlassenName2 Set Objektvariable = Nothing

Page 88: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

88

Ereignisprozeduren reagieren auf Ereignisse, die durch externe oder interne

Programmaktionen ausgelöst werden. Sie sind für alle beliebigen geöffneten Blätter

oder Arbeitsmappen verfügbar und machen nur in Klassen einen Sinn.

Der Prozedurname setzt sich bei Microsoft traditionell aus dem Klassennamen

verbunden mit dem Ereignisnamen über einen Unterstrich zusammen, z. B.

Worksheet_Change. Man findet diese Ereignisprozeduren in dem Klassenmodul

eines Tabellenblattes. Das erhält man durch Rechtsklick auf Tabellenreiter und

Code anzeigen wählen.

A.5.10.2 Eigene Ereignisprozeduren

In Microsoft Excel können Ereignisprozeduren auf der Ebene von

• Arbeitsblatt,

• Diagramm,

• Abfragetabelle,

• Arbeitsmappe oder

• Anwendung

erstellt werden.

Ereignisse können dabei auf mehreren Ebenen auftauchen. So tritt beispielsweise

das Activate-Ereignis nur auf der Blattebene ein. Das SheetActivate-Ereignis ist

dagegen sowohl auf der Arbeitsmappen- als auch auf der Anwendungsebene

verfügbar: für eine Arbeitsmappe, wenn ein beliebiges Blatt der Arbeitsmappe

aktiviert wird, auf der Anwendungsebene, wenn ein beliebiges Blatt in einer

beliebigen Arbeitsmappe geöffnet wird.

Die vorgenannten eingebauten Excel-Klassen können mit ihren Ereignissen in neue

Klassen eingebunden werden. Sinnvoll ist dies beispielsweise, wenn eine

Worksheet_Change-Ereignisprozedur allgemeingültig werden soll und sich so nicht

nur auf die Arbeitsmappe beschränkt, in der sich der Code befindet.

A.5.10.3 Objekt mit WithEvents erstellen

Page 89: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Crash-Kurs in Excel VBA

89

Um Ereignisprozeduren für ein Diagramm, eine QueryTable-Objekt oder ein

Application-Objekt zu schreiben, muss unter Verwendung des Schlüsselwortes

WithEvents in einem Klassenmodul zunächst ein neues Objekt erstellt werden:

Das Schlüsselwort WithEvents gibt an, dass die Objektvariable auf Ereignisse

reagieren kann, die von einem ActiveX-Objekt wie einer Befehlsschaltfläche oder

einem Textfeld ausgelöst wurden. Eine solche Deklaration ist auf Klassenmodule

beschränkt und die betreffende Klasse muss dabei natürlich Ereignisse auslösen. Mit

WithEvents können beliebig viele Variablen deklarieren werden, jedoch keine

Datenfelder. Instanzierung mit New kann nicht zusammen mit WithEvents

verwendet werden.

WithEvents

A.5.10.4 Deklaration einer Objektvariablen vom Typ Application

Das Application-Objekt bietet eine Vielzahl von Ereignissen der Excel-Anwendung

an, die ausgewertet werden können. Bevor man jedoch ein Ereignis mit dem

Application-Objekt verwenden kann, muss

• ein Klassenmodul, beispielsweise mit dem Namen EventClassModule erstellt

• und für Ereignisse ein Objekt, beispielsweise mit dem Namen App, vom Typ

Application deklariert werden.

Das neue Klassenmodul enthält dann den folgenden Code:

Das neue Objekt wird durch den VisualBasic Editor im Klassenmodul dann im

Dropdown-Listenfeld Objekt angezeigt. Wählt man das neue Objekt App im

Anzeigefeld Objekt aus, so werden die gültigen Ereignisse für dieses Objekt im

Dropdown-Listenfeld Prozedur angezeigt.

[Dim | Public | Private] WithEvents Objektvariable As Klassenname

Public WithEvents App As Application

Page 90: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

90

A.5.10.5 Eingabe des Programmcodes für die Ereignisprozedur

Nun können Ereignisprozeduren für das neue Objekt in Abhängigkeit von

Ereignissen hinzugefügt werden. Mithilfe der EnableEvents-Eigenschaft können

dabei Ereignisse gezielt aktiviert und deaktiviert werden.

Beispielsweise führt das Speichern einer Arbeitsmappe mit der Save-Methode zum

Auftreten des BeforeSave-Ereignisses. Das Aufrufen der zugehörigen

Ereignisprozedur kann verhindert werden, indem die EnableEvents-Eigenschaft auf

False gesetzt wird, bevor die Save-Methode aufgerufen wird.

Beispiel

A.5.10.6 Ausführen der Ereignisprozedur

Bevor schließlich Prozeduren ausgeführt werden können, muss das deklarierte

Objekt im Klassenmodul mit dem Application-Objekt verbunden werden. Dazu kann

folgender Code verwendet werden:

Nachdem die Prozedur InitializeApp ausgeführt wurde, zeigt das App-Objekt im

Klassenmodul auf das Application-Objekt von Excel. Außerdem werden die

Ereignisprozeduren im Klassenmodul ausgeführt, sobald ein Ereignis eintritt.

Application.EnableEvents = False ActiveWorkbook.Save Application.EnableEvents = True

Dim X As New EventClassModule Sub InitializeApp()

Set X.App = Application End Sub

Page 91: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die vorinstallierten VBA-Funktionen

91

B Übersicht über die vorinstallierten VBA-Funktionen

Dieses Kapitel gibt eine Schnell-Übersicht zu den vorinstallierten VBA-Funktionen

nach Sinnzusammenhängen. Die detaillierte Syntax zu den einzelnen Funktionen

nebst Beispielen findet man in der Excel-Hilfe, Hilfe für Entwickler unter dem Visual

Basic Sprachverzeichnis Funktionen.

B.1 Datums- und Zeitfunktionen1

FUNKTION BESCHREIBUNG

CDate Wandelt eine Zeichenfolge in einen Datumswert um

Date Gibt das aktuelle Systemdatum aus

DateAdd Liefert einen Wert zurück, der ein Datum erhält, zu dem ein bestimmtes Zeitintervall addiert wurde

DateDiff Gibt einen Wert zurück, der die Anzahl der Zeitintervalle zwischen zwei bestimmten Terminen angibt

DatePart Liefert einen Wert zurück, der einen bestimmten Teil eines angegebenen Datums enthält

DateSerial Liefert einen Wert zurück, der die angegebene Jahres-, Monats- und Tageszahl enthält

DateValue Wandelt eine Zeichenfolge in einen gültigen Datumswert um

Day Extrahiert den Tag als ganzzahligen Wert (1-31) aus einem Datumswert

FileDateTime Liefert das Erstellungsdatum bzw. Änderungsdatum einer Datei zurück.

FormatDateTime Formatiert Systemkonstanten in Datums um

1 Siehe Held(2004), Seite 91.

Page 92: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

92

FUNKTION BESCHREIBUNG

Hour Liefert die Stunde aus einem Datumswert (0-23)

Minute Liefert die Minute auf dem Datumswert (0-59)

Month Liefert den Monat aus dem Datumswert (1-12)

MonthName Liefert die Zeichenfolge des Monats zurück

Now Liefert das Systemdatum inklusive der Uhrzeit

Second Gibt die Sekunden aus dem Datumswert zurück

Timer Gibt einen Wert vom Typ Single zurück, der die Anzahl der seit Mitternacht vergangenen Sekunden angibt

TimeSerial Setzt einen Datums-/Zeitwert aus Ganzzahlwerten (Sekunden, Minuten, Stunden) zusammen

TimeValue Wandelt eine Zeichenfolge in einen gültigen Zeitwert um

Weekday Gibt den Wochentag aus einem Datumswert zurück

WeekdayName Gibt den Wochentag als Zeichenfolge aus einem Datumswert zurück

Year Nummerischer Ausdruck, der einen Zeichenfolgenausdruck oder eine beliebige Kombination als Datum darstellen kann

Tabelle: Datums- und Zeitfunktionen

B.2 Textfunktionen1

1 Siehe Held(2004), Seite 122.

Page 93: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die vorinstallierten VBA-Funktionen

93

FUNKTION BESCHREIBUNG

ASC Gibt einen Integer-Wert zurück, der den Zeichencode entsprechend dem ersten Buchstaben in einer Zeichenfolge darstellt

Choose Wählt einen Wert aus einer Liste von Argumenten aus und gibt ihn zurück

Chr Gibt einen Wert vom Typ String zurück, der das Zeichen enthält, das dem angegebenen Zeichen-Code zugeordnet ist

InStr Gibt die Position des ersten Auftretens einer Zeichenfolge innerhalb einer anderen Zeichenfolge zurück

InStrRev Gibt die Position einer Zeichenfolge in einer anderen Zeichenfolge von der hinteren Position an

Join Gibt eine Zeichenfolge zurück, die sich aus der Kombination einer Reihe von untergeordneten Zeichenfolgen ergibt, die in einem Datenfeld enthalten sind

LCase Wandelt Großbuchstaben in Kleinbuchstaben um

Left Gibt einen Wert zurück, der eine bestimmte Anzahl von Zeichen ab dem ersten linken Zeichen einer Zeichenfolge enthält

Len Gibt einen Wert vom Typ Long zurück, der die Anzahl der Zeichen in einer Zeichenfolge oder die zum Speichern erforderlichen Bytes enthält

Mid Gibt einen Wert vom Typ Variant zurück, der eine bestimmte Anzahl von Zeichen aus einer Zeichenfolge enthält

Replace Liefert Zeichenfolge, in der eine festgelegte, untergeordnete Zeichenfolge mit einer festgelegten Häufigkeit durch eine andere untergeordnete Zeichenfolge ersetzt wurde

Right Gibt einen Wert zurück, der eine bestimmte Anzahl von Zeichen ab dem ersten rechten Zeichen einer Zeichenfolge enthält

Space Liefert eine Zeichenfolge vom Typ Variant zurück, die aus einer angegebenen Anzahl von Leerzeichen besteht

Spc Fügt in einer Textdatei eine bestimme Anzahl von Leerzeichen ein

Split Gibt ein nullbasiertes, eindimensionales Datenfeld zurück, das eine festgelegte Anzahl an untergeordneten Zeichenfolgen enthält

Page 94: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

94

FUNKTION BESCHREIBUNG

Str Gibt einen Wert vom Typ Variant (String) zurück, der eine Zahl darstellt

StrComp Gibt einen Wert vom Typ Variant (Integer) zurück, der das Ergebnis eines Zeichenfolgenergebnis anzeigt

StrConv Gibt einen Wert vom Typ String zurück, der die angegeben umgewandelt wurde

StrReverse Liefert eine Zeichenfolge, in der die Reihenfolge der Zeichen einer Zeichenfolge umgekehrt wurde

String Liefert eine Zeichenfolge zurück, die ein sich wiederholendes Zeichen der angegebenen Länge enthält

Switch Wertet eine Liste von Ausdrücken aus und gibt einen Wert vom Typ Variant oder einen Ausdruck zurück

Trim Gibt eine Zeichenfolge zurück, die eine Kopie einer bestimmten Zeichenfolge enthält, die keine führenden und/oder nachgestellten Leerzeichen enthält

UCase Wandelt Kleinbuchstaben in Großbuchstaben um

Tabelle: Textfunktionen

Page 95: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die vorinstallierten VBA-Funktionen

95

B.3 Dateifunktionen und Anweisungen1

FUNKTION BESCHREIBUNG

ChDir Wechselt das aktuelle Verzeichnis oder den aktuellen Ordner

ChDrive Wechselt das aktuelle Laufwerk

Close Beendet das Lesen aus und das Schreiben in eine Datei, die mit der Open-Anweisung geöffnet wurde

CurDir Gibt einen Wert zurück, der den aktuellen Pfad darstellt

Dir Gibt eine String-Zeichenfolge zurück, die den Namen einer Datei, eines Verzeichnisses oder eines Ordners darstellt

Environ Gibt die mit einer Betriebssystem-Umgebungsvariablen verbundenen Zeichenfolge zurück

EOF Liefert einen String, der den Boolean-Wert True enthält, wenn das Ende einer Datei die im Zugriffsmodus Random oder Input geöffnet wurde, erreicht worden ist

FileAttr Gibt einen Wert vom Typ Long zurück, der den Zugriffsmodus für mit der Open-Anweisung geöffnete Dateien darstellt.

FileCopy Kopiert eine Datei

FileLen Gibt einen Wert vom Typ Long zurück, der die Länge einer Datei in Bytes angibt.

FreeFile Gibt einen Wert vom Typ Integer zurück, der die nächste verfügbare Dateinummer darstellt, die die Open-Anweisung zum Öffnen einer Datei verwenden kann.

Get Liest Daten aus einer geöffneten Datenträgerdatei in eine Variable ein.

GetAttr Gibt einen Wert vom Typ Integer zurück, der die Attribute einer Datei, eines Verzeichnisses oder eines Ordners darstellt.

Input Gibt einen Wert vom Typ String zurück, der Zeichen aus einer im Modus Input oder Binary geöffneten Datei enthält.

1 Siehe Held(2004), Seite 158.

Page 96: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

96

FUNKTION BESCHREIBUNG

Kill Löscht Dateien von einem Datenträger.

Line Input Liest eine einzelne Zeile aus einer geöffneten sequentiellen Datei und weist sie einer Variablen vom Typ String zu.

LOC Gibt einen Wert vom Typ Long zurück, der die aktuelle Schreib-/Leseposition innerhalb einer geöffneten Datei angibt.

Lock/Unlock Regelt die Zugriffsmöglichkeiten anderer Prozesse auf eine Datei (oder auf Teile einer Datei), die mit der Open-Anweisung geöffnet wurde.

LSet

Richtet eine Zeichenfolge innerhalb einer Zeichenfolgenvariablen links aus oder kopiert eine Variable eines benutzerdefinierten Datentyps in eine Variable eines anderen benutzerdefinierten Datentyps.

MkDir Erstellt ein neues Verzeichnis oder einen neuen Ordner.

Name Umbenennen einer Datei

Open Öffnet eine Datei für die Ein- bzw. Ausgabe

Print Schreibt Daten, die für die Ausgabe formatiert sind, in eine sequentielle Datei.

Put Schreibt Daten aus einer Variablen in eine Datenträgerdatei.

Reset Schließt alle Datenträgerdateien, die mit der Open-Anweisung geöffnet wurden.

RmDir Entfernt ein existierendes Verzeichnis oder einen existierenden Ordner.

Seek Legt in einer mit der Open-Anweisung geöffneten Datei die Position für den nächsten Lese- oder Schreibvorgang fest.

SetAttr Legt die Attribute für eine Datei fest.

Shell

Führt ein ausführbares Programm aus. Falls erfolgreich, gibt sie einen Wert vom Typ Variant (Double) zurück, der die Task-ID des Programms darstellt. Andernfalls wird Null zurückgegeben.

Page 97: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die vorinstallierten VBA-Funktionen

97

FUNKTION BESCHREIBUNG

Write Schreibt Daten in eine sequentielle Datei.

Tabelle: Dateifunktionen und Anweisungen

B.4 Mathematische Funktionen1

FUNKTION BESCHREIBUNG

Abs Gibt einen Wert zurück, der den gleichen Typ wie der übergebene Wert hat und den Absolutwert einer Zahl angibt.

Atn Gibt einen Wert vom Typ Double zurück, der den Arcustangens einer Zahl angibt.

Cos Gibt ein Bogenmaß vom Typ Double zurück, der den Cosinus eines Winkels im Bogenmaß angibt.

DDB

Gibt einen Wert vom Typ Double zurück, der die Abschreibung eines Vermögenswertes über einen bestimmten Zeitraum mit Hilfe der geometrisch degressiven Abschreibungsmethode oder einer von Ihnen ausgewählten Methode angibt.

Exp Gibt einen Wert vom Typ Double zurück, der e (die Basis des natürlichen Logarithmus) potenziert mit einem Wert angibt.

Fix Gibt den ganzzahligen Anteil einer Zahl zurück.

FV Gibt einen Wert vom Typ Double zurück, der den zukünftigen Wert einer Annuität bei regelmäßigen, konstanten Zahlungsausgängen und einem konstanten Zinssatz angibt.

Int Gibt den ganzzahligen Anteil einer Zahl zurück.

IPmt

Gibt einen Wert vom Typ Double zurück, der die Zinszahlung für einen bestimmten Zeitraum einer Annuität bei regelmäßigen, konstanten Zahlungen und einem konstanten Zinssatz angibt.

1 Siehe Held(2004), Seite 191

Page 98: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

98

FUNKTION BESCHREIBUNG

IRR Gibt einen Wert vom Typ Double zurück, der den internen Ertragssatz für eine Folge regelmäßiger Cash Flows (Aus- und Einzahlungen) angibt.

Log Gibt einen Wert vom Typ Double zurück, der den natürlichen Logarithmus einer Zahl angibt.

NPer Gibt einen Wert vom Typ Double zurück, der die Anzahl der Zeiträume für eine Annuität bei regelmäßigen, konstanten Zahlungen und einem konstanten Zinssatz angibt.

NPV Gibt einen Wert vom Typ Double zurück, der den Netto-Barwert einer Investition bei regelmäßigen Cash Flows (Aus- und Einzahlungen) und einem Diskontsatz angibt.

Pmt Gibt einen Wert vom Typ Double zurück, der die Auszahlung für eine Annuität bei regelmäßigen konstanten Zahlungsausgängen und konstantem Zinssatz angibt.

PPmt

Gibt einen Wert vom Typ Double zurück, der den Kapitalanteil einer Auszahlung für einen bestimmten Zeitraum einer Annuität bei regelmäßigen konstanten Auszahlungen und einem konstanten Zinssatz angibt.

PV

Gibt einen Wert vom Typ Double zurück, der den Barwert einer Annuität bei zukünftig regelmäßig und konstant zu leistenden Zahlungsausgängen und einem konstanten Zinssatz angibt.

Randomize Initialisiert den Zufallszahlengenerator.

Rate Gibt einen Wert vom Typ Double zurück, der den Zinssatz einer Annuität pro Zeitraum angibt.

Rnd Gibt einen Wert vom Typ Single zurück, der eine Zufallszahl darstellt.

Round Gibt eine Zahl zurück, die auf eine festgelegte Anzahl an Dezimalpunkten gerundet wurde.

Sgn Gibt einen Wert vom Typ Variant (Integer) zurück, der das Vorzeichen einer Zahl darstellt.

Sin Gibt einen Wert vom Typ Double zurück, der den Sinus eines Winkels im Bogenmaß enthält.

SLN Gibt einen Wert vom Typ Double zurück, der die arithmetische Abschreibung eines Vermögenswertes über einen bestimmten Zeitraum angibt.

Sqr Gibt einen Wert vom Typ Double zurück, der die Quadratwurzel einer Zahl angibt.

Page 99: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die vorinstallierten VBA-Funktionen

99

FUNKTION BESCHREIBUNG

SYD Gibt einen Wert vom Typ Double zurück, der die Jahresabschreibung eines Vermögenswertes über einen bestimmten Zeitraum angibt.

Tan Gibt einen Wert vom Typ Double wieder, der den Tangens eines Winkels im Bogenmaß angibt.

Tabelle: Mathematische Funktionen

Page 100: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

100

C Übersicht über die Excel-Funktionen

Die zahlreichen in Excel implementierten Funktionen zur Tabellenkalkulation bilden

die dritte Gruppe der unter Excel-VBA ansprechbaren Funktionen. Die detaillierte

Syntax nebst Beispielen fast aller Funktionen1 in der deutschsprachigen Version

findet man in der Excel-Hilfe unter dem Visual-Basic Sprachverzeichnis unter

Funktionsreferenz oder in der Excel2010-Entwicklerreferenz unter Elemente des

Worksheet-Function-Objekts.

C.1 Finanzmathematische Funktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

AMORDEGRK AMORDEGRC Gibt die Abschreibung für die einzelnen Abschreibungszeiträume mit Hilfe eines Abschreibungskoeffizienten zurück

AMORLINEARK AMORLINC Gibt die Abschreibung für die einzelnen Abschreibungszeiträume zurück

AUFGELZINSF ACCRINTM Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers zurück, die bei Fälligkeit ausgezahlt werden

AUFGELZINS ACCRINT Gibt die aufgelaufenen Zinsen (Stückzinsen) eines Wertpapiers mit periodischen Zinszahlungen zurück

AUSZAHLUNG RECEIVED Gibt den Auszahlungsbetrag eines voll investierten Wertpapiers am Fälligkeitstermin zurück

BW PV Gibt den Barwert einer Investition zurück

DIA SYD Gibt die arithmetisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück

DISAGIO DISC Gibt den in Prozent ausgedrückten Abzinsungssatz eines Wertpapiers zurück

1 Bis auf die exotischen Add-in und Automatisierungsfunktionen, hier bleibt nur „googeln“, etwa:

http://www.codematic.net/excel-development/excel-xll/excel-xll-register.htm

Page 101: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

101

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

DURATION DURATION Gibt die jährliche Duration eines Wertpapiers mit periodischen Zinszahlungen zurück

EFFEKTIV EFFECT Gibt die jährliche Effektivverzinsung zurück

GDA2 DB Gibt die geometrisch-degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode zurück

GDA DDB

Gibt die Abschreibung eines Anlageguts für einen angegebenen Zeitraum unter Verwendung der degressiven Doppelraten-Abschreibung oder eines anderen von Ihnen angegebenen Abschreibungsverfahrens zurück

IKV IRR Gibt den internen Zinsfuß einer Investition ohne Finanzierungskosten oder Reinvestitionsgewinne zurück

ISPMT ISPMT Berechnet die während eines bestimmten Zeitraums für eine Investition gezahlten Zinsen

KAPZ PPMT Gibt die Kapitalrückzahlung einer Investition für eine angegebene Periode zurück

KUMKAPITAL CUMPRINC Berechnet die aufgelaufene Tilgung eines Darlehens, die zwischen zwei Perioden zu zahlen ist

KUMZINSZ CUMIPMT Berechnet die kumulierten Zinsen, die zwischen zwei Perioden zu zahlen sind

KURSDISAGIO PRICEDISC Gibt den Kurs pro 100 € Nennwert eines unverzinslichen Wertpapiers zurück

KURSFÄLLIG PRICEMAT Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt

KURS PRICE Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück, das periodisch Zinsen auszahlt

LIA SLN Gibt die lineare Abschreibung eines Wirtschaftsguts pro Periode zurück

MDURATION MDURATION Gibt die geänderte Dauer für ein Wertpapier mit einem angenommenen Nennwert von 100 € zurück

Page 102: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

102

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

NBW NPV

Gibt den Nettobarwert einer Investition auf Basis periodisch anfallender Zahlungen und eines Abzinsungsfaktors zurück

NOMINAL NOMINAL Gibt die jährliche Nominalverzinsung zurück

NOTIERUNGBRU DOLLARFR Wandelt eine Notierung, die als Dezimalzahl ausgedrückt wurde, in einen Dezimalbruch um

NOTIERUNGDEZ DOLLARDE Wandelt eine Notierung, die als Dezimalbruch ausgedrückt wurde, in eine Dezimalzahl um

QIKV MIRR

Gibt den internen Zinsfuß zurück, wobei positive und negative Zahlungen zu unterschiedlichen Sätzen finanziert werden

RENDITEDIS YIELDDISC Gibt die jährliche Rendite eines unverzinslichen Wertpapiers zurück

RENDITEFÄLL YIELDMAT Gibt die jährliche Rendite eines Wertpapiers zurück, das Zinsen am Fälligkeitsdatum auszahlt

RENDITE YIELD Gibt die Rendite eines Wertpapiers zurück, das periodisch Zinsen auszahlt

RMZ PMT Gibt die periodische Zahlung für eine Annuität zurück

TBILLÄQUIV TBILLEQ Gibt die Rendite für ein Wertpapier zurück

TBILLKURS TBILLPRICE Gibt den Kurs pro 100 € Nennwert eines Wertpapiers zurück

TBILLRENDITE TBILLYIELD Gibt die Rendite für ein Wertpapier zurück

UNREGER.KURS ODDFPRICE Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück

UNREGER.REND ODDFYIELD Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen ersten Zinstermin zurück

Page 103: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

103

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

UNREGLE.KURS ODDLPRICE Gibt den Kurs pro 100 € Nennwert eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück

UNREGLE.REND ODDLYIELD Gibt die Rendite eines Wertpapiers mit einem unregelmäßigen letzten Zinstermin zurück

VDB VDB Gibt die degressive Abschreibung eines Wirtschaftsguts für eine bestimmte Periode oder Teilperiode zurück

XINTZINSFUSS XIRR Gibt den internen Zinsfuß einer Reihe nicht periodisch anfallender Zahlungen zurück

XKAPITALWERT XNPV Gibt den Nettobarwert (Kapitalwert) einer Reihe nicht periodisch anfallender Zahlungen zurück

ZINS RATE Gibt den Zinssatz pro Zeitraum einer Annuität zurück

ZINSSATZ INTRATE Gibt den Zinssatz eines voll investierten Wertpapiers zurück

ZINSTERMNZ COUPNCD Gibt das Datum des ersten Zinstermins nach dem Abrechnungstermin zurück

ZINSTERMTAGE COUPDAYS Gibt die Anzahl der Tage der Zinsperiode zurück, die den Abrechnungstermin einschließt

ZINSTERMTAGNZ COUPDAYSNC Gibt die Anzahl der Tage vom Abrechnungstermin bis zum nächsten Zinstermin zurück

ZINSTERMTAGVA COUPDAYBS Gibt die Anzahl der Tage vom Anfang des Zinstermins bis zum Abrechnungstermin zurück

ZINSTERMVZ COUPPCD Gibt das Datum des letzten Zinstermins vor dem Abrechnungstermin zurück

ZINSTERMZAHL COUPNUM Gibt die Anzahl der Zinstermine zwischen Abrechnungs- und Fälligkeitsdatum zurück

ZINSZ IPMT Gibt die Zinszahlung einer Investition für die angegebene Periode zurück

ZW2 FVSCHEDULE Gibt den aufgezinsten Wert des Anfangskapitals für eine Reihe periodisch unterschiedlicher Zinssätze zurück

Page 104: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

104

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ZW FV Gibt den zukünftigen Wert (Endwert) einer Investition zurück

ZZR NPER Gibt die Anzahl der Zahlungsperioden einer Investition zurück

Tabelle: Finanzmathematische Funktionen

C.2 Logische Funktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

FALSCH FALSE Gibt den Wahrheitswert FALSCH zurück

WENN IF Gibt einen logischen Test an, der durchgeführt werden soll

NICHT NOT Kehrt die Logik der Argumente um

ODER OR Gibt WAHR zurück, wenn ein Argument WAHR ist

UND AND Gibt WAHR zurück, wenn alle zugehörigen Argumente WAHR sind

WAHR TRUE Gibt den Wahrheitswert WAHR zurück

WENNFEHLER IFERROR

Wenn eine Formel mit einem Fehler ausgewertet wird, wird ein angegebener Wert zurückgegeben; anderenfalls wird das Ergebnis der Formel zurückgegeben.

Tabelle: Logische Funktionen

C.3 Textfunktionen

Page 105: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

105

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ASC ASC

Wandelt lateinische Buchstaben voller Breite (Double-Byte-Zeichen) oder Katakana innerhalb einer Zeichenfolge in Zeichen halber Breite (Single-Byte-Zeichen) um

BAHTTEXT BAHTTEXT Wandelt eine Zahl in einen Text im Währungsformat ß (Baht) um

CODE CODE Gibt die Codezahl des ersten Zeichens in einem Text zurück

DM DOLLAR Wandelt eine Zahl in einen Text im Währungsformat $ (Dollar) um

ERSETZEN, ERSETZENB

REPLACE, REPLACEB Ersetzt Zeichen in Text

FEST FIXED Formatiert eine Zahl als Text mit einer festen Anzahl Dezimalstellen

FINDEN, FINDENB

FIND, FINDB Sucht einen in einem anderen Textwert enthaltenen Textwert (Groß-/Kleinschreibung wird beachtet)

GLÄTTEN TRIM Entfernt Leerzeichen aus Text

GROSS2 PROPER Schreibt den ersten Buchstaben aller Wörter in einem Textwert groß

GROSS UPPER Wandelt Text in Großbuchstaben um

IDENTISCH EXACT Überprüft, ob zwei Textwerte identisch sind

JIS JIS

Wandelt lateinische Buchstaben halber Breite (Single-Byte-Zeichen) oder Katakana innerhalb einer Zeichenfolge in Zeichen voller Breite (Double-Byte-Zeichen) um

KLEIN LOWER Wandelt Text in Kleinbuchstaben um

LÄNGE, LÄNGEB

LEN, LENB Gibt die Anzahl Zeichen in einer Textzeichenfolge zurück

Page 106: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

106

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

LINKS, LINKSB LEFT, LEFTB Gibt die Zeichen ganz links aus einem Textwert zurück

PHONETIC PHONETIC Extrahiert die phonetischen (Furigana-)Zeichen aus einer Textzeichenfolge

RECHTS, RECHTSB

RIGHT, RIGHTB Gibt die Zeichen ganz rechts aus einem Textwert zurück

SÄUBERN CLEAN Löscht alle nicht druckbaren Zeichen aus einem Text

SUCHEN, SUCHENB

SEARCH, SEARCH

Sucht einen in einem anderen Textwert enthaltenen Textwert (Groß-/Kleinschreibung wird nicht beachtet)

TEIL, TEILB MID, MIDB Gibt eine bestimmte Anzahl Zeichen aus einer Textzeichenfolge zurück, die an der angegebenen Stelle beginnt

TEXT TEXT Formatiert eine Zahl und wandelt sie in Text um

T T Wandelt die eigenen Argumente in Text um

VERKETTEN CONCATENATE Verknüpft mehrere Textelemente zu einem Textelement

WECHSELN SUBSTITUTE Ersetzt alten Text durch neuen Text in einer Textzeichenfolge

WERT VALUE Wandelt ein Textargument in eine Zahl um

WIEDERHOLEN REPT Wiederholt einen Text so oft wie angegeben

ZEICHEN CHAR Gibt das der Codezahl entsprechende Zeichen zurück

Tabelle: Textfunktionen

C.4 Datums- und Uhrzeitfunktionen

Page 107: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

107

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ARBEITSTAG. INTL

WORKDAY.INTL

Gibt die fortlaufende Zahl des Datums zurück, das vor oder nach einer bestimmten Anzahl von Arbeitstagen liegt. Dabei werden Parameter verwendet, um anzugeben, welche und wie viele Tage auf Wochenenden fallen.

ARBEITSTAG WORKDAY Gibt die fortlaufende Zahl des Datums vor oder nach einer bestimmten Anzahl von Arbeitstagen zurück

BRTEILJAHRE YEARFRAC Gibt die Anzahl der ganzen Tage zwischen Ausgangsdatum und Enddatum in Bruchteilen von Jahren zurück

DATUM DATE Gibt die fortlaufende Zahl eines bestimmten Datums zurück

DATWERT DATEVALUE Wandelt ein Datum in Form von Text in eine fortlaufende Zahl um

EDATUM EDATE

Gibt die fortlaufende Zahl des Datums zurück, bei dem es sich um die angegebene Anzahl von Monaten vor oder nach dem Anfangstermin handelt

HEUTE TODAY Gibt die fortlaufende Zahl des heutigen Datums zurück

JAHR YEAR Wandelt eine fortlaufende Zahl in ein Jahr um

JETZT NOW Gibt die fortlaufende Zahl des aktuellen Datums und der aktuellen Uhrzeit zurück

KALENDER WOCHE

WEEKNUM Wandelt eine fortlaufende Zahl in eine Zahl um, die angibt, in welche Woche eines Jahres das angegebene Datum fällt

MINUTE MINUTE Wandelt eine fortlaufende Zahl in eine Minute um

MONAT MONTH Wandelt eine fortlaufende Zahl in einen Monat um

MONATSENDE EOMONTH Gibt die fortlaufende Zahl des letzten Tags des Monats vor oder nach einer festgelegten Anzahl von Monaten zurück

Page 108: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

108

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

NETTO ARBEITSTAGE. INTL

NETWORKDAYS. INTL

Gibt die Anzahl der vollen Arbeitstage zwischen zwei Datumsangaben zurück. Dabei werden Parameter verwendet, um anzugeben, welche und wie viele Tage auf Wochenenden fallen

NETTO ARBEITSTAGE

NETWORKDAYS Gibt die Anzahl der vollen Arbeitstage zwischen zwei Datumsangaben zurück

SEKUNDE SECOND Wandelt eine fortlaufende Zahl in eine Sekunde um

STUNDE HOUR Wandelt eine fortlaufende Zahl in eine Stunde um

TAGE360 DAYS360 Berechnet die Anzahl der Tage zwischen zwei Datumsangaben ausgehend von einem Jahr, das 360 Tage hat

TAG DAY Wandelt eine fortlaufende Zahl in den Tag des Monats um

WOCHENTAG WEEKDAY Wandelt eine fortlaufende Zahl in den Tag der Woche um

ZEIT TIME Gibt die fortlaufende Zahl einer bestimmten Uhrzeit zurück

ZEITWERT TIMEVALUE Wandelt eine Uhrzeit in Form von Text in eine fortlaufende Zahl um

Tabelle: Datums- und Zeitfunktionen

C.5 Nachschlage- und Verweisfunktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ADRESSE ADDRESS Gibt einen Bezug auf eine einzelne Zelle in einem Tabellenblatt als Text zurück

BEREICH. VERSCHIEBEN

OFFSET Gibt einen Bezug zurück, der einen Abstand zu einem angegebenen Bezug hat

Page 109: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

109

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

BEREICHE AREAS Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Bereiche zurück

HYPERLINK HYPERLINK

Erstellt eine Verknüpfung oder einen Sprung, über die ein auf einem Netzwerkserver, in einem Intranet oder im Internet gespeichertes Dokument geöffnet wird

INDEX INDEX Verwendet einen Index, um einen Wert aus einem Bezug oder einem Array auszuwählen

INDIREKT INDIRECT Gibt einen Bezug zurück, der von einem Textwert angegeben wird

MTRANS TRANSPOSE Gibt die Transponierte einer Matrix zurück

PIVOTDATEN ZUORDNEN

GETPIVOTDATA Gibt die in einem PivotTable-Bericht gespeicherten Daten zurück

RTD RTD Ruft Echtzeitdaten von einem Programm ab, das die COM-Automatisierung unterstützt

SPALTE COLUMN Gibt die Spaltennummer eines Bezugs zurück

SPALTEN COLUMNS Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Spalten zurück

SVERWEIS VLOOKUP Sucht in der ersten Spalte einer Matrix und dann zeilenweise, um den Wert einer Zelle zurückzugeben

VERGLEICH MATCH Sucht Werte in einem Bezug oder in einer Matrix

VERWEIS LOOKUP Sucht Werte in einem Vektor oder in einer Matrix

WAHL CHOOSE Wählt einen Wert aus einer Liste mit Werten aus

WVERWEIS HLOOKUP Sucht in der obersten Zeile einer Matrix und gibt den Wert der angegebenen Zelle zurück

Page 110: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

110

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ZEILE ROW Gibt die Zeilennummer eines Bezugs zurück

ZEILEN ROWS Gibt die Anzahl der innerhalb eines Bezugs aufgeführten Zeilen zurück

Tabelle: Nachschlage- und Verweisfunktionen

C.6 Mathematische und trigonometrische Funktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ABRUNDEN

ROUNDDOWN Rundet einer Zahl in Richtung Null ab

ABS ABS Gibt den Absolutwert einer Zahl zurück

AGGREGAT

AGGREGATE

Gibt ein Aggregat in einer Liste oder Datenbank zurück

ARCCOS ACOS Gibt den Arcuscosinus einer Zahl zurück

ARCCOSHYP ACOSH Gibt den umgekehrten hyperbolischen Cosinus einer Zahl zurück

ARCSIN ASIN Gibt den Arcussinus einer Zahl zurück

ARCSINHYP ASINH Gibt den umgekehrten hyperbolischen Sinus einer Zahl zurück

ARCTAN2 ATAN2 Gibt den Arcustangens von x- und y-Koordinaten zurück

ARCTAN ATAN Gibt den Arcustangens einer Zahl zurück

Page 111: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

111

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ARCTANHYP ATANH Gibt den umgekehrten hyperbolischen Tangens einer Zahl zurück

AUFRUNDEN ROUNDUP Rundet eine Zahl von Null aus auf

BOGENMASS RADIANS Wandelt Grad in Bogenmaß (Radiant) um

COS COS Gibt den Cosinus einer Zahl zurück

COSHYP COSH Gibt den hyperbolischen Kosinus einer Zahl zurück

EXP EXP Potenziert die Basis e (EULERsche Zahl) mit der als Argument angegebenen Zahl

FAKULTÄT FACT Gibt die Fakultät einer Zahl zurück

GANZZAHL INT Rundet eine Zahl auf die nächste Ganzzahl ab

GERADE EVEN Rundet eine Zahl auf die nächste gerade ganze Zahl auf

GGT GCD Gibt den größten gemeinsamen Teiler zurück

GRAD DEGREES Wandelt Bogenmaß (Radiant) in Grad um

ISO.OBERGRENZE ISO.CEILING Gibt eine Zahl zurück, die auf die nächste Ganzzahl oder auf das kleinste Vielfache von Schritt gerundet wurde

KGV LCM Gibt das kleinste gemeinsame Vielfache zurück

KOMBINATIONEN COMBIN Gibt die Anzahl der Kombinationen für eine bestimmte Anzahl von Objekten zurück

KÜRZEN TRUNC Schneidet die Kommastellen der Zahl ab und gibt als Ergebnis eine ganze Zahl zurück

Page 112: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

112

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

LN LN Gibt den natürlichen Logarithmus einer Zahl zurück

LOG10 LOG10 Gibt den Logarithmus einer Zahl zur Basis 10 zurück

LOG LOG Gibt den Logarithmus einer Zahl zur angegebenen Basis zurück

MDET MDETERM Gibt die Determinante einer Matrix zurück

MINV MINVERSE Gibt die Inverse einer Matrix zurück

MMULT MMULT Gibt das Produkt zweier Matrizen zurück

OBERGRENZE. GENAU

CEILING. PRECISE

Rundet eine Zahl auf die nächste Ganzzahl oder auf das kleinste Vielfache von Schritt. Die Zahl wird unabhängig von ihrem Vorzeichen aufgerundet.

OBERGRENZE CEILING Rundet eine Zahl auf die nächste Ganzzahl oder auf das kleinste Vielfache von Schritt

PI PI Gibt den Wert von Pi zurück

POLYNOMIAL

MULTINOMIAL

Gibt den Polynomialkoeffizienten einer Gruppe von Zahlen zurück

POTENZ POWER Gibt als Ergebnis eine potenzierte Zahl zurück

POTENZREIHE SERIESSUM Gibt die Summe von Potenzen (zur Berechnung von Potenzreihen und dichotomen Wahrscheinlichkeiten) zurück

PRODUKT PRODUCT Multipliziert die zugehörigen Argumente

QUADRATE SUMME

SUMSQ Gibt die Summe der quadrierten Argumente zurück

QUOTIENT QUOTIENT Gibt den ganzzahligen Anteil einer Division zurück

Page 113: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

113

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

REST MOD Gibt den Rest einer Division zurück

RÖMISCH ROMAN Wandelt eine arabische Zahl in eine römische Zahl als Text um

RUNDEN ROUND Rundet eine Zahl auf eine bestimmte Anzahl von Dezimalstellen

SIN SIN Gibt den Sinus eines angegebenen Winkels zurück

SINHYP SINH Gibt den hyperbolischen Sinus einer Zahl zurück

SUMME SUM Addiert die zugehörigen Argumente

SUMMEN PRODUKT

SUMPRODUCT

Gibt die Summe der Produkte entsprechender Matrixkomponenten zurück

SUMMEWENN SUMIF Addiert Zellen, die mit den Suchkriterien übereinstimmen

SUMMEWENNS SUMIFS Addiert die Zellen in einem Bereich, die mehrere Kriterien erfüllen

SUMMEX2MY2 SUMX2MY2 Gibt die Summe der Differenz von Quadraten entsprechender Werte in zwei Matrizen zurück

SUMMEX2PY2 SUMX2PY2 Gibt die Summe der Summe von Quadraten entsprechender Werte in zwei Matrizen zurück

SUMMEXMY2 SUMXMY2 Gibt die Summe der Quadrate von Differenzen entsprechender Werte in zwei Matrizen zurück

TAN TAN Gibt den Tangens einer Zahl zurück

TANHYP TANH Gibt den hyperbolischen Tangens einer Zahl zurück

TEILERGEBNIS SUBTOTAL Gibt ein Teilergebnis in einer Liste oder Datenbank zurück

Page 114: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

114

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

UNGERADE ODD Rundet eine Zahl auf die nächste ungerade ganze Zahl auf

UNTERGRENZE.GENAU

FLOOR.PRECISE

Rundet eine Zahl auf die nächste Ganzzahl oder auf das kleinste Vielfache von Schritt ab. Die Zahl wird unabhängig von ihrem Vorzeichen abgerundet.

UNTERGRENZE FLOOR Rundet eine Zahl in Richtung Null ab

VORZEICHEN SIGN Gibt das Vorzeichen einer Zahl zurück

VRUNDEN MROUND Gibt eine auf das gewünschte Vielfache gerundete Zahl zurück

WURZEL SQRT Gibt die Quadratwurzel einer Zahl zurück

WURZELPI SQRTPI Gibt die Wurzel aus der mit Pi multiplizierten Zahl zurück

ZUFALLSBEREICH

RANDBETWEEN

Gibt eine ganze Zufallszahl aus dem festgelegten Bereich zurück

ZUFALLSZAHL RAND Gibt eine Zufallszahl zwischen 0 und 1 zurück

ZWEIFAKULTÄT

FACTDOUBLE

Gibt die Fakultät zu Zahl mit Schrittlänge 2 zurück

Tabelle: Mathematische und trigonometrische Funktionen

C.7 Statistische Funktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ACHSEN ABSCHNITT

INTERCEPT Gibt den Schnittpunkt der linearen Regressionsgeraden zurück

Page 115: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

115

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

ANZAHL2 COUNTA Zählt die Anzahl der Werte in der Liste mit Argumenten

ANZAHL COUNT Zählt die Anzahl der Zahlen in der Liste mit Argumenten

ANZAHL LEEREZELLEN

COUNTBLANK Gibt die Anzahl der leeren Zellen in einem Bereich an

BESTIMMTHEITS MASS

RSQ Gibt das Quadrat des PEARSONschen Korrelationskoeffizienten zurück

BETA.INV BETA.INV Gibt Quantile der kumulierten Verteilungsfunktion für eine bestimmte Betaverteilung zurück

BETA.VERT BETA.DIST Gibt die Werte der kumulierten Betaverteilungsfunktion zurück

BINOM.INV BINOM.INV

Gibt den kleinsten Wert zurück, für den die kumulierten Wahrscheinlichkeiten der Binomialverteilung kleiner oder gleich einer Grenzwahrscheinlichkeit sind

BINOM.VERT BINOM.DIST Gibt Wahrscheinlichkeiten einer binominalverteilten Zufallsvariablen zurück

CHI-QHI.VERT.RE CHI-QHI.VERT.RE Gibt die kumulative Beta-Wahrscheinlichkeitsdichtefunktion zurück

CHIQU.INV.RE CHISQ.INV.RT Gibt Quantile der Verteilungsfunktion (1-Alpha) der Chi-Quadrat-Verteilung zurück

CHIQU.INV CHISQ.INV Gibt die kumulative Beta-Wahrscheinlichkeitsdichtefunktion zurück

CHIQU.TEST CHISQ.TEST Gibt die Teststatistik eines Unabhängigkeitstests zurück

CHIQU.VERT.RE CHISQ.DIST.RT Gibt Werte der Verteilungsfunktion (1-Alpha) einer Chi-Quadrat-verteilten Zufallsgröße zurück

EXPON.VERT EXPON.DIST Gibt Wahrscheinlichkeiten einer exponentialverteilten Zufallsvariablen zurück

Page 116: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

116

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

F.INV.RE F.INV.RT Gibt Quantile der F-Verteilung zurück

F.INV F.INV Gibt Quantile der F-Verteilung zurück

F.TEST F.TEST Gibt die Teststatistik eines F-Tests zurück

F.VERT.RE F.DIST.RT Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück

F.VERT F.DIST Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück

FISHER FISHER Gibt die Fisher-Transformation zurück

FISHERINV FISHERINV Gibt die Umkehrung der Fisher-Transformation zurück

GAMMA.INV GAMMA.INV Gibt Quantile der Gammaverteilung zurück

GAMMA.VERT GAMMA.DIST Gibt Wahrscheinlichkeiten einer gammaverteilten Zufallsvariablen zurück

GAMMALN.GENAU GAMMALN.PRECISE Gibt den natürlichen Logarithmus der Gammafunktion zurück, Γ(x)

GAMMALN GAMMALN Gibt den natürlichen Logarithmus der Gammafunktion zurück, Γ(x)

GEOMITTEL GEOMEAN Gibt das geometrische Mittel zurück

GESTUTZTMITTEL TRIMMEAN Gibt den Mittelwert einer Datengruppe zurück, ohne die Randwerte zu berücksichtigen

GTEST ZTEST

Gibt den einseitigen Wahrscheinlichkeitswert für einen Gaußtest (Normalverteilung) zurück

HARMITTEL HARMEAN Gibt das harmonische Mittel zurück

Page 117: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

117

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

HÄUFIGKEIT FREQUENCY Gibt eine Häufigkeitsverteilung als einspaltige Matrix zurück

HYPGEOM.VERT HYPGEOM.DIST Gibt Wahrscheinlichkeiten einer hypergeometrisch-verteilten Zufallsvariablen zurück

KGRÖSSTE LARGE Gibt den k-größten Wert einer Datengruppe zurück

KKLEINSTE SMALL Gibt den k-kleinsten Wert einer Datengruppe zurück

KONFIDENZ. NORM

CONFIDENCE.NORM

Gibt das 1-Alpha Konfidenzintervall für den Erwartungswert einer Zufallsvariablen zurück

KONFIDENZ.T CONFIDENCE.T

Gibt das Konfidenzintervall für den Erwartungswert einer Zufallsvariablen zurück, wobei der Studentsche T-Test verwendet wird

KORREL CORREL Gibt den Korrelationskoeffizienten zweier Reihen von Merkmalsausprägungen zurück

KOVARIANZ.P COVARIANCE.P

Gibt die Kovarianz zurück, den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen

KOVARIANZ.S COVARIANCE.S

Gibt die Kovarianz einer Stichprobe zurück, d. h. den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen

KURT KURT Gibt die Kurtosis (Exzess) einer Datengruppe zurück

LOGNORM.INV LOGNORM.INV Gibt Perzentile der Lognormalverteilung zurück

LOGNORM.VERT LOGNORM.DIST Gibt Werte der Verteilungsfunktion einer lognormalverteilten Zufallsvariablen zurück

MAXA MAXA

Gibt den größten Wert in einer Liste mit Argumenten zurück. Dazu zählen Zahlen, Text und Wahrheitswerte

Page 118: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

118

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

MAX MAX Gibt den größten Wert in einer Liste mit Argumenten zurück

MEDIAN MEDIAN Gibt den Median der angegebenen Zahlen zurück

MINA MINA

Gibt den kleinsten Wert in einer Liste mit Argumenten zurück. Dazu zählen Zahlen, Text und Wahrheitswerte

MIN MIN Gibt den kleinsten Wert in einer Liste mit Argumenten zurück

MITTELABW AVEDEV Gibt die durchschnittliche absolute Abweichung von Datenpunkten von ihrem Mittelwert zurück

MITTELWERTA AVERAGEA

Gibt den Mittelwert der zugehörigen Argumente zurück. Dazu gehören Zahlen, Text und Wahrheitswerte

MITTELWERT AVERAGE Gibt den Mittelwert der zugehörigen Argumente zurück

MITTELWERT WENN

AVERAGEIF

Gibt den Durchschnittswert (arithmetisches Mittel) für alle Zellen in einem Bereich, die einem angegebenen Kriterium entsprechen, zurück

MITTELWERT WENNS

AVERAGEIFS

Gibt den Durchschnittswert (arithmetisches Mittel) aller Zellen zurück, die mehreren Kriterien entsprechen

MODUS.EINF MODE.SNGL Gibt den am häufigsten vorkommenden Wert in einer Datengruppe zurück

MODUS.VIELF MODE.MULT

Gibt ein vertikales Array der am häufigsten vorkommenden oder wiederholten Werte in einem Array oder Datenbereich zurück

NEGBINOM.VERT NEGBINOM.DIST Gibt Wahrscheinlichkeiten einer negativbinomialverteilten Zufallsvariablen zurück

NORM.INV NORM.INV Gibt Quantile der Normalverteilung zurück

Page 119: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

119

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

NORM.S.INV NORM.S.INV Gibt Quantile der Standardnormalverteilung zurück

NORM.S.VERT NORM.S.DIST Gibt Wahrscheinlichkeiten einer standardnormalverteilten Zufallsvariablen zurück

NORM.VERT NORM.DIST Gibt Wahrscheinlichkeiten einer normalverteilten Zufallsvariablen zurück

PEARSON PEARSON Gibt den Pearsonschen Korrelationskoeffizienten zurück

POISSON.VERT POISSON.DIST Gibt Wahrscheinlichkeiten einer Poisson-verteilten Zufallsvariablen zurück

PROGNOSE PROGNOSE Gibt einen Wert zurück, der sich aus einem linearen Trend ergibt

QUANTIL.EXKL PERCENTILE.EXC

Gibt das k-Quantil von Werten in einem Bereich zurück, wobei k im Bereich von 0..1 ausschließlich liegt

QUANTIL.INKL PERCENTILE.INC Gibt das k-Quantil von Werten in einem Bereich zurück

QUANTILSRANG. EXKL

QUANTILSRANG. EXKL

Gibt den prozentualen (0..1 ausschließlich) Rang (Alpha) eines Werts in einem Datenset zurück

QUANTILSRANG. INKL

QUANTILSRANG. INKL

Gibt den prozentualen Rang (Alpha) eines Werts in einer Gruppe von Daten zurück

QUARTILE.EXKL QUARTILE.EXC

Gibt die Quartile eines Datensets zurück, basierend auf Perzentilwerten von 0..1 ausschließlich

QUARTILE.INKL QUARTILE.INC Gibt die Quartile einer Datengruppe zurück

RANG.GLEICH RANK.EQ Gibt den Rang zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt

RANG.MITTELW RANK.AVG

Gibt die durchschnittliche Rangzahl zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt

Page 120: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

120

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

RGP LINEST Gibt die Parameter eines linearen Trends zurück

RKP LOGEST Gibt die Parameter eines exponentiellen Trends zurück

SCHIEFE SKEW Gibt die Schiefe einer Verteilung zurück

STABW.N STDEV.P Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit

STABW.S STDEV.S Schätzt die Standardabweichung ausgehend von einer Stichprobe

STABWA STDEVA

Schätzt die Standardabweichung ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält

STABWNA STDEVPA

Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält

STANDARDISIERUNG STANDARDIZE Gibt einen standardisierten Wert zurück

STEIGUNG SLOPE Gibt die Steigung der linearen Regressionsgeraden zurück

STFEHLERYX STEYX Gibt den Standardfehler der geschätzten y-Werte für alle x-Werte der Regression zurück

SUMQUADABW DEVSQ Gibt die Summe von quadrierten Abweichungen zurück

T.INV.2S T.INV.2T Gibt die zweiseitigen Quantile der (Student) t-Verteilung zurück

T.INV T.INV

Gibt den t-Wert der Student-T-Verteilung als Funktion der Wahrscheinlichkeit und der Freiheitsgrade zurück

T.TEST T.TEST Gibt die Teststatistik eines Student'schen t-Tests zurück

Page 121: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

121

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

T.VERT.2S T.DIST.2T

Gibt die Prozentpunkte (Wahrscheinlichkeit) für die (Student) t-Verteilung für zwei Endflächen zurück

T.VERT.RE T.DIST.RT Gibt Werte der Verteilungsfunktion (1-Alpha) einer (Student) t-verteilten Zufallsvariablen zurück

T.VERT T.DIST Gibt die Prozentpunkte (Wahrscheinlichkeit) für die (Student) t-Verteilung zurück

TREND TREND Gibt Werte zurück, die sich aus einem linearen Trend ergeben

VAR.P VAR.P Berechnet die Varianz auf der Grundlage der Grundgesamtheit

VAR.S VAR.S Schätzt die Varianz auf der Grundlage einer Stichprobe

VARIANZA VARA Schätzt die Varianz ausgehend von einer Stichprobe, die Zahlen, Text und Wahrheitswerte enthält

VARIANZENA VARPA

Berechnet die Varianz auf der Grundlage einer Grundgesamtheit, die Zahlen, Text und Wahrheitswerte enthält

VARIATIONEN PERMUT Gibt die Anzahl der Permutationen für eine bestimmte Anzahl von Objekten zurück

VARIATION GROWTH Gibt Werte zurück, die sich aus einem exponentiellen Trend ergeben

WAHRSCHBEREICH PROB Gibt die Wahrscheinlichkeit für ein von zwei Werten eingeschlossenes Intervall zurück

WEIBULL.VERT WEIBULL.DIST Gibt Wahrscheinlichkeiten einer Weibull-verteilten Zufallsvariablen zurück

ZÄHLENWENN COUNTIF Die Zellen eines Bereichs, deren Inhalte mit den Suchkriterien übereinstimmen, werden gezählt

ZÄHLENWENNS COUNTIFS Die Zellen eines Bereichs, deren Inhalte mit mehreren Kriterien übereinstimmen, werden gezählt

Tabelle: Statistische Funktionen

Page 122: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

122

C.8 Konstruktionsfunktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

BESSELI BESSELI Gibt die geänderte Besselfunktion In(x) zurück

BESSELJ BESSELJ Gibt die Besselfunktion Jn(x) zurück

BESSELK BESSELK Gibt die geänderte Besselfunktion Kn(x) zurück

BESSELY BESSELY Gibt die Besselfunktion Yn(x) zurück

BININDEZ BIN2DEC Wandelt eine binäre Zahl (Dualzahl) in eine dezimale Zahl um

BININHEX BIN2HEX Wandelt eine binäre Zahl (Dualzahl) in eine hexadezimale Zahl um

BININOKT BIN2OCT Wandelt eine binäre Zahl (Dualzahl) in eine oktale Zahl um

DELTA DELTA Überprüft, ob zwei Werte gleich sind

DEZINBIN DEC2BIN Wandelt eine dezimale Zahl in eine binäre Zahl (Dualzahl) um

DEZINHEX DEC2HEX Wandelt eine dezimale Zahl in eine hexadezimale Zahl um

DEZINOKT DEC2OCT Wandelt eine dezimale Zahl in eine oktale Zahl um

GAUSSF.GENAU ERF.PRECISE Gibt die Fehlerfunktion zurück

GAUSSFEHLER ERF Gibt die Fehlerfunktion zurück

GAUSSFKOMPL.GENAU

ERFC.PRECISE

Gibt das Komplement zur GAUSZschen Fehlerfunktion integriert zwischen x und Unendlichkeit zurück

Page 123: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

123

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

GAUSSFKOMPL ERFC Gibt das Komplement zur GAUSZschen Fehlerfunktion zurück

GGANZZAHL GESTEP Überprüft, ob eine Zahl größer als ein gegebener Schwellenwert ist

HEXINBIN HEX2BIN Wandelt eine hexadezimale Zahl in eine binäre Zahl (Dualzahl) um

HEXINDEZ HEX2DEC Wandelt eine hexadezimale Zahl in eine dezimale Zahl um

HEXINOKT HEX2OCT Wandelt eine hexadezimale Zahl in eine Oktalzahl um

IMABS IMABS Gibt den Absolutbetrag (Modulo) einer komplexen Zahl zurück

IMAGINÄRTEIL IMAGINARY Gibt den Imaginärteil einer komplexen Zahl zurück

IMAPOTENZ IMPOWER Potenziert eine komplexe Zahl mit einer ganzen Zahl

IMARGUMENT IMARGUMENT Gibt das Argument Theta zurück, einen Winkel im Bogenmaß

IMCOS IMCOS Gibt den Cosinus einer komplexen Zahl zurück

IMDIV IMDIV Gibt den Quotienten zweier komplexer Zahlen zurück

IMEXP IMEXP

Gibt die algebraische Form einer in exponentieller Schreibweise vorliegenden komplexen Zahl zurück

IMKONJUGIERTE IMCONJUGATE Gibt die konjugierte komplexe Zahl zu einer komplexen Zahl zurück

IMLN IMLN Gibt den natürlichen Logarithmus einer komplexen Zahl zurück

IMLOG10 IMLOG10 Gibt den Logarithmus einer komplexen Zahl zur Basis 10 zurück

Page 124: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

124

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

IMLOG2 IMLOG2 Gibt den Logarithmus einer komplexen Zahl zur Basis 2 zurück

IMPRODUKT IMPRODUCT Gibt das Produkt von 2 bis 255 komplexen Zahlen zurück

IMREALTEIL IMREAL Gibt den Realteil einer komplexen Zahl zurück

IMSIN IMSIN Gibt den Sinus einer komplexen Zahl zurück

IMSUB IMSUB Gibt die Differenz zwischen zwei komplexen Zahlen zurück

IMSUMME IMSUM Gibt die Summe von komplexen Zahlen zurück

IMWURZEL IMSQRT Gibt die Quadratwurzel einer komplexen Zahl zurück

KOMPLEXE COMPLEX Wandelt den Real- und Imaginärteil in eine komplexe Zahl um

OKTINBIN OCT2BIN Wandelt eine oktale Zahl in eine binäre Zahl (Dualzahl) um

OKTINDEZ OCT2DEC Wandelt eine oktale Zahl in eine dezimale Zahl um

OKTINHEX OCT2HEX Wandelt eine oktale Zahl in eine hexadezimale Zahl um

UMWANDELN CONVERT Wandelt eine Zahl von einem Maßsystem in ein anderes um

Tabelle: Konstruktionsfunktionen

C.9 Cubefunktionen

Page 125: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

125

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

CUBEELEMENT EIGENSCHAFT

CUBEMEMBER PROPERTY

Gibt den Wert einer Elementeigenschaft im Cube zurück. Wird verwendet, um zu überprüfen, ob ein Elementname im Cube vorhanden ist, und um die für dieses Element angegebene Eigenschaft zurückzugeben.

CUBEELEMENT CUBEMEMBER

Gibt ein Element oder ein Tuple in einem Cube zurück. Wird verwendet, um zu überprüfen, ob das Element oder Tuple im Cube vorhanden ist.

CUBEKPI ELEMENT

CUBEKPIMEMBER

Gibt die Eigenschaft eines Key Performance Indicators (KPI) zurück und zeigt den KPI-Namen in der Zelle an. Ein KPI ist ein quantifizierbares Maß, wie z. B. der monatliche Bruttogewinn oder die vierteljährliche Mitarbeiterfluktuation, mit dessen Hilfe das Leistungsverhalten eines Unternehmens überwacht werden kann.

CUBEMENGE CUBESET

Definiert eine berechnete Menge Elemente oder Tupeln durch Senden eines Mengenausdrucks an den Cube auf dem Server, der die Menge erstellt und an Microsoft Office Excel zurückgibt

CUBE MENGENANZAHL

CUBESETCOUNT Gibt die Anzahl der Elemente in einer Menge zurück

CUBE RANGELEMENT

CUBE RANKEDMEMBER

Gibt das n-te oder n-rangige Element in einer Menge zurück. Wird verwendet, um mindestens ein Element in einer Menge zurückzugeben, wie z. B. bester Vertriebsmitarbeiter oder 10 beste Kursteilnehmer.

CUBEWERT CUBEVALUE Gibt einen Aggregatwert aus dem Cube zurück

Tabelle: Cubefunktionen

Page 126: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

126

C.10 Informationsfunktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

FEHLER.TYP ERROR.TYPE Gibt eine Zahl zurück, die einem Fehlertyp entspricht

INFO INFO Gibt Informationen zur aktuellen Betriebssystemumgebung zurück

ISTBEZUG ISREF Gibt WAHR zurück, wenn der Wert ein Bezug ist

ISTFEHLER ISERROR Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert ist

ISTFEHL ISERR Gibt WAHR zurück, wenn der Wert ein beliebiger Fehlerwert außer #NV ist

ISTGERADE ISEVEN Gibt WAHR zurück, wenn die Zahl gerade ist

ISTKTEXT ISNONTEXT Gibt WAHR zurück, wenn der Wert kein Text ist

ISTLEER ISBLANK Gibt WAHR zurück, wenn der Wert leer ist

ISTLOG ISLOGICAL Gibt WAHR zurück, wenn der Wert ein Wahrheitswert ist

ISTNV ISNA Gibt WAHR zurück, wenn der Wert der Fehlerwert #NV ist

ISTTEXT ISTEXT Gibt WAHR zurück, wenn der Wert ein Text ist

ISTUNGERADE ISODD Gibt WAHR zurück, wenn die Zahl ungerade ist

ISTZAHL ISNUMBER Gibt WAHR zurück, wenn der Wert eine Zahl ist

N N Gibt einen Wert zurück, der in eine Zahl umgewandelt wurde

Page 127: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

127

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

NV NA Gibt den Fehlerwert #NV zurück

TYP TYPE Gibt eine Zahl zurück, die den Datentyp eines Werts angibt

ZELLE CELL Gibt Informationen zur Formatierung, zur Position oder zum Inhalt einer Zelle zurück

Tabelle: Informationsfunktionen

C.11 Datenbankfunktionen

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

DBANZAHL2 DCOUNTA Zählt nicht leere Zellen in einer Datenbank

DBANZAHL DCOUNT Zählt die Zellen mit Zahlen in einer Datenbank

DBAUSZUG DGET Extrahiert aus einer Datenbank einen einzelnen Datensatz, der den angegebenen Kriterien entspricht

DBMAX DMAX Gibt den größten Wert aus ausgewählten Datenbankeinträgen zurück

DBMIN DMIN Gibt den kleinsten Wert aus ausgewählten Datenbankeinträgen zurück

DBMITTELWERT DAVERAGE Gibt den Mittelwert der ausgewählten Datenbankeinträge zurück

DBPRODUKT DPRODUCT Multipliziert die Werte in einem bestimmten Feld mit Datensätzen, die den Kriterien in einer Datenbank entsprechen

DBSTDABW DSTDEV Schätzt die Standardabweichung auf der Grundlage einer Stichprobe aus ausgewählten Datenbankeinträgen

Page 128: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

128

DBSTDABWN DSTDEVP Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge

DBSUMME DSUM Addiert die Zahlen in der Feldspalte mit Datensätzen in der Datenbank, die den Kriterien entsprechen

DBVARIANZEN DVARP Berechnet die Varianz auf der Grundlage der Grundgesamtheit ausgewählter Datenbankeinträge

DBVARIANZ DVAR Schätzt die Varianz auf der Grundlage ausgewählter Datenbankeinträge

Tabelle: Datenbankfunktionen

C.12 Kompatibilitätsfunktionen

Es handelt sich hier um Funktionen, die aus Gründen der Kompatibilität mit früheren

Excel-Versionen noch implementiert sind.

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

BETAINV BETAINV Gibt Quantile der kumulierten Verteilungsfunktion für ein bestimmte Betaverteilung zurück

BETAVERT BETADIST Gibt die Werte der kumulierten Betaverteilungsfunktion zurück

BINOMVERT BINOMDIST Gibt Wahrscheinlichkeiten einer binominalverteilten Zufallsvariablen zurück

CHIINV CHIINV Gibt Quantile der Verteilungsfunktion (1-Alpha) der Chi-Quadrat-Verteilung zurück

CHITEST CHITEST Gibt die Teststatistik eines Unabhängigkeitstests zurück

CHIVERT CHIDIST Gibt Werte der Verteilungsfunktion (1-Alpha) einer Chi-Quadrat-verteilten Zufallsgröße zurück

EXPONVERT EXPONDIST Gibt Wahrscheinlichkeiten einer exponentialverteilten Zufallsvariablen zurück

Page 129: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

129

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

FINV FINV Gibt Quantile der F-Verteilung zurück

FTEST FTEST Gibt die Teststatistik eines F-Tests zurück

FVERT FDIST Gibt Werte der Verteilungsfunktion (1-Alpha) einer F-verteilten Zufallsvariablen zurück

GAMMAINV GAMMAINV Gibt Quantile der Gammaverteilung zurück

GAMMAVERT GAMMADIST Gibt Wahrscheinlichkeiten einer gammaverteilten Zufallsvariablen zurück

GTEST ZTEST

Gibt den einseitigen Wahrscheinlichkeitswert für einen GAUSZtest (Normalverteilung) zurück

HYPGEOMVERT HYPGEOMDIST Gibt Wahrscheinlichkeiten einer hypergeometrisch-verteilten Zufallsvariablen zurück

KONFIDENZ CONFIDENCE

Gibt das 1-Alpha Konfidenzintervall für den Erwartungswert einer Zufallsvariablen zurück

KOVAR COVAR

Gibt die Kovarianz zurück, den Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen

KRITBINOM CRITBINOM

Gibt den kleinsten Wert zurück, für den die kumulierten Wahrscheinlichkeiten der Binomialverteilung kleiner oder gleich einer Grenzwahrscheinlichkeit sind

LOGINV LOGINV Gibt Perzentile der Lognormalverteilungsfunktion zurück

LOGNORMVERT LOGNORMDIST Gibt Werte der Verteilungsfunktion einer lognormalverteilten Zufallsvariablen zurück

MODALWERT MODE Gibt den am häufigsten vorkommenden Wert in einer Datengruppe zurück

Page 130: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

130

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

NEGBINOMVERT NEGBINOMDIST Gibt Wahrscheinlichkeiten einer negativbinomialverteilten Zufallsvariablen zurück

NORMINV NORMINV Gibt Quantile der Normalverteilung zurück

NORMVERT NORMDIST Gibt Wahrscheinlichkeiten einer normalverteilten Zufallsvariablen zurück

NORMSVERT NORMSDIST Gibt Wahrscheinlichkeiten einer standardnormalverteilten Zufallsvariablen zurück

POISSON POISSON Gibt Wahrscheinlichkeiten einer Poisson-verteilten Zufallsvariablen zurück

QUANTIL PERCENTILE Gibt das k-Quantil von Werten in einem Bereich zurück

QUANTILSRANG PERCENTRANK Gibt den prozentualen Rang (Alpha) eines Werts in einer Gruppe von Daten zurück

QUARTILE QUARTILE Gibt die Quartile einer Datengruppe zurück

RANG RANK Gibt den Rang zurück, den eine Zahl innerhalb einer Liste von Zahlen einnimmt

STABW STDEV Schätzt die Standardabweichung ausgehend von einer Stichprobe

STABWN STDEVP Berechnet die Standardabweichung auf der Grundlage der Grundgesamtheit

STANDNORMINV NORMSINV Gibt Quantile der Standardnormalverteilung zurück

TINV TINV Gibt Quantile der (Student) t-Verteilung zurück

TTEST TTEST Gibt die Teststatistik eines Studentschen t-Tests zurück

TVERT TDIST Gibt Werte der Verteilungsfunktion (1-Alpha) einer (Student) t-verteilten Zufallsvariablen zurück

Page 131: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die Excel-Funktionen

131

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

VARIANZEN VARP Berechnet die Varianz auf der Grundlage der Grundgesamtheit

VARIANZ VAR Schätzt die Varianz auf der Grundlage einer Stichprobe

WEIBULL WEIBULL Gibt Wahrscheinlichkeiten einer Weibull-verteilten Zufallsvariablen zurück

Tabelle: Kompatibilitätsfunktionen

C.13 Add-ins und Automatisierung

FUNKTION (DEUTSCH)

FUNCTION (ENGL.)

BESCHREIBUNG

AUFRUFEN CALL Eine Prozedur in einer DLL (Dynamic Link Library) oder Code-Ressource wird aufgerufen

EUROCONVERT EUROCONVERT

Wandelt eine Zahl in Euro oder von Euro in die Währung eines Mitgliedsstaats oder von der Währung eines Euro-Mitgliedsstaats in die Währung eines anderen Mitgliedsstaats um, indem der Euro als Zwischenwert verwendet wird (Triangulieren)

REGISTER REGISTER

Die REGISTER() XLM Funktion erzeugt einen definierten Namen und verweist darauf über eine externe dll basierte Funktion

REGISTER.KENNUMMER

REGISTER.ID

Gibt die Registrierkennung der angegebenen DLL bzw. der vorher registrierten Code-Ressource zurück

SQL.REQUEST SQL.REQUEST

Stellt Verbindung mit einer externen Datenquelle her und führt Abfrage aus, die sich auf einem Tabellenblatt befindet. Gibt das Ergebnis dann als Matrix zurück, ohne Makro Programmierung.

Tabelle: Add-ins und Automatisierung

Page 132: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

132

D Übersicht über die wichtigsten Excel-Objekte

D.1 Das Application-Objekt

Die detaillierte Syntax nebst Beispielen findet man unter der Excel-

Objektmodellreferenz in der Excel-Hilfe für Entwickler Application-Object.

D.1.1 Eigenschaften

Es folgt eine Liste der wichtigsten Eigenschaften eines Application-Objekts:

EIGENSCHAFT BESCHREIBUNG

ActiveCell Gibt das Range-Objekt zurück, das die aktive Zelle darstellt.

ActivePrinter Gibt den Namen des aktiven Druckers zurück oder legt ihn fest.

ActiveSheet Gibt das aktuelle Sheet-Objekt zurück

ActiveWindow Gibt ein Window-Objekt zurück, welches das aktive Fenster darstellt.

ActiveWorkbook Gibt ein Workbook-Objekt zurück, das die Arbeitsmappe im aktiven Fenster darstellt.

Cells Gibt ein Range-Objekt zurück, das alle Zellen des aktiven Arbeitsblattes darstellt.

Dialogs Gibt eine Dialogs-Auflistung aller internen Dialogfelder zurück, z.B. Datei-öffnen, -speicher, -drucken.

Name Gibt den Namen der Anwendung zurück.

Names Gibt eine Names-Auflistung aller Namen (z.B. der benannten Zellen) der aktiven Arbeitsmappe zurück.

Parent Gibt das übergeordnete Objekt zurück.

Page 133: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

133

EIGENSCHAFT BESCHREIBUNG

Path Gibt den vollständigen Pfad der Anwendung zurück ohne das abschließende Trennzeichen und den Namen der Anwendung.

Range Gibt ein Range-Objekt zurück, das eine Zelle oder einen Zellbereich des aktiven Arbeitsblatts darstellt.

Sheets Gibt eine Sheets-Auflistung zurück, die alle Blätter in der aktiven Arbeitsmappe darstellt.

Windows Gibt eine Windows-Auflistung aller Fenster zurück.

Workbooks Gibt eine Workbooks-Auflistung zurück, die alle geöffneten Arbeitsmappen darstellt.

Worksheets Gibt eine Worksheets-Auflistung zurück, die alle Arbeitsblätter der aktiven Arbeitsmappe darstellt.

Tabelle: Eigenschaften des Application-Objekts

D.1.2 Methoden

Die wichtigsten Methoden eines Application-Objekts sind nachfolgend aufgelistet:

METHODE BESCHREIBUNG

Calculate Neue Berechnung aller geöffneten Arbeitsmappen, ein bestimmtes Arbeitsblatt oder einen bestimmten Zellbereich.

CalculateFull Erzwingt eine vollständige Berechnung der Daten in allen geöffneten Arbeitsmappen.

Tabelle: Methoden des Application-Objekts

D.1.3 Ereignisse

Die Ereignisse des Application-Objekts sind wie folgt:

Page 134: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

134

EREIGNIS BESCHREIBUNG

AfterCalculate

Das AfterCalculate-Ereignis tritt auf, wenn alle ausstehenden Aktualisierungsvorgänge (synchron und asynchron) und alle sich daraus ergebenden Berechnungen abgeschlossen wurden.

NewWorkbook Tritt auf, wenn eine neue Arbeitsmappe erstellt wird.

ProtectedViewWindow Activate

Tritt auf, wenn ein Fenster Geschützte Ansicht aktiviert wird.

ProtectedViewWindow BeforeClose

Tritt unmittelbar vor dem Schließen eines Fensters Geschützte Ansicht oder einer Arbeitsmappe in einer geschützten Ansicht auf.

ProtectedViewWindow BeforeEdit

Tritt unmittelbar vor dem Aktivieren der Bearbeitung für die Arbeitsmappe im angegebenen Fenster Geschützte Ansicht auf.

ProtectedViewWindow Deactivate

Tritt auf, wenn ein Fenster Geschützte Ansicht deaktiviert wird.

ProtectedViewWindow Open

Tritt auf, wenn eine Arbeitsmappe in einem Fenster Geschützte Ansicht geöffnet wird.

ProtectedViewWindow Resize

Tritt auf, wenn die Größe eines Fensters Geschützte Ansicht geändert wird.

SheetActivate Tritt auf, wenn ein beliebiges Blatt aktiviert wird.

SheetBefore DoubleClick

Tritt auf, wenn vor der Standarddoppelklick-Aktion auf ein beliebiges Arbeitsblatt doppelgeklickt wird.

SheetBefore RightClick

Tritt auf, wenn vor der Standardrechtsklick-Aktion mit der rechten Maustaste auf ein beliebiges Arbeitsblatt geklickt wird.

SheetCalculate Tritt nach Neuberechnung jedes Arbeitsblatts auf oder wenn beliebige geänderte Daten in einem Diagramm gezeichnet werden.

SheetChange Tritt auf, wenn Zellen auf einem beliebigen Arbeitsblatt durch den Benutzer oder durch eine externe Verknüpfung geändert werden.

SheetDeactivate Tritt auf, wenn ein beliebiges Blatt deaktiviert wird.

SheetFollowHyperlink

Tritt auf, wenn Sie in Microsoft Excel auf einen beliebigen Hyperlink klicken. Weitere Informationen zu Ereignissen auf Arbeitsblattebene finden Sie im Hilfethema zum Worksheet.FollowHyperlink-Ereignis.

Page 135: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

135

EREIGNIS BESCHREIBUNG

SheetPivotTable AfterValueChange

Tritt nach der Bearbeitung oder Neuberechnung (bei Zellen, die Formeln enthalten) einer Zelle oder eines Zellbereichs in einer PivotTable auf.

SheetPivotTable BeforeAllocateChanges

Tritt auf, bevor Änderungen auf eine PivotTable angewendet werden.

SheetPivotTable BeforeCommitChanges

Tritt auf, bevor für Änderungen an der OLAP-Datenquelle für eine PivotTable ein Commit ausgeführt wird.

SheetPivotTable BeforeDiscardChanges

Tritt auf, bevor Änderungen an einer PivotTable verworfen werden.

SheetPivotTableUpdate Tritt auf, nachdem das Blatt des PivotTable-Berichts aktualisiert wurde.

SheetSelectionChange Tritt auf, wenn sich die Markierung auf einem Arbeitsblatt ändert (tritt nicht auf, wenn sich die Markierung auf einem Diagrammblatt befindet).

WindowActivate Tritt auf, wenn ein Arbeitsmappen-Fenster aktiviert wird.

WindowDeactivate Tritt auf, wenn ein Arbeitsmappen-Fenster deaktiviert wird.

WindowResize Tritt auf, wenn die Größe eines Arbeitsmappen-Fensters angepasst wird.

WorkbookActivate Tritt auf, wenn eine Arbeitsmappe aktiviert wird.

WorkbookAddinInstall Tritt auf, wenn eine Arbeitsmappe als Add-In installiert wird.

WorkbookAddinUninstall Tritt auf, wenn eine Add-In-Arbeitsmappe deinstalliert wird.

WorkbookAfterSave Tritt auf, nachdem die Arbeitsmappe gespeichert wurde.

WorkbookAfterXmlExport Tritt auf, nachdem von Microsoft Excel XML-Daten aus der angegebenen Arbeitsmappe gespeichert oder exportiert wurden.

WorkbookAfterXmlImport

Tritt auf, nachdem eine bestehende XML-Datenverbindung aktualisiert wurde oder neue XML-Daten in eine geöffnete Microsoft Excel-Arbeitsmappe importiert wurden.

Page 136: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

136

EREIGNIS BESCHREIBUNG

WorkbookBeforeClose Tritt direkt vor dem Schließen einer geöffneten Arbeitsmappe auf.

WorkbookBeforePrint Tritt auf, bevor eine Arbeitsmappe gedruckt wird.

WorkbookBeforeSave Tritt auf, bevor eine geöffnete Arbeitsmappe gespeichert wird.

Workbook BeforeXmlExport

Tritt auf, bevor XML-Daten aus der angegebenen Arbeitsmappe von Microsoft Excel gespeichert oder exportiert werden.

Workbook BeforeXmlImport

Tritt auf, bevor eine bestehende XML-Datenverbindung aktualisiert wird oder neue XML-Daten in eine geöffnete Microsoft Excel-Arbeitsmappe importiert werden.

WorkbookDeactivate Tritt auf, wenn eine geöffnete Arbeitsmappe deaktiviert wird.

WorkbookNewChart Tritt auf, wenn in einer geöffneten Arbeitsmappe ein neues Diagramm erstellt wird.

WorkbookNewSheet Tritt auf, wenn in einer geöffneten Arbeitsmappe ein neues Blatt erstellt wird.

WorkbookOpen Tritt auf, wenn eine Arbeitsmappe geöffnet wird.

WorkbookPivotTable CloseConnection

Tritt auf, nachdem die Verbindung zu einem PivotTable-Bericht geschlossen wurde.

WorkbookPivotTable OpenConnection

Tritt auf, nachdem eine Verbindung eines PivotTable-Berichts geöffnet wurde.

WorkbookRowset Complete

Das WorkbookRowsetComplete-Ereignis tritt auf, wenn der Benutzer einen Drillthrough durch das Recordset ausführt oder die Rowset-Aktion für eine OLAP-PivotTable aufruft.

WorkbookSync Tritt auf, wenn die lokale Kopie einer Arbeitsmappe, die Teil eines Dokumentarbeitsbereichs ist, mit der Kopie auf dem Server synchronisiert wird.

Tabelle: Ereignisse des Application-Objekts

Page 137: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

137

D.2 Das Workbook-Objekt

Die detaillierte Syntax nebst Beispielen findet man unter der Excel-

Objektmodellreferenz in der Excel-Hilfe für Entwickler Workbook-Object.

D.2.1 Eigenschaften

Die wichtigsten Eigenschaften eines Workbook-Objekts sind wie folgt:

EIGENSCHAFT BESCHREIBUNG

ActiveSheet Gibt das aktuelle (aktive) Arbeitsblatt zurück.

Name Gibt den Namen der Arbeitsmappe zurück oder legt ihn fest.

Names Gibt eine Names-Auflistung aller Namen der Arbeitsmappe zurück, z. B. benannte Zellen.

Parent Gibt das übergeordnete Objekt zurück (Application-Objekt).

Path Gibt den vollständigen Pfad der Arbeitsmappe/ Datei zurück.

Saved Hat den Zustand True, wenn die Arbeitsmappe seit dem letzten Speichern nicht geändert wurde.

Sheets Gibt eine Sheets-Auflistung zurück, die alle Blätter der Arbeitsmappe darstellt (Tabellen und Diagramme).

ThisWorkbook Gibt ein Workbook-Objekt zurück, das die aktuelle Arbeitsmappe darstellt.

Worksheets Gibt eine Sheets-Auflistung zurück, die alle Blätter der Arbeitsmappe darstellt (Tabellen).

Tabelle: Eigenschaften des Workbook-Objekts

D.2.2 Methoden

Die wichtigsten Methoden eines Workbook-Objekts sind wie folgt:

Page 138: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

138

METHODE BESCHREIBUNG

Activate Aktiviert eine einzelne Arbeitsmappe.

Close Schließt eine einzelne Arbeitsmappe.

PrintOut Druckt die Arbeitsmappe.

Save Speichert die Änderungen der Arbeitsmappe.

Tabelle: Methoden des Workbook-Objekts

D.2.3 Ereignisse

Die Ereignisse des Workbook-Objekts sind wie folgt:

EREIGNIS BESCHREIBUNG

Activate Tritt auf, wenn eine Arbeitsmappe, ein Arbeitsblatt, ein Diagrammblatt oder ein eingebettetes Diagramm aktiviert wird.

AddinInstall Tritt auf, wenn die Arbeitsmappe als Add-In installiert wird.

AddinUninstall Tritt auf, wenn die Arbeitsmappe als Add-In deinstalliert wird.

AfterSave Tritt auf, nachdem die Arbeitsmappe gespeichert wurde.

AfterXmlExport Tritt auf, nachdem von Microsoft Excel XML-Daten aus der angegebenen Arbeitsmappe gespeichert oder exportiert wurden.

AfterXmlImport Tritt auf, nachdem eine bestehende XML-Datenverbindung aktualisiert wurde oder neue XML-Daten in eine geöffnete Microsoft Excel-Arbeitsmappe importiert wurden.

BeforeClose

Tritt auf, bevor die Arbeitsmappe geschlossen wird. Wurde die Arbeitsmappe geändert, tritt dieses Ereignis ein, bevor der Benutzer gefragt wird, ob die Änderungen gespeichert werden sollen.

Page 139: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

139

EREIGNIS BESCHREIBUNG

BeforePrint Tritt auf, bevor die Arbeitsmappe (oder darin enthaltene Teile) gedruckt wird.

BeforeSave Tritt auf, bevor die Arbeitsmappe gespeichert wird.

BeforeXmlExport Tritt auf, bevor XML-Daten aus der angegebenen Arbeitsmappe von Microsoft Excel gespeichert oder exportiert werden.

BeforeXmlImport Tritt auf, bevor eine bestehende XML-Datenverbindung aktualisiert wird oder neue XML-Daten in eine geöffnete Microsoft Excel-Arbeitsmappe importiert werden.

Deactivate Tritt auf, wenn das Diagramm, das Arbeitsblatt oder die Arbeitsmappe deaktiviert wird.

NewChart Tritt auf, wenn in einer Arbeitsmappe ein neues Diagramm erstellt wird.

NewSheet Tritt auf, wenn in einer Arbeitsmappe ein neues Blatt erstellt wird.

Open Tritt auf, wenn die Arbeitsmappe geöffnet wird.

PivotTable CloseConnection

Tritt auf, nachdem eine PivotTable ihre Verbindung zur Datenquelle geschlossen hat.

PivotTable OpenConnection

Tritt auf, nachdem eine PivotTable ihre Verbindung zur Datenquelle geöffnet hat.

RowsetComplete Das Ereignis wird ausgelöst, wenn der Benutzer einen Drillthrough durch das Recordset ausführt oder die Rowset-Aktion für eine OLAP-PivotTable aufruft.

SheetActivate Tritt auf, wenn ein beliebiges Blatt aktiviert wird.

SheetBefore DoubleClick

Tritt auf, wenn vor der Standarddoppelklick-Aktion auf ein beliebiges Arbeitsblatt doppelgeklickt wird.

SheetBefore RightClick

Tritt auf, wenn vor der Standardrechtsklick-Aktion mit der rechten Maustaste auf ein beliebiges Arbeitsblatt geklickt wird.

SheetCalculate Tritt nach Neuberechnung jedes Arbeitsblatts auf oder wenn beliebige geänderte Daten in einem Diagramm gezeichnet werden.

Page 140: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

140

EREIGNIS BESCHREIBUNG

SheetChange Tritt auf, wenn Zellen auf einem beliebigen Arbeitsblatt durch den Benutzer oder durch eine externe Verknüpfung geändert werden.

SheetDeactivate Tritt auf, wenn ein beliebiges Blatt deaktiviert wird.

SheetFollow Hyperlink

Tritt auf, wenn Sie in Microsoft Excel auf einen beliebigen Hyperlink klicken. Weitere Informationen zu Ereignissen auf Arbeitsmappenebene finden Sie im Hilfethema zum Worksheet.FollowHyperlink-Ereignis.

SheetPivotTable AfterValueChange

Tritt nach der Bearbeitung oder Neuberechnung (bei Zellen, die Formeln enthalten) einer Zelle oder eines Zellbereichs in einer PivotTable auf.

SheetPivotTable Before AllocateChanges

Tritt auf, bevor Änderungen auf eine PivotTable angewendet werden.

SheetPivotTable Before CommitChanges

Tritt auf, bevor für Änderungen an der OLAP-Datenquelle für eine PivotTable ein Commit ausgeführt wird.

SheetPivotTable Before DiscardChanges

Tritt auf, bevor Änderungen an einer PivotTable verworfen werden.

SheetPivotTable ChangeSync Tritt nach Änderungen an einer PivotTable auf.

SheetPivotTable Update

Tritt auf, nachdem das Blatt des PivotTable-Berichts aktualisiert wurde.

SheetSelection Change

Tritt auf, wenn sich die Markierung auf einem Arbeitsblatt ändert (tritt nicht auf, wenn sich die Markierung auf einem Diagrammblatt befindet).

Sync (veraltet)

WindowActivate Tritt auf, wenn ein Arbeitsmappen-Fenster aktiviert wird.

WindowDeactivate Tritt auf, wenn ein Arbeitsmappen-Fenster deaktiviert wird.

WindowResize Tritt auf, wenn die Größe eines Arbeitsmappen-Fensters angepasst wird.

Tabelle: Ereignisse des Workbook-Objekts

Page 141: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

141

D.3 Das Worksheet-Objekt

Die detaillierte Syntax nebst Beispielen findet man unter der Excel-

Objektmodellreferenz in der Excel-Hilfe für Entwickler Worksheet-Object.

D.3.1 Eigenschaften

Die wichtigsten Eigenschaften eines Worksheet-Objekts sind wie folgt:

EIGENSCHAFT BESCHREIBUNG

Application

Wird der Objektkennzeichner nicht verwendet, gibt diese Eigenschaft ein Application-Objekt zurück, das die Anwendung Excel darstellt. Wird der Objektkennzeichner verwendet, wird ein Application-Objekt zurückgegeben, das den Ersteller des angegebenen Objekts darstellt. Dies kann z. B. beim Einsatz von OLE-Automatisierungsobjekten von Interesse sein.

Cells Gibt ein Range-Objekt zurück, das alle Zellen auf dem Arbeitsblatt darstellt (nicht nur die derzeit verwendeten Zellen).

Columns Gibt ein Range-Objekt zurück, das alle Spalten des aktiven Arbeitsblatts darstellt.

Name Gibt den Namen der Tabelle zurück oder legt ihn fest.

Names Gibt eine Names-Auflistung aller arbeitsblattspezifischen Namen (Namen mit dem Präfix "ArbeitsblattName!") zurück.

Parent Gibt das übergeordnete Objekt zurück (Workbook-Objekt).

Range Gibt ein Range-Objekt zurück, das eine Zelle oder einen Zellbereich darstellt (Zellenbereich innerhalb des Tabellenblatts).

Rows Gibt ein Range-Objekt zurück, das alle Zeilen im aktiven Arbeitsblatt darstellt.

UsedRange Gibt ein Range-Objekt zurück, das den verwendeten Bereich im aktiven Arbeitsblatt darstellt (benutzte Zellen).

Tabelle: Eigenschaften des Worksheet-Objekts

Page 142: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

142

D.3.2 Methoden

Die wichtigsten Methoden eines Worksheet-Objekts sind wie folgt:

METHODE BESCHREIBUNG

Activate Aktiviert ein einzelnes Arbeitsblatt.

Calculate Berechnet alle geöffneten Arbeitsmappen, ein bestimmtes Arbeitsblatt oder einen bestimmten Zellbereich neu.

Select Markiert ein einzelnes Tabellenblatt.

PrintOut Druckt das Tabellenblatt.

Delete Löscht das Tabellenblatt aus der Arbeitsmappe

Tabelle: Methoden des Worksheet-Objekts

D.3.3 Ereignisse

Die Ereignisse des Worksheet-Objekts sind wie folgt:

EREIGNIS BESCHREIBUNG

Activate Tritt auf, wenn eine Arbeitsmappe, ein Arbeitsblatt, ein Diagrammblatt oder ein eingebettetes Diagramm aktiviert wird.

BeforeDoubleClick Tritt auf, wenn vor der Standarddoppelklick-Aktion auf ein Arbeitsblatt doppelgeklickt wird.

BeforeRightClick Tritt auf, wenn vor Ausführung des Standardrechtsklicks mit der rechten Maustaste auf ein Arbeitsblatt geklickt wird.

Calculate Tritt für das Worksheet-Objekt auf, nachdem das Arbeitsblatt neu berechnet wurde.

Change Tritt auf, wenn Zellen des Arbeitsblatts durch den Benutzer oder durch eine externe Verknüpfung geändert werden.

Page 143: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

143

EREIGNIS BESCHREIBUNG

Deactivate Tritt auf, wenn das Diagramm, das Arbeitsblatt oder die Arbeitsmappe deaktiviert wird.

FollowHyperlink

Tritt auf, wenn Sie auf einen beliebigen Hyperlink in einem Arbeitsblatt klicken. Weitere Informationen zu Ereignissen auf Anwendungs- und Arbeitsmappenebene finden Sie unter dem SheetFollowHyperlink-Ereignis und dem SheetFollowHyperlink Event-Ereignis.

PivotTable AfterValueChange

Tritt nach der Bearbeitung oder Neuberechnung (bei Zellen, die Formeln enthalten) einer Zelle oder eines Zellbereichs in einer PivotTable auf.

PivotTable BeforeAllocateChanges

Tritt auf, bevor Änderungen auf eine PivotTable angewendet werden.

PivotTableBefore CommitChanges

Tritt auf, bevor für Änderungen an der OLAP-Datenquelle für eine PivotTable ein Commit ausgeführt wird.

PivotTableBefore DiscardChanges

Tritt auf, bevor Änderungen an einer PivotTable verworfen werden.

PivotTable ChangeSync Tritt nach Änderungen an einer PivotTable auf.

PivotTableUpdate Tritt auf, nachdem ein PivotTable-Bericht für ein Arbeitsblatt aktualisiert wurde.

SelectionChange Tritt auf, wenn sich die Markierung in einem Arbeitsblatt ändert.

Tabelle: Ereignisse des Worksheet-Objekts

Page 144: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

144

D.4 Das Range-Objekt

Die detaillierte Syntax nebst Beispielen findet man unter der Excel-

Objektmodellreferenz in der Excel-Hilfe für Entwickler Range-Object.

D.4.1 Eigenschaften

Die wichtigsten Eigenschaften eines Range-Objekts sind wie folgt:

EIGENSCHAFT BESCHREIBUNG

Address Gibt den Bezug eines Zellenbereichs zurück.

Application

Wird der Objektkennzeichner nicht verwendet, gibt diese Eigenschaft ein Application-Objekt zurück, das die Anwendung Excel darstellt. Wird der Objektkennzeichner verwendet, wird ein Application-Objekt zurückgegeben, das den Ersteller des angegebenen Objekts darstellt. Dies kann z. B. beim Einsatz von OLE-Automatisierungsobjekten von Interesse sein.

Cells Gibt ein Range-Objekt zurück, relativ zum gewählten Range-Objekt.

Column Gibt die erste Spalte am Anfang des angegebenen Bereichs als Zahl zurück.

Count Gibt die Anzahl an Zellen im Range-Objekt zurück.

Font Gibt ein Font-Objekt zurück, das die Schriftart des Range-Objekts darstellt.

Formula Gibt die Formel des Range-Objekts zurück oder legt sie fest.

Parent Gibt das übergeordnete Objekt zurück (Worksheet-Objekt).

Row Gibt die erste Zeile am Anfang des angegebenen Bereichs zurück.

Tabelle: Eigenschaften des Worksheet-Objekts

Page 145: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

145

D.4.2 Methoden

Die wichtigsten Methoden eines Range-Objekts sind wie folgt:

METHODE BESCHREIBUNG

Activate Aktiviert eine einzelne Zelle, die sich innerhalb der aktuellen Markierung befindet.

Calculate Berechnet alle geöffneten Arbeitsmappen, ein bestimmtes Arbeitsblatt oder einen bestimmten Zellbereich neu.

Select Markiert eine Zelle oder einen Zellbereich.

Tabelle: Methoden des Worksheet-Objekts

D.4.3 Ereignisse

Das Range-Objekt enthält keine Ereignisse.

Page 146: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

146

Literaturverzeichnis

Billo, Joseph E. (2007): Excel for Scientists and Engineers: Numerical Methods, John

Wiley & Sons, New Jersey, ISBN 978-0-471-38734-3.

Bloech, J.; Ihde, G.G. (1997): Vahlens Großes Logistiklexikon, Verlag Beck/Vahlen,

München.

Bourg, David M. (2006): Excel Scientific and Engineering Cookbook, O’Reilly Media,

USA, ISBN 978-0-596-00879-6.

Brambrink, Matthias (2009): Transportoptimierung und Tourenplanung unter

Verwendung des Excel-Solvers, Diplomarbeit FB Wirtschaftsinformatik,

Fachhochschule Dortmund.

Brokamp, Oliver (2011): Heuristische Verfahren zur Tourenplanung mit Zeitfenstern

unter Verwendung der Tabellenkalkulation, Bachelor Thesis, FB

Wirtschaftsinformatik, Fachhochschule Dortmund.

Can-Weber, Monika / Wendel, Tom (2010): Microsoft Excel 2010 Programmierung -

Das Handbuch - Entwicklung und Automatisierung mit VBA und XML,

ISBN: 978-3-86645-460-6

Deininghaus, Julia; Holtkötter, Tobias; Paulsen, Björn (2012): Ein Crash Kurs in

Excel VBA, Projektarbeit, Fachbereich Wirtschaftsinformatik, Fachhochschule

Dortmund.

Dijkstra, Edsger W. (1959): A note on two problems in connexion with graphs,

Numerische Mathematik, 1:269-271.

Domschke, Wolfgang (1997): Logistik: Transport, R. Oldenbourg Verlag, München,

Wien, 5. Auflage.

Domschke, Wolfgang (1985): Logistik: Rundreisen und Touren, R. Oldenbourg

Verlag, München, Wien, 4. Auflage.

Domschke, Wolfgang ; Drexl, Andreas (1996): Logistik: Standorte, R. Oldenbourg

Verlag, München, Wien, 4. Auflage.

Page 147: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

147

Domschke, Wolfgang und Drexl, Andreas (2006): Einführung in Operations

Research, 7. Auflage, Springer-Verlag, Berlin Heidelberg; ISBN 978-3-540-

70948-0.

Domschke, W.; Drexl, A.; Klein, R.; Scholl, A. und Voß, S. (2002): Übungen und

Fallbeispiele zum Operations Research, 4. Auflage, Springer-Verlag, Berlin

Heidelberg; ISBN 3-540-43334-1.

Feige, Dieter; Klaus, Peter (2008): Modellbasierte Entscheidungsunterstützung in der

Logistik, Deutscher Verkehrs-Verlag, Hamburg.

Gillett, B.E.; Miller, L.R. (1974): A Heuristic Algorithm for the Vehicle-Dispatch

Problem, Operations Research 22, S. 340-349.

Gogolok, Johannes (1999): VBA – Programmierung mit Excel: Grundlagen,

Fernuniversität Hagen, Reihe: Integrierte Systeme.

Held, Bernd (2004): Excel-VBA Die praktische Referenz, Markt + Technik Verlag,

München, ISBN 978-3-8272-6745-0.

Held, Bernd (2010a): Excel-VBA Kompendium, Markt + Technik Verlag, München,

ISBN 978-3-8272-4534-2.

Held, Bernd (2010b): Excel-VBA in 14 Tagen, Markt + Technik Verlag, München,

ISBN 978-3-8272-4535-9.

Kämper, Sabine (2009): Grundkurs Programmieren mit Visual Basic,

Vieweg + Teubner Verlag, Wiesbaden (3. Auflage), ISBN 978-3-8348-0690-1.

Müller-Mehrbach, Heiner (1971): Operations Research, Verlag Franz Vahlen,

München (2. Auflage).

Nahrstedt, Harald (2011): Excel + VBA für Maschinenbauer, Vieweg + Teubner

Verlag, Wiesbaden (3. Auflage), ISBN 978-3-8348-1750-1.

Nahrstedt, Harald (2012): Algorithmen für Ingenieure, Vieweg + Teubner Verlag,

Wiesbaden (2. Auflage), ISBN 978-3-8348-1692-4.

Page 148: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

148

Powell, Stephen G. / Baker, Kenneth R. (2007): The Art of Modeling with

Spreadsheets: Management Science, Spreadsheet Engineering, and Modeling

Craft, John Wiley & Sons, ISBN 0-470-03840-3, 2nd Edition.

Ragsdale, Cliff.T. (2006): Spreadsheet Modeling and Decision Analysis, 5th Edition,

South-Western College Publishing, ISBN 0-324-31256-3.

Weicker, Karsten (2007): Evolutionäre Algorithmen, Vieweg Verlag, Wiesbaden (2.

Auflage), ISBN 978-3-8351-0219-4.

Wille, Christoph (2009): Operations Research mit Excel und VBA, VDM Verlag,

Saarbrücken.

Williams, H. Paul (1999): Model Building in Mathematical Programming; John Wiley

& Sons; Chichester (4th Ed.).

Winkels, Heinz-Michael (2012): Modellbasiertes Logistikmanagement mit Excel,

Deutscher Verkehrs-Verlag, Hamburg, Edition Logistik Band 13;

ISBN 978-3-87154-460-6.

Winston, Wayne L.; Albright, S. Christian, (2006): Practical Management Science

Spreadsheets Modeling and Applications, Duxberry Press, 3rd Edition.

Die in dieser Arbeit verwendeten Landkarten sind unter Zuhilfenahme von „Google

Maps“ entstanden.

Page 149: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

149

Stichwortverzeichnis

A Anspruchsniveau ........................................................ 43 Arbeitsblatt ................................................................ 19

B Barrieren .................................................................... 73 Baum

minimaler spannender Baum ............................... 488 spannender Baum ............................................... 488

Baustoffhandel ........................................................... 16 Beschränkung ............................................................. 35 Bewertungsmatrix ...................................................... 33 Big-M ......................................................................... 48 Binärbedingung .......................................................... 40 binäre Optimierung .................................................... 42 Blockabstand .............................................................. 72 Bottleneck Transportmodell ..................................... 205 Bottleneck Zuordnungsmodell .................................. 305 Bound Bedingung ....................................................... 40 Breitengrad ................................................................ 64 Briefträgerproblem................................................... 588

gerichter Graph ................................................... 593 ungerichteter Graph ............................................ 593

Briefträgertour ......................................................... 594

C CALC/ OpenOffice ..................................................... 658 Capacitated Chinese Postman Problem ..................... 587 Capacitated Vehicle Routing Problem ....................... 514 Capacitated Vehicle Routing Problem with Time

Windows ............................................................. 567 Center

1-Center im Netzwerk .......................................... 381 1-Center-Problem der Ebene ............................... 426 Center im Netzwerk ............................................. 381 p-Center in Netzwerken ....................................... 396 p-Center-Problem im Koordinatensystem ............ 432

chemische Industrie ................................................... 16 Christofides .............................................................. 488 Covering Location Problem ....................................... 363 CVRP ........................................................................ 514 CVRPTW ................................................................... 568

D Decision Support System ............................................ 12 Dezimalgrad ............................................................... 64 Dijkstra-Algorithmus .................................. 187, 189, 562 direkte Entfernungsbestimmung ................................. 58 disjunktive Variablen .................................................. 49 Distanzmatrix ............................................................. 33 Dreiecksungleichung................................................... 72 Durchfahrtprobleme ................................................. 445

E Entfernungen ............................................................. 58 Entscheidungsfindung .................................................. 1

Entscheidungshilfe ....................................................... 1 Entscheidungsvariable ................................................ 35 EULER-Weg .............................................................. 490 Evolutionsalgorithmus ................ 418, 419, 427, 434, 435 Extremwertaufgabe .................................................... 37

F Fixkosten-Transportmodell ....................................... 225

G GAMS......................................................................... 13 ganzzahlige Optimierung ............................................ 42 Ganzzahligkeitsbedingung .......................................... 40 General Routing-Problem ......................................... 618 Ges2Yyy ..................................................................... 21 Ges4Xxx ..................................................................... 20 Globalisierung .............................................................. 2 Google Earth .............................................................. 65 Google Maps .............................................................. 66 Graph ......................................................................... 31

bewerteter Graph.................................................. 31 gemischter Graph .................................................. 31 gerichteter Graph .................................................. 31

H Heterogener Fuhrpark .............................................. 587

I Indikator .................................................................... 47 Innerbetriebliche Standortzuordnung ....................... 312 Intervallvariablen ....................................................... 51

K Kante ......................................................................... 31 kartesische Koordinatensysteme................................. 59 Knoten ....................................................................... 31

isolierter Knoten.................................................... 32 kombinatorische Optimierung .................................... 42 Kopfspalte .................................................................. 19 Kopfzeile .................................................................... 19 k-opt Verfahren

2-opt ................................................................... 505 3-opt ................................................................... 505 k-opt ................................................................... 505

Korrekturfaktoren ...................................................... 73 Kostenmatrix .............................................................. 33 Kreisverkehr ............................................................... 34 Kugeloberfläche ......................................................... 64 Kurier- Express- und Paketdienst............................... 134 Kurswinkel ............................................................... 470 kürzester Weg .......................................................... 172

von einem Knoten zu allen anderen ..................... 180 zwischen allen Knoten .................................. 187, 189 zwischen zwei Knoten ................................... 173, 180

Page 150: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Modellbasiertes Logistikmanagement

150

L Lagerkosten................................................................ 56 Längengrad ................................................................ 64 Latitude...................................................................... 64 LE 56 Lebensmittelindustrie ................................................. 15 lineare Optimierung ................................................... 39 logische Bedingungen ................................................. 46 Logistikeinheiten ........................................................ 56 Logistikkosten ............................................................ 56 logistische Versorgungskette ........................................ 2 Longitude ................................................................... 64 Lösungsgenerator ....................................................... 12

M Matching .................................................................. 489

minimales Kosten Matching ................................. 489 mathematische Optimierung ...................................... 35 mathematisches Modell ............................................... 1 Matrixbezeichnung ..................................................... 20 Matrixminimum-Verfahren ....................................... 110 maximaler Fluss ........................................................ 164 Maximum ................................................................... 36 Maximum-Benefit-Briefträgerproblem ...................... 618 Maximum-Covering-Location-Problem ...................... 374 m-Briefträgerproblem .............................................. 618 Median

1.Median in der Ebene......................................... 403 1-Median im Netzwerk ........................................ 381 p-Median im Netzwerk ........................................ 383 p-Median-Problem im Koordinatensystem ........... 415

Mediane Mediane im Netzwerk ......................................... 381

Mehrdepotproblem .................................................. 586 Mehrperiodenproblem ............................................. 587 Miller-Tucker-Zemlin ................................................ 444 Mineralölindustrie ........................................................ 4 Minimum ................................................................... 36 MINV(A) ..................................................................... 29 MKM ........................................................................ 489 MMULT(A,B) .............................................................. 28 Modellgenerator ........................................................ 12 MODI-Verfahren ......................................................... 78 Monitoring ................................................................. 17 MS Excel 2003 .......................................................... 619 MS Excel 2010 .......................................................... 637 MSB ......................................................................... 489 MTRANS(A) ................................................................ 22 MTZ-Bedingung ........................................................ 444

verallgemeinert ................................................... 517

N Nachfolger ................................................................. 32 Nebenbedingung ........................................................ 35 Netz ........................................................................... 31 Netzflussmodell........................................................ 143 Netzwerk ................................................................... 31 nichtlineare Optimierung ............................................ 42 Nicht-Negativitätsbedingung ...................................... 40 Nordwestecken-Regel............................................... 109

O Open Office .............................................................. 658 Optimierungskriterium ......................................... 35, 54 Optimum.................................................................... 35

P Petal-Algorithmen .................................................... 555 Pfad ........................................................................... 32 Pfeil ........................................................................... 31 Polarwinkel .............................................................. 466 Premium-Solver........................................................ 649

MS-Excel 2003 ..................................................... 630 Prim-Algorithmus ..................................................... 489

Q Quadratischer Abstand ............................................... 72 Quelle ........................................................................ 32

R Reflexivität ................................................................. 72 Reportgenerator......................................................... 12 Repsol Butano ........................................................ 4, 18 Restriktion ................................................................. 35 Rural Postman Problem ............................................ 618

S Satz des Pythagoras .................................................... 67 Savings-Verfahren .................................................... 535 Senke ......................................................................... 32 Set-Covering-Location-Problem ................................ 363 Single-Source-Transportmodell ................................. 218 Small-L ....................................................................... 49 SOL .............................................................................. 7 Spaltenbezeichnung ................................................... 20 Spaltenindex .............................................................. 19 Spaltenminimum-Verfahren ..................................... 109 sphärische Trigonometrie ........................................... 68 Standard-Solver

MS-Excel 2003 ..................................................... 625 MS-Excel 2010 ..................................................... 643

Standortoptimierung ................................................ 330 Standortplanung

diskret ................................................................. 330 kontinuierlich ...................................................... 330

Steiner-Weber-Modell .............................................. 403 Supply Chain ................................................................ 2 Sweep-Verfahren ..................................................... 549 Symmetrie ................................................................. 72

T T_XxxYyy .................................................................... 20 Tabelle ....................................................................... 19 Tourenplanung

kapazitätsbeschränkt ........................................... 514 kapazitätsbeschränkt mit Zeitfenster ................... 567

Tourenplanungsprobleme Heuristiken.......................................................... 535

Transportkosten ......................................................... 56

Page 151: Logistikmanagement mit Heuristiken - fhdo- · PDF fileLogistikmanagement mit Heuristiken . Logistische Problemstellungen unter Verwendung von Excel VBA lösen . Prof. Dr. Heinz-Michael

Übersicht über die wichtigsten Excel-Objekte

151

Transportmodell einstufig ................................................................ 76 Heuristiken.......................................................... 107 klassisches Transportmodell .................................. 76 kombiniert 1- oder 2-stufig .................................. 134 mehrstufig .......................................................... 143 zweistufig ............................................................ 124

Transportmodelle mit mehreren Gütern ................... 233 Transportoptimierung ................................................ 54 Travelling-Salesman-Problem.................................... 441

Heuristiken.......................................................... 466 Tripel-Algorithmus ............................................. 187, 188 TSP........................................................................... 442

geschlossen ......................................................... 445 offen ................................................................... 445

U Umschlagsmodell ..................................................... 124 Unimodularität ........................................................... 45 unproduktive Strecke ............................................... 589

V VARIGNONscher Apparat .......................................... 406 Vektor ........................................................................ 19

Spaltenvektor ........................................................ 19 Zeilenvektor .......................................................... 19

Vektoroptimierung ..................................................... 43 verbundene Variablen ................................................ 50 Verfahren der sukzessiven Einbeziehung ................... 480 Verfahren des besten Nachfolgers ............................ 477

Verfahren von Christofides ....................................... 488 VOGELsches Approximationsverfahren ..................... 111 Vorgänger .................................................................. 32

W Warehouse Location Problem

einstufig kapazitiert ............................................. 333 mehrstufig kapazitiert ......................................... 355 zweistufig kapazitiert ........................................... 340

Warehouse-Location-Probleme ................................ 333 Weg ........................................................................... 32 Windy Postman Problem .......................................... 618 Wirkkoeffizienten ..................................................... 198 WLP ......................................................................... 333

Z Zeilenbezeichnung...................................................... 20 Zeilenindex................................................................. 19 Zeilenminimum-Verfahren ........................................ 110 Zielfunktion ................................................................ 35 zulässiger Bereich ....................................................... 37 Zuordnungsmodell

klassisch .............................................................. 278 quadratisch ......................................................... 312 symmetrisch........................................................ 296 verallgemeinert ................................................... 288

Zuordnungsoptimierung ........................................... 278 Zuordnungsproblem

Heuristiken.......................................................... 324