excel und vba fuer maschinenbauer
DESCRIPTION
excelTRANSCRIPT
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
1/266
Harald Nahrstedt
Excel + VBA fr Maschinenbauer
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
2/266
Lehrsystem Technische Mechanik mit Lehrbuch,Aufgabensammlung, Lsungsbuch sowie Formeln und Tabellen
von A. Bge und W. Schlemmer
Handbuch Maschinenbau
herausgegeben von A. Bge
Elektrotechnik fr Maschinenbauer
von R. Busch
Technische Berichte
von H. Hering und L. Hering
Englisch fr Maschinenbauer
von A. Jayendran
Lehrwerk Roloff/Matek Maschinenelemente
von H. Wittel, D. Muhs, D. Jannasch und J. Voiek
Praktische Regelungstechnik
von W. Schneider
Werkstoffkunde
von W. Weibach
Aus dem Programm Grundlagen Maschinenbau
ww.viewegteubner.de
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
3/266
Hara Na rste t
Excel+VBA frMaschinenbauerProgrammieren erlernen und Problemstellungen lsen
., berarbeitete, aktualisierte und erweiterte Auflage
Mit 221 Abbildungen und 43 TabellenSTUDIUM
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
4/266
Bibliografische Information der Deutschen NationalbibliothekDie Deutsche Nationalbibliothek verzeichnet diese Publikation in derDeutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet ber abrufbar.
1. Auflage 20052., berarbeitete, aktualisierte und erweiterte Auflage 2008
Alle Rechte vorbehalten Vieweg+Teubner | GWV Fachverlage GmbH, Wiesbaden 2008
Lektorat: Thomas Zipsner | Imke Zander
Vieweg+Teubner ist Teil der Fachverlagsgruppe Springer Science+Business Media.www.viewegteubner.de
Das Werk einschlielich aller seiner Teile ist urheberrechtlich geschtzt. JedeVerwertung auerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne
Zustimmung des Verlags unzulssig und strafbar. Das gilt insbesondere frVervielfltigungen, bersetzungen, Mikroverfilmungen und die Einspeicherung undVerarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werkberechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen imSinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wren und dahervon jedermann benutzt werden drften.
Technische Redaktion: Gabriele McLemore, WiesbadenUmschlaggestaltung: KnkelLopka Medienentwicklung, HeidelbergDruck und buchbinderische Verarbeitung: Krips b.v., MeppelGedruckt auf surefreiem und chlorfrei gebleichtem Papier.
Printed in the Netherlands
ISBN 978-3-8348-0480-8
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
5/266
V
Vorwort zur 2. Auflage
Warum dieses BuchJeder Anwender eines Office-Pakets bekommt ohne zustzliche Anschaffungskosten eine Entwicklungsumge-
bung mit VBA (Visual Basic for Application). Von allen Office Anwendungen wird insbesondere die Anwen-dung Excel im Ingenieurbereich vielfach eingesetzt. Oft auch ohne Kenntnisse der Entwicklungsmglichkeiten.Was liegt also nher, als die Programmierung mittels VBA unter Excel an Beispielen aus der Praxis darzustellen.So entstand auch der Titel Excel VBA fr Maschinenbauer. Ziel dieses Buches ist es, sowohl dem Ingenieurstu-denten als auch dem praktizierenden Ingenieur Wege und Mglichkeiten der Entwicklung eigener Programme zuzeigen. Dabei gehe ich bewusst ber eine einfache Strukturierung nicht hinaus. Es gibt sicher an manchen Stel-len elegantere Mglichkeiten insbesondere auf die Fhigkeiten von VBA einzugehen. Dies berlasse ich gernedem Leser. Weitere Hilfen finden sich auch auf meiner Website.
VersionenBegonnen wurde dieses Buch mit der Version Microsoft Office Excel 2002 und beendet mit der Version Micro-soft Office Excel 2003. Diese Auflage wurde mit der Office Version 2007 erstellt. Da ich bewusst einfache Be-fehlsstrukturen verwendet habe, knnen diese Anwendungsbeispiele auch auf lteren Versionen ohne groeProbleme installiert werden.
Zum AufbauDas erste Kapitel gibt eine kurze Einfhrung in VBA und die Handhabung der Entwicklungsumgebung. Eineausfhrlichere Einfhrung finden Sie auf meiner unten genannten Website. Fr Anwender ohne Programmier-kenntnisse empfehle ich zunchst das Studium des Buches von Sabine Kmper [2]. In den nachfolgenden 13Kapiteln finden Sie ausgesuchte Anwendungsbeispiele aus verschiedenen Ingenieurbereichen. Neben einergrundlegenden Einfhrung in das jeweilige Thema, werden die Schritte von der Erstellung des Algorithmus bis
zur Erstellung der Anwendung anschaulich wiedergegeben. Abschlieend gebe ich in jedem Kapitel noch -bungshinweise fr weitere Anwendungsgebiete. Diese finden Sie ebenfalls auch auf meiner Website.
DanksagungIch danke all denen im Hause Vieweg+Teubner, die stets im Hintergrund wirkend, zum Gelingen dieses Buches
beigetragen haben. Ein besonderer Dank gilt meinem Lektor Thomas Zipsner, der mir geduldig mit vielen wich-tigen und richtigen Ratschlgen half, den fr den Leser besten Weg einzuhalten. Die zweite Auflage ist der Be-weis fr die Richtigkeit seiner Einflussnahme.
An den LeserDieses Buch soll auch zum Dialog zwischen Autor und Leser auffordern. Daher finden Sie sowohl auf der Ho-mepage des Verlages www.viewegteubner-verlag.de, wie auch auf der Homepage des Autors www.harald-
nahrstedt.deein Forum fr ergnzende Programme, Anregungen und Kommentare.Mhnesee, September 2008 Harald Nahrstedt
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
6/266
VII
Inhaltsverzeichnis
1 Einfhrung in VBA ...............................................................................................................11.1 Die VBA Entwicklungsumgebung .......................................................................................1
1.1.1 Der Visual Basic-Editor...............................................................................................1
1.1.2 Projekt und Projekt-Explorer.......................................................................................3
1.1.3 Der Objektkatalog........................................................................................................4
1.1.4 Das Eigenschaftsfenster...............................................................................................5
1.1.5 Die Direkt-, Lokal- und berwachungsfenster............................................................6
1.2 Objekte, Anwendungen, Formulare und Module .................................................................6
1.2.1 Objekte, allgemein.......................................................................................................61.2.2 Anwendungen und Makros..........................................................................................8
1.2.4 Formulare und Steuerelemente ..................................................................................11
1.2.5 Module.......................................................................................................................14
1.3 Die Syntax von VBA...........................................................................................................15
1.3.1 Konventionen.............................................................................................................15
1.3.2 Prozeduren und Funktionen.......................................................................................15
1.3.3 Datentypen fr Konstante und Variable.....................................................................16
1.3.4 Parameterlisten ..........................................................................................................18
1.3.5 Benutzerdefinierte Datentypen ..................................................................................18
1.3.6 Operatoren und Standardfunktionen..........................................................................19
1.3.7 Strukturen fr Prozedurablufe..................................................................................20
1.3.8 Geltungsbereiche .......................................................................................................22
1.3.9 Fehlerbehandlung in Prozeduren ............................................................................... 22
1.4 Algorithmen und ihre Darstellung....................................................................................... 23
1.4.1 Der Algorithmus........................................................................................................23
1.4.2 Top-Down-Design ..................................................................................................... 24
1.4.3 Flussdiagramm...........................................................................................................25
1.4.4 Struktogramm ............................................................................................................27
1.5 Objekte unter Excel.............................................................................................................28
1.5.1 Application Objects ...................................................................................................28
1.5.2 Workbook Objects .....................................................................................................30
1.5.3. Worksheet Objects....................................................................................................31
1.5.4 Range Objects............................................................................................................321.5.5 Zeilen und Spalten .....................................................................................................33
1.5.6 Zellen und Zellbereiche .............................................................................................33
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
7/266
VIII Inhaltsverzeichnis
1.5.7 Objektvariable............................................................................................................37
1.6 Aktionen unter Excel ...........................................................................................................37
1.6.1 Neue Excel-Anwendung starten.................................................................................37
1.6.2 Der Excel-Anwendung einen Namen geben..............................................................381.6.3 Dem Excel-Arbeitsblatt (Tabelle) einen Namen geben .............................................38
1.6.4 In der Excel-Anwendung ein neues Arbeitsblatt anlegen ..........................................38
1.6.5 Dem Projekt und dem Arbeitsblatt einen Namen geben............................................39
1.6.6 Prozeduren mit Haltepunkten testen ..........................................................................39
1.6.7 Codefenster teilen ......................................................................................................40
1.6.8 Symbolleiste fr den Schnellzugriff ergnzen ...........................................................40
1.6.9 Makros aus dem Menbereich Add-Ins aufrufen.......................................................42
1.6.10 Berechnungsprozeduren als Add-In nutzen .............................................................45
2 Berechnungen aus der Statik..............................................................................................46
2.1 Krfte im Raum ...........................................................................................................46
2.2 Krfte in Tragwerken...................................................................................................53
2.3 Biegetrger....................................................................................................................63
3 Berechnungen aus der Dynamik........................................................................................71
3.1 Massentrgheitsmomente.............................................................................................71
3.2 Mechanische Schwingungen........................................................................................81
4 Festigkeitsberechnungen.....................................................................................................87
4.1 Hauptspannungen eines zusammengesetzten Biegetrgers...........................................87
4.2 Die Anwendung der Monte-Carlo-Methode auf ein Biegeproblem..............................93
5 Berechnungen von Maschinenelementen...........................................................................97
5.1 Volumenberechnung nach finiten Elementen ............................................................... 97
5.2 Durchbiegung von Achsen und Wellen ......................................................................100
6 Technische Statistik und Wahrscheinlichkeitsrechnung................................................118
6.1 Stichprobenanalyse .....................................................................................................118
6.2 Probabilistische Simulation ........................................................................................127
7 Wirtschaftliche Berechnungen .........................................................................................1317.1 Maschinenbelegung nach Johnson..............................................................................131
7.2 Optimale Losgre .....................................................................................................135
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
8/266
Inhaltsverzeichnis IX
8 Berechnungen aus der Strmungslehre........................................................................... 143
8.1 Rotation von Flssigkeiten .........................................................................................143
8.2 Laminare Strmung in zylindrischen Rohren .............................................................147
9 Berechnungen aus der Thermodynamik......................................................................... 152
9.1 Nichtstationre Wrmestrmung durch eine Wand....................................................152
9.2 Der Carnotsche Kreisprozess fr ideale Gase.............................................................160
9.2.1 Allgemeine Zustandsgleichungen fr Gase und Gasgemische ................................ 160
9.2.1 Isochore Zustandsnderung ..................................................................................... 162
9.2.2 Isobare Zustandsnderung .......................................................................................163
9.2.3 Isotherme Zustandsnderung ................................................................................... 164
9.2.4 Adiabatische Zustandsnderung ..............................................................................1659.2.5 Der Carnotsche Kreisprozess..................................................................................166
10 Berechnungen aus der Elektrotechnik........................................................................... 170
10.1 Spannungen und Strme in Gleichstromleitungen....................................................170
10.2 Rechnen mit komplexen Zahlen ...............................................................................174
10.3 Gesamtwiderstand einer Wechselstromschaltung.....................................................178
11 Berechnungen aus der Regelungstechnik......................................................................18111.1 Der PID-Regler......................................................................................................... 181
11.2 Fuzzy-Regler ............................................................................................................193
12 Berechnungen aus der Fertigungstechnik.....................................................................201
12.1 Stauchen eine spanlose Formgebung ..................................................................... 201
12.2 Drehen eine spanende Formgebung.......................................................................207
12.3 Die belastungsoptimale Pressverbindung .................................................................210
13 Berechnungen aus der Getriebetechnik......................................................................... 218
13.1 Ermittlung der Zahnflankentragfhigkeit geradverzahnter Stirnrder ...................... 218
13.2 Lagerreaktionen beim Schneckengetriebe ................................................................224
14 Technische Dokumentation mit Excel ........................................................................... 232
14.1 Aufteilung von Informationen (Informationsmatrix)................................................232
14.2 Beziehungen zwischen Informationen (Relationale Datenbank)..............................23414.3 Verknpfungen mit Objekten (Entity-Relationship Model) ..................................... 235
14.4 Technische Darstellungen.........................................................................................236
14.5 Visualisierung von Daten..........................................................................................237
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
9/266
X Inhaltsverzeichnis
14.5.1 Das Control TreeView...........................................................................................237
14.5.2 HTML....................................................................................................................242
14.5.3 XML ......................................................................................................................245
Literaturverzeichnis ..............................................................................................................251
Sachwortverzeichnis Technik...............................................................................................253
Sachwortverzeichnis Excel+VBA .........................................................................................256
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
10/266
1
1 Einfhrung in VBA
VBA wurde ursprnglich entwickelt, um bestehende Anwendungen (Applications) anzupassen.Eine Anwendung ist ein eigenstndiges Computerprogramm wie Word fr Textverarbeitungoder Excel fr Tabellenkalkulationen. Und darin liegt die Einschrnkung. Im Gegensatz zuVisual Basic, lsst sich Visual Basic for Application nur in einer Anwendung nutzen. VBA istaber noch viel mehr als nur eine Programmiersprache. VBA besitzt auerdem eineEntwicklungsumgebung (IDE = Integrated Development Environment). ZustzlicheWerkzeuge erlauben das Testen und Optimieren von Prozeduren.
1.1 Die VBA Entwicklungsumgebung
Zu allen Office-Anwendungen wie Word, Excel, etc. ist eine zustzliche Anwendungvorhanden, nmlich eine integrierte Entwicklungsumgebung.
VBAEntwicklungs-
umgebung(Visual Basic-Editor)
Word DokumentExcel ArbeitsblattOutlook Objekt
PowerPoint ObjektAccess Datenbank
Publisher ObjektFrontpage Objekt
etc. Bild 1-1Anwendungen undVisual Basic-Editor
Installiert wird die Entwicklungsumgebung ber die Schaltflche Office und der darinenthaltenen Schaltflche Optionen. Unter den Optionen befindet sich auch die Auswahl:Entwicklungsregisterkarte in der Multifunktionsleiste anzeigen. Damit befindet sich in derAnwendung dann der Menpunkt Entwicklertools.
Geffnet wird die Entwicklungsumgebung aus einer Office Anwendung heraus ber
Entwicklertools und dann mit Visual Basic. Es ffnet sich ein neues Fenster, das wirnachfolgend als Visual Basic-Editor bezeichnen. Der Visual Basic-Editor muss aber nichtimmer ber Funktionen aus der Menleiste aufgerufen werden. Mit den Tasten Alt+F11 kanndie Entwicklungsumgebung auch direkt aus den Anwendungen starten.
1.1.1 Der Visual Basic-Editor
Der Visual Basic-Editor wirkt auf den ersten Blick erdrckend. Nicht zuletzt weil er ausmehreren Fenstern besteht, die unterschiedliche Aufgaben erfllen.
Beginnen wir mit den blichen Grundeinstellungen. Dazu rufen sie im Visual Basic-Editor denMenpunkt Extras/Optionen auf (nicht unter der Excel-Tabelle Extras!). Es erscheint ein
Fenster mit vier Registern, die Sie nachfolgend sehen.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
11/266
2 1 Einfhrung in VBA
Unter Editor (Bild 1-2) stellen Sie die Entwicklungsparameter ein. Die Tab-Schrittweite wirdauf 3 gesetzt. Klicken Sie alle Optionsfenster an. Wichtig ist vor allem Variablendeklarationerforderlich. Damit werden Sie bei der Programmentwicklung gezwungen, alle verwendetenVariablen zu deklarieren. An der ersten Stelle eines jeden sich neu ffnenden Codefensterssteht dann immer die Anweisung:
Sie werden diese Anweisung auch in unseren spteren Programmlisten wieder finden.
Bild 1-2
OptionenEditor
Unter Editorformat wird die Schriftart fr die Codedarstellung gewhlt. Ich benutze hierCourier New mit der Schriftgre 8, weil bei dieser Schriftart alle Zeichen die gleiche Breitebesitzen und somit direkt untereinander stehen. Sie knnen aber auch eine andere Schriftartwhlen. Wichtig ist in erster Linie eine deutliche Lesbarkeit des Programmcode.
Bild 1-3
Optionen
Editorformat
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
12/266
1.1 Die VBA Entwicklungsumgebung 3
Unter Allgemein sind noch Angaben zur Darstellung der Benutzeroberflche mglich. DieAnordnung von Steuerelementen geschieht in Rastern. Hier habe ich 3 Punkte eingestellt.
Bild 1-4
OptionenAllgemein
Und im letzten Fenster Verankern sind alle mglichen Fenster des Visual Basic-Editorsaufgefhrt. Neben dem eigentlichen Editor bentigen wir zur Entwicklung und Ausfhrung denProjekt-Explorer und das Eigenschaftsfenster.
Bild 1-5
OptionenVerankern
1.1.2 Projekt und Projekt-Explorer
Eine Anwendung, zur der in unserem Fall neben einer oder mehrerer Excel-Tabellen auchBenutzerflchen, Programmmodule, Objekte und Prozeduren gehren, wird als Projektbezeichnet.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
13/266
4 1 Einfhrung in VBA
Der Projekt-Explorer dient zur Verwaltung aller Objekte eines Projekts. Jedes Projekt besitzteinen Namen. Beim Neustart steht immer Projekt (Dokument 1) im Explorer. Da man im Laufeder Zeit mit vielen Projekten arbeitet, sollte man jedem einen aussagekrftigen Namen geben.
Bild 1-6
Der Projekt-Explorer imVisual Basic-Editor nachdem Start
Wichtig ist noch, dass in der Menleiste des Projekt-Explorers zwei Schaltflchen von groerBedeutung liegen. Mit diesen Schaltflchen bestimmen Sie, ob im Editor ein Objekt (z.B. eineBenutzerflche) als Ansicht oder die zugehrigen Prozeduren als Programmcode dargestelltwerden. Ein im Projekt-Explorer ausgewhltes Objekt, ist auch immer im Editor sichtbar,soweit dies von der Art des Objekts mglich ist.
Bild 1-7
Umschaltung im Visual Basic-Editor zwischen Ansicht und
Programmcode
1.1.3 Der Objektkatalog
Der Objektkatalog, der sich genauso wie alle anderen Fenster in der Entwicklungsumgebungber die Menfunktion Anzeigen ein- und ausschalten lsst, zeigt die Klassen, Eigenschaften,Methoden, Ereignisse und Konstanten an, die in den Objektbibliotheken und Prozeduren demjeweiligen Projekt zur Verfgung stehen. Mit diesem Dialogfeld knnen Sie Objekte, die Sieselbst erstellen, oder Objekte aus anderen Anwendungen suchen und verwenden. DerObjektkatalog wird eigentlich nur bei Bedarf geffnet.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
14/266
1.1 Die VBA Entwicklungsumgebung 5
Bild 1-8Der Objekt-Katalog imVisual Basic-Editor
1.1.4 Das Eigenschaftsfenster
Das Eigenschaftsfenster ist ein zur Entwicklung sehr wichtiges Fenster. Es listet fr dasausgewhlte Objekt die Eigenschaften zur Entwurfszeit und deren aktuelle Einstellungen auf.
Bild 1-9
Das Eigenschaftsfenster imVisual Basic-Editor
Sie knnen diese Eigenschaften zur Entwurfszeit durch Anklicken in der Liste ndern. Dazumssen Sie zuerst das entsprechende Objekt durch Anklicken im Editor (Ansicht) markieren.Wenn Sie mehrere Steuerelemente auswhlen, enthlt das Eigenschaftsfenster eine Liste derEigenschaften, die die ausgewhlten Steuerelemente gemeinsam haben. So mssen
Objektgruppen nicht einzeln gendert werden.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
15/266
6 1 Einfhrung in VBA
1.1.5 Die Direkt-, Lokal- und berwachungsfenster
Die Direkt-, Lokal- und berwachungsfenster helfen beim Testlauf. Diese Fenster dienen zumTesten der Programme. Das Direktfenster dient zum Eingeben und zum Ausfhren vonProgrammcode zur Fehlersuche. Das Lokalfenster zeigt alle deklarierten Variablen in der
aktuellen Prozedur und deren Werte. Das berwachungsfenster berwacht Ausdrcke undalarmiert beim Eintreten von Randbedingungen. Zur weiteren Einarbeitung empfehle ich dieLiteraturhinweise oder das auf meiner Website eingestellte VBA-Lehrkapitel. Fr unsereProgrammierung sind sie nur von untergeordneter Bedeutung.
bung 1.1 Neues Projekt anlegen
ffnen Sie zunchst eine neue Excel-Anwendung. Legen Sie danach die Symbolleiste VisualBasic an, so wie unter 1.1 beschrieben. Mit der ffnung des Visual Basic-Editors finden Sie imProjektfenster den derzeitigen Namen des Projekts. Wenn Sie diesen anklicken, dann findenSie den Projektnamen auch im Eigenschaftsfenster unter (Name) wieder. Mit einem
Doppelklick und einer neuen Eingabe knnen Sie diesen ndern. Die nderung sehen Sieanschlieend dann auch im Projektfenster. Diesem Buch-Projekt geben wir den NamenBerechnungen_VBA.
1.2 Objekte, Anwendungen, Formulare und Module
1.2.1 Objekte, allgemein
Der grundlegende Begriff in dieser Entwicklungsumgebung ist das Objekt. Einem Objektordnen wir Methoden, Eigenschaften und Ereignisse zu. Die Schreibweise von Objekt,Unterobjekt und Methode oder Eigenschaft ist:
oder
Will man z. B. einer TextBox1 auf dem Formular UserForm1 den Text Dies ist ein Test!zuweisen, dann schreibt man:
Mchte man, dass dieser Text nicht angezeigt wird, dann schreibt man:
Ereignissen von Objekten sind in der Regel Prozeduren zugeordnet. Klickt man z. B. mit der
linken Maustaste auf den Schalter mit dem Namen cmdStart eines Formulars, so gibt es dazuim Codefenster des Formulars die Prozedur:
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
16/266
1.2 Objekte, Anwendungen, Formulare und Module 7
In diese Prozedur schreibt man nun all die Anweisungen, die dann ausgefhrt werden sollen,wenn die Schaltflche angeklickt wird.
Geschieht die obere Textzuweisung im Formular UserForm1 dann gengt es zu schreiben:
Es muss also nicht immer die gesamte Objekthierarchie genannt werden, wenn das Objekteindeutig bestimmt ist. Ebenso gibt es gewisse Grundeinstellungen (default-Werte), die man inder Aufzhlung von Objekt und Eigenschaft nicht nennen muss. Bei einer TextBox ist die
Standardeinstellung Text und so gengt es zu schreiben:
Objekte im Visual Basic-Editor sind Dokumente, Tabellen, Prsentationen, Datenbanken, etc.Aber auch Fenster, Module, Steuerelemente, Statusleisten, Menelemente, usw. Grundstzlichist zwischen Auflistungen von Objekten und den Objekten selbst zu unterscheiden.Auflistungen wie Workbooks und Worksheets in Excel enthalten Objekte (Workbook undWorksheet), die ber einen Namen oder einen Index angesprochen werden.
Nachfolgend einige wichtige aktuell gltige Objektlisten:
Word Dokumente - Auflistung Documents(Index).Activate Excel Workbooks - Auflistung Workbooks(Index).Activate PowerPoint Presentation - Auflistung Presentation(Index).Activate Windows - Auflistung Windows(Index).Activate
Um ein Objekt einer solchen Liste anzusprechen, benutzt man einen Index. So liefert
den Namen des zweiten Arbeitsblattes (eine Eigenschaft des Objektes Sheet) in einemAusgabefenster. Der Zugriff auf ein nicht vorhandenes Objekt erzeugt den Laufzeitfehler 1004.
Aus diesen Listen ergeben sich dann je nach Anwendung die Objekte:
Application aktives Objekt FileSearch Objekt zum Suchen nach Dateien Assistant Objekt des Office Assistenten Document Word-Dokument Workbook Excel-Arbeitsmappe Presentation Objektklasse PowerPoint MsgBox Meldefenster InputBox Anzeige eines Eingabedialogs
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
17/266
8 1 Einfhrung in VBA
Objekten kann man im Eigenschaftsfenster unter Namen einen anderen Namen zuordnen.Dabei geben wir dem Objektnamen ein Prfix, das die Objektart kennzeichnet. Dies ist nichtzwingend einzuhalten, dient aber der bersichtlichkeit im Programmcode. Ein einmalfestgelegtes Prfix sollte man auch beibehalten.
Beispiele: tbl Tabelle (sheet) frm Form (user form) mod Modul (modul) com Befehlsschaltfche (command)
1.2.2 Anwendungen und Makros
Unter Anwendungen sind Word-Dokumente, Excel-Tabellen, Outlook-Objekte, PowerPoint-Prsentationen, etc. zu verstehen. Auch in Anwendungen (Excel-Tabellen) lassen sichProzeduren programmieren oder mit der Makro-Funktion erzeugen.
Die Makro-Funktion wird mit Entwicklertools/Makro aufzeichnen gestartet. Alle Ttigkeitenmit der Excel-Tabelle werden nun (wie bei einem Recorder) aufgezeichnet. Gestoppt wird dieAufzeichnung wieder mit Entwicklertools/Aufzeichnung beenden.
bung 1.2 Mit der Makro-Funktion eine Kreisflche berechnen
An einem einfachen Beispiel betrachten wir die Makro-Funktion. Auf unserer durch dievorherige Anwendung angelegten Tabelle geben Sie an beliebiger Stelle einen Wert alsDurchmesser eines Kreises ein. In diesem Beispiel ist es die Zelle B4. Bettigen Sie dieEingabe mit der Eingabetaste. Damit ist nun die Zelle B5 markiert. Schalten Sie nun dieMakro-Funktion unter Entwicklungstools/Makro aufzeichnen ein. Dabei wird in einem Fenster
nach dem Makronamen gefragt. Geben Sie hier z. B. Kreis ein. Nun bestimmen Sie in der ZelleB5 den Inhalt der Kreisflche mit dem Durchmesser d aus B4 nach der Formel:
42
dA = (1.1)
Geben Sie also unter B5 ein: = B4 * B4 * 3,1415926 / 4. Achten Sie bitte darauf, bei der Zahlein Komma zu verwenden. Danach halten Sie die Makroaufzeichnung wieder an.
Sie haben nun ein Makro erstellt. Mit jeder neuen Eingabe im Feld B4 und dem abschlieendenDruck auf die Eingabetaste, erscheint in B5 das Ergebnis. Sie knnen den Wert in B4 auch nurndern (ohne Eingabetaste) und mit Entwicklungstools/Makro und der Makrosauswahl Kreis
das Makro aufrufen. Sie erhalten wiederum die Flche. Das Makro funktioniert auch aufanderen Zellen. Whlen Sie eine andere Zelle aus und tragen Sie dort den Durchmesser ein.Markieren Sie jetzt die Zelle darunter und rufen Sie erneut das Makro Kreis ber dieMenfunktionen auf. Das Ergebnis erscheint in der markierten Zelle. Nach der Auswertungwird berflssigerweise die Zelle B6 markiert.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
18/266
1.2 Objekte, Anwendungen, Formulare und Module 9
ffnen Sie jetzt bitte den Visual Basic-Editor. Sie werden im Projekt-Explorer ein neuesObjekt Modul1 entdecken. Dieses wurde durch die Makro-Funktion erzeugt. Ein Doppelklickauf dieses Objekt im Projekt-Explorer zeigt Ihnen den Inhalt im Codefenster. Sie finden dortdas zuvor definierte Makro Kreis als Prozedur mit etwa dem dargestellten Inhalt.
Zeilen, die mit einem Hochkomma beginnen, sind als reine Kommentarzeilen zu betrachten.Die Prozedur besteht aus zwei Anweisungen. Die erste Anweisung bezieht sich auf die aktive
Zelle (ActiveCell) (in unserem Fall B5) und benutzt den Wert aus der Zeile (Row) davor (R[-1]) und der gleichen Spalte (Column) C. Diese Art der Adressierung bezeichnet man alsindirekt. Man gibt also keine absolute Adresse (B4) an, sondern sagt: Die aktuelle Zelle (B5) 1. Der Vorteil liegt klar auf der Hand. Unser Makro lsst sich auf jede beliebige Zelleanwenden, wie zuvor schon ausprobiert. Der Wert (aus der vorherigen Zelle) wird mit sichselbst multipliziert, dann mit der Kreiskonstanten und durch 4 dividiert. Das Ergebnis wird inder aktuellen Zelle (B5) abgelegt. Danach wird die Zelle B6 angesprochen. Die AnweisungRange("B6").Select ist berflssig und muss entfernt werden.
Nun bentigen wir fr diese Prozedur nicht grundstzlich das Modul1. Wir knnen sie nmlichauch direkt in die Anwendung kopieren. Markieren Sie dazu die gesamte Prozedur in Modul1und whlen mit der rechten Maustaste im Befehlsfenster Ausschneiden. Doppelklicken Sie nunim Projekt-Explorer auf das Objekt Tabelle1. Nun ffnet sich ein neues Codefenster, nmlichdas der Anwendung Tabelle1. Und in diesem Fenster rufen Sie mit der rechten Maustasteerneut das Befehlsfenster auf und whlen Einfgen. Schalten Sie nun in der Menleiste desProjekt-Explorers auf Ansicht (siehe Bild 1-7) und Sie sehen wieder die Tabelle1. Wenn Sienun in der Menleiste von Tabelle1 unter Entwicklungstools/Makros die bersichtvorhandener Makros aufrufen, finden Sie in der bersichtsliste den Eintrag Tabelle1.Kreis.Dem Prozedurnamen wird also das entsprechende Objekt vorangestellt. Beide Namen werdendurch einen Punkt getrennt. Ganz im Sinne der Objektschreibweise (siehe Kapitel 1.2.1).
Nun ist dies eine bung und wir bentigen das Modul1 nicht wirklich. Mit einem Klick derrechten Maustaste auf dieses Objekt im Projekt-Fenster ffnet sich ein Befehlsfenster und Sieknnen Modul1 lschen. Vielleicht probieren Sie noch andere einfache Makros aus, um einGefhl fr die Wirkungsweise zu bekommen. Whlen Sie dazu andere Volumenformeln oderhnliche Berechnungen.
Die Makro-Funktion kann Ihnen bei der Entwicklung sehr hilfreich sein. Wollen Sie z. B. einDiagramm per Prozedur erstellen, dann knnen Sie dies zuerst manuell mittels Makrodurchfhren. Den so erhaltenen Quellcode knnen Sie dann Ihren Bedrfnissen anpassen.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
19/266
10 1 Einfhrung in VBA
1.2.3 Steuerelemente in Anwendungen
Nun ist es sehr mhsam, fr den Aufruf einer Funktion immer den Makro-Befehl aufzurufen.Anwendungen (Word-Dokument, Excel-Arbeitsblatt, ...) verfgen ber die Mglichkeit,Steuerelemente aufzunehmen. Mit einem Klick auf die Schaltflche Steuerelement-Toolbox
(Bild 1.10) werden alle Standard-Steuerelemente angezeigt.
Bild 1-10
Formular-steuerelemente
bung 1.3Prozedur mit Schaltflche starten
Schalten Sie in der Symbolleiste von Visual Basic den Entwurfsmodus (Bild 1.6) ein. KlickenSie zur Anzeige auf Einfgen in der Steuerelement-Toolbox. Whlen Sie das SteuerelementBefehlsschaltflche mit einem Klick aus. Fahren Sie nun mit der Maus auf die Tabellen-Oberflche an die Stelle, an der eine Befehlsschaltflche eingefgt werden soll. Der Cursor hat
nun die Form eines Kreuzes. Klicken Sie mit der linken Maustaste an die Stelle auf derTabelle, wo die linke obere Ecke der Schaltflche sein soll. Halten Sie die Maustaste gedrcktund fahren Sie so zum rechten unteren Ende der Befehlsschaltflche. Wenn Sie nun dieMaustaste loslassen, sollten Sie eine Befehlsschaltflche mit dem Namen CommandButton1sehen. Fhren Sie auf dieser Schaltflche einen Doppelklick aus, schaltet der Editor aufCodedarstellung um und Sie sehen die Ereignisprozedur:
Bei jedem Klick auf die Befehlsschaltflche im Anwendungs-Modus, wird diese Ereignis-Prozedur aufgerufen. Fgen Sie nun manuell in diese Prozedur den Aufruf der Testprozedurein.
Das Call kann eigentlich entfallen, weil das System den Namen Kreis kennt. Ich trage aber derbersichtlichkeit wegen in allen Prozeduren das Call mit ein.
Beenden Sie nun den Entwurfs-Modus (Bild 1-6). Geben Sie in einer beliebigen Zelle einenneuen Wert ein und drcken Sie die Eingabetaste, damit die darunter liegende Zelle markiert
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
20/266
1.2 Objekte, Anwendungen, Formulare und Module 11
wird. Drcken Sie die Befehlsschaltflche. Damit wird die Prozedur Kreis ausgefhrt. Dasnachfolgende Bild macht diesen Vorgang noch einmal grafisch deutlich. Hier ist es dieBefehlsschaltflche Start, die durch Anklicken die Ereignisprozedur Start_Click aufruft.Interessant ist aber auch, dass mit der indirekten Adressierung diese Prozedur fr jede Zelle aufder Tabelle anwendbar ist.
Probieren Sie auch andere Steuerelemente aus, wie z.B. die Textbox.
Button Start Sub Start_Click() (Anweisungen)End Sub
Office-Anwendung Ereignis-Prozeduren
Bild 1-11
Anwendungenund Ereignis-Prozeduren
1.2.4 Formulare und Steuerelemente
Neben der eigentlichen Anwendung (Tabelle) knnen zustzlich Formulare fr den Dialog mitdem Anwender benutzt werden. Unter der Menfunktion Einfgen/UserForm stellt der VisualBasic-Editor ein neues Formular bereit und blendet gleichzeitig die Werkzeugsammlung mitden vorhandenen Steuerelementen ein.
Steuerelemente (eine Klasse von Objekten) sind das A und O der Formularfenster. Sie steuernden eigentlichen Programmablauf. Jedes Steuerelement hat bestimmte Eigenschaften(Einstellungen und Attribute), die im Eigenschaftsfenster angezeigt werden. Die dortangegebenen Werte lassen sich im Entwurfsmodus verndern oder beim spteren Ablauf durchWertzuweisung.Auf Steuerelemente lassen sich auch verschiedene Aktionen anwenden und man spricht hiervon Methoden (z.B. Activate, Refresh, Clear, Load, ...). Ein Ereignis ist eine Aktion, die voneinem Steuerelement erkannt wird (z.B. Mausklick, Tastendruck, ...). Ereignisse lassen sichdurch Ereignis-Prozeduren bearbeiten.
Bild 1-12
Ein Formular und dieWerkzeugsammlung
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
21/266
12 1 Einfhrung in VBA
bung 1.4 Formular zur Berechnung einer Kreisflche erstellen
In dem Eigenschaftsfenster zum Formular (UserForm) finden Sie eine Menge Eigenschaften,die Sie mit der ntigen Vorsicht verndern knnen. Dort finden Sie auch die EigenschaftCaption. Sie beinhaltet den Text fr die Kopfzeile des Formulars. Geben Sie hier Berechnung
einer Kreisflche ein.Nun ziehen Sie mit der Maus durch Anklicken und Festhalten, aus der Werkzeugsammlungnacheinander jeweils zwei Bezeichnungsfelder, Textfelder und Befehlsschaltflchen auf dasFormular. ndern Sie in den Eigenschaften der Bezeichnungsfelder und Befehlsschaltflchendie Texte in Caption so ab, dass ihr Formular eine hnliche Form wie in Bild 1-12 hat. ndernSie auch fr alle Objekte unter Font die Schriftgre auf 10 ab. Geben Sie der Textbox fr denDurchmesser den Namen txtDurchmesser und der anderen den Namen txtFlche. DenSchaltflchen geben Sie die Namen cmdBerechnung und cmdEnde.
Bild 1-13
Anwendungen und Ereignis-Prozeduren
Wenn Sie nun nacheinander auf die Schaltflchen Berechnung und Ende in dieser Darstellung
einen Doppelklick ausfhren, schaltet der Visual Basic-Editor automatisch in dieCodedarstellung um und zeigt ihnen die entsprechenden (noch leeren) ProzedurencmdBerechnung_Click bzw. darunter cmdEnde_Click. Diese Prozeduren erhalten dienachfolgend dargestellten Anweisungen. Dabei achten Sie bei der Zahleneingabe darauf, dassder Dezimalpunkt Vor- und Nachkommastellen trennt und nicht das Komma. Um dieseProzeduren zu testen, whlen Sie in der Menzeile des Visual Basic-Editors die AnweisungAusfhren/Sub UserForm ausfhren. Damit wird das Formular eingeblendet und Sie knnennun in das Feld Durchmesser einen Wert eingeben und mit der Schaltflche Berechnungerhalten Sie das Ergebnis unter Kreisflche.
Das knnen Sie beliebig oft wiederholen. Mit der Schaltflche Ende schlieen Sie das
Formular wieder. Nun wre es sehr schn, wenn das Formular direkt in der Anwendung(Tabelle) gestartet werden knnte. Die Lsung kennen Sie bereits eine Befehlsschaltflche in
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
22/266
1.2 Objekte, Anwendungen, Formulare und Module 13
der Anwendung nach Kapitel 1.2.3. Erstellt im Entwurfsmodus. Nur den Aufruf einesFormulars mssen wir noch kennen lernen. Er lautet:
Damit wird das Formular in die Anwendung geladen und existiert somit. Nur sehen kann es derAnwender noch nicht. Dazu muss eine weitere Anweisung ausgefhrt werden, die lautet:
Ist der Name der Befehlsschaltflche in der Tabelle z. B. cmdStart, dann sollte die Prozedurwie folgt aussehen:
Nachdem Sie den Entwurfsmodus ausgeschaltet haben, knnen Sie mit der Ausfhrungbeginnen. Es gbe noch eine ganze Menge zu verbessern, doch den Platz heben wir uns frspter auf. Nur noch zwei Ergnzungen. Damit Sie immer wieder nach der Berechnung direkteinen neuen Durchmesser eingeben knnen, wird das Eingabefeld fr den Durchmesser neuaktiviert. Diese Eigenschaft nennt sich Focus und das Objekt erhlt den Focus mit derAnweisung:
Welche Ereignisse ein Objekt in ihrem Projekt kennt, knnen Sie ebenfalls im Codefensterzum Formular erfahren. Im Kopf des Codefensters gibt es zwei Auswahlfelder (Bild 1-14).
Bild 1-14
Auswahlfenster frObjekte imFormular und derenEreignisprozeduren
Im linken Feld erhalten Sie eine Auswahlliste der vorhandenen Objekte. Whlen Sie hiertxtDurchmesser mit einem Klick. Im rechten Feld erscheint eine Auswahlliste aller mglichenEreignisse. Whlen Sie hier Change. Im Codefenster erscheint nun eine neue Prozedur
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
23/266
14 1 Einfhrung in VBA
txtDurchmesser_Change. Diese Prozedur wird immer aufgerufen, wenn sich der Inhalt im FeldtxtDurchmesser ndert. Wenn Sie in dieser Prozedur ebenfalls den Aufruf derBerechnungsprozedur platzieren, wird nach jeder nderung im Eingabefeld die Berechnungaufgerufen. Damit wird die Schaltflche Berechnung berflssig.
Wen es aber strt, dass mit jeder Zahl die Berechnung startet und der nur nach Druck auf dieEingabetaste eine Berechnung mchte, ersetzt diese Prozedur durch die nachfolgende.
Diese Prozedur liefert als Parameter den ASCII-Code der gedrckten Taste. So erfolgt derAufruf der Prozedur nur, wenn der Tastencode = 13 ist. Das ist der der Eingabetaste. Eineunangenehme Erscheinung tritt hierbei auf. Durch den Druck auf die Eingabetaste wird derFocus auf ein nachfolgendes Objekt gesetzt und bleibt somit nicht bei dem Eingabefeld. DieReihenfolge der Objekte zur Focus-Vergabe wird unter der Eigenschaft TabIndex beginnendbei 0 festgelegt. Erst wenn Sie allen anderen Objekten unter TabStop = False das Recht zum
Erhalt des Focus entziehen, bleibt der Focus beim Eingabefeld.Auch Formulare haben Namen und diese knnen, wenn Sie das Formular anklicken, imEigenschaftsfenster unter (Name) gendert werden. Stellen Sie vor jeden Namen die Kennungfrm. Sind Formulare allgemein gehalten, knnen sie auch in anderen Projekten zur Anwendungkommen.
1.2.5 Module
Module dienen wie die Formulare zur Aufnahme von Prozeduren, die auch bei anderenProjekten eingesetzt werden knnen. Allerdings besitzen Module keine Fensterflche unddamit auch keine Steuerelemente. Ihr einziger Inhalt sind Programmcodes. Ein Modul haben
Sie bereits kennen gelernt. Makros erzeugen Prozeduren in Modulen.Module lassen sich in verschiedenen Anwendungen einbinden. Eine weitere wichtigeEigenschaft der Module ist, dass in ihnen mit Global deklarierte Variable fr das ganze ProjektGltigkeit haben.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
24/266
1.3 Die Syntax von VBA 15
1.3 Die Syntax von VBA
1.3.1 Konventionen
Kommentare im Programmcode werden zeilenweise gekennzeichnet. Eine Kommentarzeile
beginnt mit einem Hochkomma oder der Anweisung Rem (fr Remark). Siehe Prozedur Kreisim Kapitel 1.2.2. Lngere Anweisungen knnen auf mehrere Zeilen verteilt werden. Dazu wirdein Unterstrich gesetzt. Achtung! Vor dem Unterstrich muss sich ein Leerezeichen befinden.Siehe Prozedur txtDurchmesser_KeyDown im Kapitel 1.2.4.
Eine Zeile kann auch mehrere Anweisungen enthalten. Diese werden durch einen Doppelpunktvoneinander getrennt und von links nach rechts abgearbeitet.
Das Einrcken von Programmanweisungen innerhalb von bedingten Anweisungen oderProgrammschleifen dient nur der bersichtlichkeit und hat keine Auswirkungen auf dieProzedur. Ich empfehle Ihnen jedoch diese Schreibweise. So werden Sie auch ltereProgramme besser lesen knnen.
1.3.2 Prozeduren und Funktionen
Prozeduren haben den grundstzlichen Aufbau:
Der Aufruf der Prozedur erfolgt durch den Prozedurnamen und eventuellen Parametern. Beiden bergebenen Parametern kann es sich um Variable verschiedener Datentypen handeln. Dieso bergebenen Parameter sind nur in der Prozedur gltig. Werden Variable am Anfang einesFormulars mit Global definiert, so gelten sie in allen Prozeduren und Funktionen des gesamtenFormulars. Aber Achtung, es muss immer zwischen lokalen und globalen Variablenunterschieden werden. Mehr dazu unter Parameterlisten.
Eine Prozedur kann jederzeit mit der Anweisung Exit Sub beendet werden. Sinnvollerweise inAbhngigkeit von einer Bedingung.
Funktionen sind eine besondere Form von Prozeduren. Ihr Aufbau entspricht dem vonProzeduren:
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
25/266
16 1 Einfhrung in VBA
Der Aufruf der Funktion erfolgt ebenfalls durch den Funktionsnamen und eventuellenParametern. Allerdings fungiert hier der Funktionsname auch als Parameter und kann eineVariable verschiedener Datentypen darstellen.
Die VBA-Entwicklungsumgebung verfgt ber eine groe Auswahl an Prozeduren undFunktionen in Bibliotheken.
1.3.3 Datentypen fr Konstante und Variable
Jedes Programm bentigt die Mglichkeit, Daten zu speichern. VBA bietet zwei Formen,Konstante und Variable. Beide Formen werden durch einen Namen bezeichnet. Fr dieNamensvergabe gibt es folgende Regeln:
erstes Zeichen ist ein Buchstabe jedes weitere Zeichen eine Ziffer, ein Buchstabe, ein Sonderzeichen (auer mathematische
Zeichen und Leerzeichen) maximal 255 Zeichen kein VBA Schlsselwort
Werden bestimmte feststehende Daten mehrfach benutzt, definiert man sie blicherweise alsKonstante in der Form:
VBA und Office stellen eine groe Anzahl von Konstanten zur Verfgung, dabei weisen dieersten beiden Buchstaben auf die Anwendung hin. Nachfolgend die Wichtigsten:
vb VBA Kontante (vbYes) wd Word Konstante (wdAlign...) xl Excel Konstante (xlFixed...) ac Access Konstante (acCmd...) ad Konstante fr Datenzugriff (adLock...) pp Powerpoint Konstante (ppEffect...) mso Office Konstante (msBar...) fm MSForms Bibliothek fr Formulare (fmAction...)
Variable werden definiert durch:
Die wichtigsten Datentypen finden Sie in der nachfolgenden Tabelle. Um den Datentyp einer
Variablen eindeutig zu kennzeichnen, kann dem Namen der Variablen ein datentypspezifischesKrzel vorangesetzt werden. So ist z. B. die Variable %Zahl vom Typ Integer oder dieVariable $Text vom Typ String.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
26/266
1.3 Die Syntax von VBA 17
Tabelle 1-1Die wichtigsten Datentypen in VBA
Typ Krzel Bezeichnung Datenbereich
Byte Byte 0 bis 255
Integer % Ganze Zahlen -32.768 bis 32.767Long & Ganze Zahlen -2.147.483.648 bis 2.147.483.647
Single ! Fliekommazahlen -3.4E38 - 3.5E38 (7 Ziffern)
Double # Fliekommazahlen -1.8E308 - 1.8E308 (15 Ziffern)
Currency @ Fliekommazahlen -9.22E14 - 9.22E14 ( 15V 4N )
String $ Zeichenketten 0 - 65535 Zeichen
Date Datum und Zeit 01.Jan.100 - 31.Dez.9999
Boolean Logische Werte True (Wahr) oder False (Falsch)
Variant Beliebige Daten
Die meisten Programmierer verwenden fr Namen von Variablen eine Prfix hnlich dem derSystemkonstanten:
bol Boolean (Beispiel: bolSichern) dtm Datum oder Zeit (dtmStartZeitraum) err Fehlercode (errDateifehler) int Integer (intZhler) ftp Fliekomma (ftpErgebnis) obj Objektverweis (objDokument) str String/Text (strNachname)
Datenlisten (eine Dimension, auch Vektoren genannt) oder Datenfelder (mehrere Dimensionen,auch Arrays oder Matrizen genannt) definieren sich durch:
Dabei lassen sich deren Bereiche whrend des Programmablaufs neu dimensionieren durch dieAnweisung:
Das Preserv rettet, soweit mglich, vorhandene Daten, whrend die Anweisung
eine Neuinitialisierung des Arrays vornimmt. Mit der Anweisung
am Anfang eines Formulars wird eine Deklaration der Konstanten und Variablen erzwungen.Die Benutzung dieser Anweisung ist sehr sinnvoll und vermeidet fatale Fehler.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
27/266
18 1 Einfhrung in VBA
1.3.4 Parameterlisten
Parameter dienen zur bergabe von Daten zwischen Prozeduren. Der Datentyp einesParameters wird entweder durch Typkennzeichen oder durch die As Anweisung bestimmt.Auch eine gemischte Form ist mglich.
Bei der bergabe gibt es zwei Formen, by Value und by Reference. Jede Variable besitzt eineAdresse im Hauptspeicher. Mit by Reference, der Standardbergabe, wird diese Adressebergeben und mit by Value nur der Wert. So lsst sich verhindern, dass alte Werteberschrieben werden. Sehr anschaulich ist das vorstehende Beispiel.
Die Prozedur liefert:
Vor dem Aufruf: RefWert = 4 , ValWert = 8. Nach dem Aufruf: RefWert = 6, ValWert = 8.
1.3.5 Benutzerdefinierte Datentypen
Benutzerdefinierte Datentypen sind ein leistungsfhiges Hilfsmittel zum Gruppieren vongleichartigen Datenelementen. Nehmen wir als Beispiel folgenden benutzerdefinierten Typnamens Person:
Sie knnen nun eine Variable des Typs Person deklarieren, die Werte der zugehrigen Felderindividuell festlegen und den kompletten Satz an Prozeduren bergeben, um ihn zu drucken, ineiner Datenbank abzuspeichern, Berechnungen damit durchzufhren, die Felder zu prfen usw.Angesprochen wird eine Variable unter ihrem vollen Namen, ganz im Sinne der
Objektschreibweise, z.B.:
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
28/266
1.3 Die Syntax von VBA 19
So leistungsfhig benutzerdefinierte Typen einerseits sind, so viel Kopfzerbrechen knnen siedem Programmierer andererseits bereiten. Es gilt immer zu bedenken, dass der kompletteDatentyp seine Anwendung findet.
1.3.6 Operatoren und Standardfunktionen
Nachfolgend sind nur die wichtigsten Operatoren und Funktionen aufgefhrt. Wer sichausfhrlicher informieren will, findet in der Literatur neben weiteren Definitionen auchanschauliche Beispiele. Eine weitere Quelle fr Informationen ist die Hilfe in derEntwicklungsumgebung. In der Menzeile ist sie mit einem Fragezeichen installiert und einMausklick ffnet ein Dialogfenster. Durch Eingabe eines Stichwortes liefert eine Suche alleverwandten Themen. Auch hier findet man neben Definitionen anschauliche Beispiele.
Tabelle 1-2Operatoren und Standardfunktionen in VBA
Operatorart Zeichen Bezeichnung
Zuweisungsoperatoren = Wertzuweisung+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Potenzieren
\ ganzzahlige Division
Numerische Operatoren
mod Modulo (Restwert nach Division)
Alphanumerische & Verkettung alphanumerischer Variabler= leich
> grer als
< kleiner als
>= grer gleich
al hanumerisch
Date aktuelles Systemdatum
Now aktuelles Datum und aktuelle Zeit
Datumsfunktionen
Month aktueller Monat als Zahl (1-12)
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
29/266
20 1 Einfhrung in VBA
IsDate Prft auf Datum
Val Umformung alphanumerisch -> numerisch
Int Ganzzahl
Exp Exponent
IsNumeric Prft auf Zahl
Numerische Funktionen:
IsArray Prft auf Datenfeld
In utBox Ein abe mit KommentarDialog Funktionen
MsgBox Ausgabe mit Aktionen
Weitere Hinweise erhalten Sie im Visual Basic-Editor unter dem Fragezeichen (?) in derMenleiste
1.3.7 Strukturen fr Prozedurablufe
Bedingte VerzweigungenBieten in Abhngigkeit von Bedingungen die Ausfhrung unterschiedlicher Anweisungsblckean.
Bedingte Auswahl
Wird auch oft als Softwareschalter bezeichnet, da je nach dem Inhalt des SelectorsAnweisungsblcke ausgefhrt werden. Trifft kein Auswahlwert zu, wird der Anweisungsblock
unter Case Else ausgefhrt.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
30/266
1.3 Die Syntax von VBA 21
Schalter
Die Funktion Switch ist vergleichbar mit der Select Case - Anweisung. Sie wertet eine Listevon Bedingungen aus und fhrt die betreffende Anweisung durch.
ZhlschleifeEin Zhler wird ausgehend von einem Startwert bei jedem Next um den Wert 1 oder wenn Stepangegeben ist, um die Schrittweite erhht, bis der Endwert berschritten wird. DerAnweisungsblock wird fr jeden Zhlerzustand einmal durchgefhrt.
Bedingte Schleifen
In bedingten Schleifen werden Anweisungsblcke in Abhngigkeit von einer Bedingungmehrfach ausgefhrt. Wir unterscheiden verschiedene Arten.
Die Auslegung einer Bedingung wird durch die folgenden Begriffe gesteuert:
While: Schleife wird solange durchlaufen, wie die Bedingung richtig (true) ist. Until: Schleife wird solange durchlaufen, wie die Bedingung falsch (false) ist.
Abweisend bedingte SchleifeAnweisungsblock wird mglicherweise erst nach Prfung der Bedingung ausgefhrt.
Ausfhrend bedingte SchleifeAnweisungsblock wird erst durchgefhrt, bevor die erste Prfung der Bedingung erfolgt.
Schleifen ber Datenlisten und ObjektlistenMit dieser Anweisung werden alle Elemente einer Liste angesprochen.
Schleifenabbruch
Eine Schleife kann jederzeit mit der Anweisung Exit beendet werden
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
31/266
22 1 Einfhrung in VBA
1.3.8 GeltungsbereicheDurch die Anweisung Public wird der Geltungsbereich von Konstanten, Variablen, Funktionenund Prozeduren auf alle Module des Projekts ausgeweitet.
Durch die Anweisung Privat wird der Geltungsbereich von Konstanten, Variablen, Funktionenund Prozeduren grundstzlich auf ein Modul beschrnkt.
Durch die Anweisung Static behalten Variable einer Prozedur ihren Wert auch nach Verlassender Prozedur. Bei erneutem Aufruf kann auf den Inhalt der Variablen erneut zugegriffenwerden.
1.3.9 Fehlerbehandlung in Prozeduren
Laufzeitfehler, die bei Ausfhrung einer Prozedur auftreten, fhren zum Abbruch derVerarbeitung. Weil sich diese Fehler normalerweise nicht unter der Kontrolle desProgrammierers befinden und auch die angezeigten Fehlertexte oft wenig Aufschluss ber den
Sachverhalt wiedergeben, geschweige denn Anweisungen zur Fehlerbehandlung, ist es besserdie Mglichkeiten zur Fehlerbehandlung zu nutzen.
Dazu gibt es die Fehleranweisung On Error und ein Err-Objekt. Mit der Anweisung
wird nach dem Auftreten eines Fehlers zur angegebenen Programmmarke verzweigt. Mit der
Anweisung
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
32/266
1.4 Algorithmen und ihre Darstellung 23
wird der Programmablauf fortgefhrt. Dieses Verhalten zeigt anschaulich die nachfolgendeGrafik in Bild 1-15.
Das Err-Objekt verfgt neben den Eigenschaften Fehlernummer (Number) und Beschreibung(Description) noch ber die Methoden Raise und Clear zum Auslsen und Lschen von
Laufzeitfehlern:
Resume
Resume Next
Anweisung
Anweisung
Anweisung
Fehlerbehandlungs-routine
Bild 1-15
Fehlerbehandlungin Prozeduren
1.4 Algorithmen und ihre Darstellung
1.4.1 Der Algorithmus
Der Begriff Algorithmus ist auf den Perser Abu Ja far Mohammed ibn Musa al Khowarizmizurckzufhren, der um 825 n.Chr. ein Lehrbuch der Mathematik verfasste. Allgemein ist einAlgorithmus eine Methode zur Lsung eines bestimmten Problems. Grafisch (Bild 1-16) als sogenannte Black-Box darstellbar, die Eingaben (Input) zu Ausgaben (Output) umformt.
Input Black Box Output
Bild 1-16
Black Box
Wenn man sich auch immer noch an einer exakten Definition schwer tut, an einen Algorithmussind 6 Bedingungen geknpft.
Alle verwendeten Gren mssen bekannt sein. Die Umarbeitung geschieht in Arbeitstakten. Die Beschreibung des Algorithmus ist vollstndig. Die Beschreibung des Algorithmus ist endlich.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
33/266
24 1 Einfhrung in VBA
Alle angegebenen Operationen sind zulssig. Angabe der Sprache fr die Regeln.
In diesem Buch verstehen wir unter Algorithmus eine eindeutige Vorschrift zur Lsung einesProblems mit Hilfe eines Programms. Auf dem Weg von der Idee zum Programm gibt es zwei
sinnvolle Zwischenstationen. Zunchst eine eindeutig Beschreibung des Problems. Diese wirdoft mittels Top-Down-Design erstellt und dann eine grafische Darstellung als Flussdiagrammoder Struktogramm.
Eine besondere Form des Algorithmus soll noch erwhnt werden. Sie wird als Rekursionbezeichnet. Eine Rekursion ist dann gegeben, wenn ein Teil des Algorithmus der Algorithmusselbst ist. So lsst sich z.B. n-Fakultt rekursiv bestimmen aus n-1-Fakultt durch
)!1(! = nnn
Hier spielt die Endlichkeit des Algorithmus eine sehr wichtige Rolle, denn die rekursivenAufrufe mssen ja irgendwann enden.
Beispiel 1-1Satz des Heron
Die Flche eines beliebigen ebenen Dreiecks bestimmt sich nach dem Satz des Heron aus
2,))()((
cbascsbsassA
++== . (1.2)
a
b
c
Bild 1-17
Beliebigesebenes Dreieck
Ein Algorithmus zur Bestimmung der Flche setzt zunchst die Angabe der drei Seiten voraus.Nach berprfung der Werte kann mit den angegebenen Formeln der Flcheninhalt berechnetwerden. Dieser wird in einem letzten Schritt dann ausgegeben.
1.4.2 Top-Down-Design
Zur Verdeutlichung eines Problems und auch zur Suche nach der Lsung bedient man sichauch gerne der Methode des Top-DownDesign. Dabei wird ein Problem in kleinereTeilprobleme zerlegt. Wenn ntig, einige Teilprobleme wieder in kleinere Teilprobleme und soweiter. Letztlich erhlt man kleine berschaubare Teilprobleme und dazugehrige Lsungen,die dann meist aus einfachen Anweisungen bestehen. Setzt man diese wieder zu einerGesamtlsung zusammen ist auch das Problem gelst.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
34/266
1.4 Algorithmen und ihre Darstellung 25
Tabelle 1-3Top-Down-Design zur Flchenberechnung eines Dreiecks nach dem Satz des Heron
Problem: Flchenberechnung eines beliebigen Dreiecks
Teilproblem 1:
Eingabe derSeiten
a, b, c
Teilproblem 2:
Berechnung des Flcheninhalts
Teilproblem 3:
Ausgabe desInhalts A
Teilproblem2.1:
Bilden die dreiSeiten einDreieck?
Teilproblem 2.2:
Bestimmung der Zwischengre sund des Flcheninhalts A
Teillsung 3:
Ausgabe desFlcheninhaltsin eine Zelleder Tabelle
Teillsung 1:
Eingabe derdrei Werte inZellen einer
Tabelle
Teillsung 2.1:
bac
cab
cba
+ dif Then dif = d
If p > pdif Then pdif = pEnd IfCells(1, i) = T(i)Cells(2, i) = max - T(i)Cells(3, i) = Int(T(i) / max * 1000) / 10
Next iCells(1, k + 1) = maxCells(2, k + 1) = difCells(3, k + 1) = pdif
End Sub
In der nachfolgenden Tabelle sind Werte angegeben, wie sie sich in hnlicher Form auf jedem
anderen Rechner auch ergeben. Es ist leicht zu erkennen, dass mit zunehmender Anzahl Pseu-dozufallszahlen, die prozentuale Abweichung zwischen den Klassen gegen Null konvergiertund damit bei hinreichender Anzahl von Pseudozufallszahlen eine Gleichverteilung gegen ist.
Tabelle 6-2Klasseneinteilung von Pseudozufallszahlen
AnzahlZahlen
Maximalanzahl vonPseudozufallszahlenin einer Klasse
Grte Abweichungzur Maximalanzahl ineiner Klasse
Grte Abweichungin %
1.000 117 31 26,5
10.000 787 125 15,9
100.000 5983 195 3,3
1.000.000 50437 1108 2,2
10.000.000 417562 1874 0,5
Lsst man die Klassenzahl gegen Unendlich gehen, gelangt man zur nachfolgenden Funktionder Gleichverteilung, die auch als Dichtefunktion bezeichnet wird.
Auftretungswahrscheinlichkeit
3 2 + 2+ 3+
Abweichung vom Mittelwert
Bild 6-2
Beispiel einer-Gleichverteilung
Alle Werte kommen gleich hufig vor, etwa wie beim Wrfeln mit einem Wrfel.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
132/266
6.1 Stichprobenanalyse 123
Neben der Gleichverteilung ist die von Gau gefundene Normalverteilung sehr wichtig. Weite-re wichtige Verteilungen sind noch die Binomialverteilung und die Poissonverteilung. DerGrundgedanke bei der Normalverteilung ist, dass die Wahrscheinlichkeit des Auftretens mitdem Abstand zum Mittelwert stark abnimmt. Es kommt zu der auch als Glockenkurve be-
zeichneten Funktion.
Auftretungswahrscheinlichkeit
3 2 + 2+ 3+
Abweichung vom Mittelwert
Wendepunktx = +s
Bild 6-3
Dichtefunktion derNormalverteilung
Die Normalverteilung selbst bestimmt sich aus der Gleichung
2
)( 2
2
1)(
=
x
n exf (6.2)
mit als Mittelwert der Normalverteilung und als Standardabweichung.
Man kann eine solche Normalverteilung auch mittels Pseudozufallszahlen erzeugen. Dazubedient man sich des zentralen Grenzwertsatzes, der besagt, dass die Summe von unendlichvielen Zufallszahlen einer Gleichverteilung eine Zufallszahl mit Gauscher Verteilung ergibt.Mit
10,1)(
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
133/266
124 6 Technische Statistik und Wahrscheinlichkeitsrechnung
Bereits fr N=12 wird die Gauverteilung hinreichend angenhert und die Formel vereinfachtsich zu
=
=12
1
6
i
ixy . (6.6)
Allgemein jedoch, mit einer Standardabweichung und als Mittelwert gilt
+
=
=
12
1
6i
ixy . (6.7)
Aufgabe 6.2 Erzeugung von normal verteilten Zufallszahlen
Mittels einer Prozedur sollen normal verteilte Zufallszahlen erzeugt werden. Nach deren Sor-tierung soll eine Grafik die Funktion darstellen.
Ergnzen Sie also das Men um die weiteren Punkte Normalverteilung und Normalverteilungzeigen.
Tabelle 6-3 Struktogramm zur Erzeugung von normal verteilten Zufallszahlen.
Eingabe n
Randomize
i=1 bis n
s=0j=1 bis 12
x=Rnd(x)
s=s+x
y = s - 6
Ausgabe y
Spalte aufsteigend sortieren
Codeliste 6.3 Weitere Prozeduren im Tabellenblatt tblZufallszahlen
Sub Normalverteilung()Dim x, y, s As DoubleDim i, n As LongDim j As IntegerWorksheets("Zufallszahlen").Activaten = InputBox("Bitte eingeben..", "Anzahl Zufallszahlen", 1000)x = 0RandomizeFor i = 1 To n
s = 0
For j = 1 To 12x = Rnd(x)s = s + x
Next j
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
134/266
6.1 Stichprobenanalyse 125
y = s - 6Cells(i, 1) = y
Next iColumns("A:A").SelectSelection.Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, _Orientation:=xlTopToBottom, _DataOption1:=xlSortNormal
End SubSub Normalverteilungs_Diagramm()
Charts.AddActiveChart.ChartType = xlLineActiveChart.SetSourceData
Source:=Sheets("Zufallszahlen").Range("A1:A1000"), PlotBy:=xlColumnsActiveChart.Location Where:=xlLocationAsObject, Name:="Zufallszahlen"With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Normalverteilung"
.Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y"End WithActiveChart.HasLegend = FalseActiveChart.HasDataTable = False
End Sub
Ein Start der Normalverteilung liefert die nachfolgenden Werte. Die Normalverteilung ist gutzu erkennen. Mit einer Normalverteilung lassen sich per Simulation viele Produktionsprozesseuntersuchen ohne groe Kosten und Zeitaufwand.
Bild 6-4
Normalver-teilung
Aufgabe 6.3 Fertigungssimulation
Auf einer automatischen Fertigungsanlage wird ein Bauteil mit einer Bohrung versehen. DerDurchmesser ist als normal verteilt anzusehen. Der Erwartungswert ist 45 mm bei einer Stan-
dardabweichung von 0,12 mm.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
135/266
126 6 Technische Statistik und Wahrscheinlichkeitsrechnung
Zu bestimmen ist der prozentuale Anteil an Ausschuss bei einer erlaubten Toleranz von 0,15mm. Der Anteil an Ausschuss soll durch eine Umrstung der Maschine verringert werden. Zubestimmen ist die Standardabweichung, bei der mindestens 92% der Bauteile im Toleranzbe-reich liegen.
Codeliste 6.4 Prozeduren im Arbeitsblatt tblFertigung
Option ExplicitSub Normalverteilung_Formblatt()
Worksheets("Fertigung").ActivateWorksheets("Fertigung").Cells.ClearRange("A1") = "Mittelwert"Range("A2") = "Standardabweichung"Range("A3") = "Toleranzbereich +/-"Range("A4") = "Anzahl Zufallszahlen"Range("A6") = "Ausschuss - Anzahl"Range("A7") = " - %"
Range("A:A").ColumnWidth = 20Range("B:B").ColumnWidth = 10End Sub
Sub Normalverteilung()Dim x, y, su, mi, ab, tb As DoubleDim i, n, m As LongDim j, k As IntegerDoEventsWorksheets("Fertigung").Activatemi = Cells(1, 2)ab = Cells(2, 2)tb = Cells(3, 2)n = Cells(4, 2)
x = 0RandomizeFor k = 1 To 10
m = 0For i = 1 To n
su = 0For j = 1 To 12
x = Rnd(x)su = su + x
Next jy = ab * (su - 6) + miIf Abs(mi - y) > tb Then m = m + 1
Next iCells(6, 1 + k) = m
Cells(7, 1 + k) = Int(1000 / n * m) / 10Next k
End Sub
Die Auswertung ist so aufgebaut, dass gleichzeitig 10 Auswertungen ausgefhrt werden. Mitden Beispieldaten wird ein Ausschuss von ca. 21,5% erreicht.
Bild 6-5 Auswertung mit der Standardabweichung 0,12
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
136/266
6.2 Probabilistische Simulation 127
Reduziert man die Standardabweichung nur um 0,01, so erhlt man
Bild 6-6 Auswertung mit der Standardabweichung 0,11
bungsvorschlge
Untersuchen Sie weitere Fertigungsprobleme. Zum Beispiel die Lebensdauer eines Verschlei-teils ist normal verteilt mit = 360 Tagen und = 30 Tagen. Wie gro ist die Wahrscheinlich-
keit, dass die Lebensdauer weniger als 3, 6, 9, 12 Monate betrgt (1 Monat = 30 Tage).Programmieren Sie auch die Binomialverteilung und die Poissonverteilung.
Wir haben Verfahren zur Analyse von Stichproben behandelt, bei denen nur jeweils ein Wertbetrachtet wird. Oft jedoch liegt mehr als nur ein Wert vor und es ist nach deren Beziehunguntereinander gefragt. Hier kommen die Begriffe Regression und Korrelation in Spiel. Versu-chen Sie die Begriffe zu thematisieren und programmieren Sie einen Anwendungsfall. ZumBeispiel die Beziehung zwischen Krpergewicht und Krpergre von Personen.
6.2 Probabilistische SimulationDer klassische Wahrscheinlichkeitsbegriff ist definiert mit
)10(, = Wn
mW (6.8)
mit der Anzahl m der mglichen Flle, bei denen das Ereignis eintritt und der Anzahl n allermglichen Flle. Danach hat ein unmgliches Ereignis die Wahrscheinlichkeit W = 0 und einsicheres Ereignis die Wahrscheinlichkeit W = 1.
Als Probabilistische Simulation werden die Algorithmen bezeichnet, die mit Wahrscheinlich-
keitsmodellen arbeiten. Eine der ersten Anwendungen war die Diffusion von Neutronen durchdie Bleiwand eines Kernreaktors. Weitere bekannte Anwendungen sind die Simulation desVerkehrsflusses an einer Kreuzung, die Simulation eines Flughafens, die Abfertigung an Tank-stellen und vieles mehr. Also auch Warteschlangenprobleme lassen sich mit dieser Methodebetrachten.
Grundlage dieser Methode ist die Erzeugung von Wahrscheinlichkeiten durch gleichverteilteZufallszahlen auf einem Intervall. Damit lassen sich dann nach dem Gesetz der groen ZahlWahlvorhersagen ziemlich genau erstellen und auch Probabilistische Simulationen erzeugen.
Hat man frher diese Zufallszahlen durch Funktionen erreicht, so knnen diese heute auf demPC mit einer Funktion erstellt werden. Und eben mit dieser so wichtigen Eigenschaft, dass bei
der Erzeugung hinreichend vieler Zufallszahlen eine Gleichverteilung im PC auf dem Intervallvon 0 bis 1 erfolgt.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
137/266
128 6 Technische Statistik und Wahrscheinlichkeitsrechnung
Aufgabe 6.4 Probabilistische Simulation einer Werkzeugausgabe
Wir betrachten als einfaches Warteschlangenproblem eine Werkzeugausgabe. Diese ist mitvier Leuten als Bedienpersonal besetzt. Nun kommen im Schnitt elf Ausleiher pro Minute undbelegen zusammen mit einem Bedienpersonal eine bestimmte Bedienzeit. Sind alle Bediener
besetzt, so muss der Ausleiher warten. Die Bedienzeiten sind ebenfalls unterschiedlich undnach einer Studie (hinreichend viele nach dem Gesetz der groen Zahl) ermittelt worden.Wichtig ist, dass die Summe der Wahrscheinlichkeiten 1 ergibt. Damit ist unser Wahrschein-lichkeitsmodell anwendbar.
Betrachten wir zunchst den im nachfolgenden Flussdiagramm dargestellten Algorithmus.Eine Zufallszahl bentigen wir an zwei Stellen. Die Wahrscheinlichkeit pro Sekunde, dass einAusleiher erscheint, ist
60
___ MinuteproAusleiherAnzahlwA =
Ist nun die Zufallszahl x 0 ? (Bediener hat Bedienzeit)
Ja Nein
ber alleBediener
BZ(i) = BZ(i) - 1
Erzeugung einer Zufallszahl x
Ist x
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
138/266
6.2 Probabilistische Simulation 129
Ist AL > 0 ?
Sind Ausleiher vorhanden, dann zuteilen falls mglich
Ja Nein
Bediener hat keine Bedienzeit
Ja Nein
Bedienzeit nach Wahrscheinlichkeit zuweisen
Erzeugung einer Zufallszahl x
Finde zutreffende Wahrschein-lichkeit
BZ(i)=z(i)
Ausleiher=Ausleiher-1
ber alleBediener
(Zuordnung abbrechen)
Codeliste 6.5 Prozeduren im Arbeitsblatt tblAusgabe finden Sie auf meiner Website.
Unser Testbeispiel (Bild 6-7) liefert eine Grafik der wartenden Ausleiher. Interessant ist dieseAnalyse erst, wenn man bedenkt, dass mit den wartenden Ausleihern unter Umstnden auchdie Produktion wartet.
bungsvorschlge:Simulationen in dieser Form bilden in ihrer Einfachheit nicht den wirklichen Prozess ab. Sohaben die Leute des Bedienpersonals auch Pausenzeiten und es wre besser, man wrde zujeder Person ein Zeitmodell hinterlegen. Auch die Gleichverteilung der Ausleiher ber den Tagals lineare Funktion entspricht nicht der Wirklichkeit. Analysen zeigen, dass es Zeiten mitgrerem Andrang und Zeiten mit geringem Andrang gibt. Die Darstellung durch eine Funkti-on mittels Approximation oder Interpolation wre eine Erweiterung. Auch Simulationen mitder Normalverteilung knnen Sie programmieren.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
139/266
130 6 Technische Statistik und Wahrscheinlichkeitsrechnung
Bild 6-7 Auswertung mit der Standardabweichung 0,11
Eine weitere Mglichkeit, an der Sie sich ben knnen, ist folgende:
Ein Arbeiter bedient mehrere Maschinen. Beim gleichzeitigen Ausfall mehrerer Maschinenkann dieser sich nur um eine Maschine kmmern. Erst nach dem Ende einer Reparatur kann
sich der Arbeiter um die nchste kmmern. Bestimmt man die Wahrscheinlichkeit eines Ma-schinenausfalls und die Wahrscheinlichkeiten der Reparaturzeiten, so lsst sich damit auch einanschauliches Modell konstruieren. Interessant ist dann die Frage nach der gesamten Ausfall-zeit der Maschinen, bedingt durch Wartezeiten.
Das in der Anwendung programmierte Diagramm sollten Sie auch so umstellen, dass es frandere Anwendungen ebenfalls genutzt werden kann. Orientieren Sie sich an dem Modul mod-LinienDiagramm in Kapitel 5. Mglicherweise lassen sich beide Prozeduren in einem Modulzusammenfassen. Eventuell durch einen Parameter innerhalb der gleichen Prozedur.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
140/266
131
7 Wirtschaftliche Berechnungen
Wirtschaftlichkeit ist ein Zentralbegriff der Betriebswirtschafts- und Managementlehre berden sparsamen Umgang mit den Ressourcen Material, Personal und Maschinen. Durch niedrigeKosten und kurze Durchlaufzeiten kann man in der Fertigung viel zur Wirtschaftlichkeitbeitragen. Die Wirtschaftlichkeit ist eine Kennzahl, die das Verhltnis von Ertrag zumAufwand misst. Ein Handeln nach dem Wirtschaftlichkeitsprinzip bedeutet, aus Alternativendie zu whlen, die die hchste Wirtschaftlichkeit aufweist. Bei einer rein mengenmigenBetrachtung spricht man auch von technischer Wirtschaftlichkeit, Technizitt oderProduktivitt. Meist gengt eine Mengenrelation nicht, dann stehen als Beispiel auch Leistung,Nutzen fr Output und Kosten fr Input. Gelegentlich wird mit Wirtschaftlichkeit der Gradangegeben, der fr bestimmte Vorgaben erreicht wurde.
7.1 Maschinenbelegung nach Johnson
Die Maschinenbelegung ist ein klassisches Reihenfolgeproblem. Zur Herstellung von nProdukten sind eine Reihe von m Maschinen gegeben. Jedes Produkt Pi (i = 1, 2, 3, , n)durchluft in der gleichen Reihenfolge die Maschinen Mk (k = 1, 2, 3, , m). DieGesamtbearbeitungszeit hngt von der Folge ab, in der die Produkte bearbeitet werden. Sie istin der Regel fr jede Permutation
niii
n
,...,,
,...,3,2,1
21 (7.1)
eine andere.
Die zu fertigende Menge eines Produktes wir als Los bezeichnet. Losgren knnen, je nachProdukt, einige hundert bis tausend Stck betragen. Der Einfachheit halber nehmen wir an,dass ein Produkt Pierst dann von einer Maschine Mkauf die Maschine Mk+1 wechselt, wenndas ganze Los auf der Maschine Mk bearbeitet ist. Dabei kann der Fall eintreten, dass dienachfolgende Maschine noch das vorherige Produkt Pi-1bearbeitet, so dass das i-te Los wartenmuss bis die Maschine Mk+1frei wird.
Zeit [Std.]
3M
2M
1M
1P 2P 3P 4P 5P
W
WW
W
P = ProduktM = MaschineW = Wartezeit
Bild 7-1
Maschinen-Belegungszeiten in einerProduktion
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
141/266
132 7 Wirtschaftliche Berechnungen
Gesucht ist nun die optimale Durchlaufreihenfolge, fr die die Gesamtbearbeitungszeit einMinimum wird. Dabei sind durchaus mehrere Lsungen mglich.
Bezeichnet man mit tikdie Bearbeitungszeit des Produktes Piauf der Maschine Mk, so brauchtdieses Produkt fr den Durchlauf durch alle m Maschinen die Zeit
==
+=m
k
ik
m
k
iki wtT
11
(7.2)
Darin sind wikdie Wartezeiten fr den Einsatz auf den Maschinen. Meistens sind diese jedochNull.
Sind keine Zwischenlager vorhanden und tritt eine Wartezeit wik von Produkt Pi auf derMaschine Mk auf, so darf erst mit der Bearbeitung von Pi auf der Maschine Mk-1 nach derWartezeit wik begonnen werden, damit der Produktionsprozess ohne Wartezeit durchgefhrtwerden kann.
Fr n Produkte erhlt man die gesamte Durchlaufzeit dadurch, dass man smtliche Wartezeitenund die gesamte Bearbeitungszeit des letzten Produktes addiert
=
=
=
=+
+=m
k
n
i
nk
k
j
k
j
jiijnki tttT
1
1
1
1
1
1
1,1max (7.3)
Wollte man alle mglichen n Permutationen durchspielen, so ergeben sich n! Mglichkeitenund damit stoen wir schnell an die Grenze eines durchfhrbaren Rechenaufwandes.
Nun gibt es in diesem Fall einen einfachen Algorithmus, der von Johnson gefunden wurde. DasVerfahren ist fr eine zweistufige Bearbeitung gedacht, also Vorsicht mit mehr als zweistufiger
Fertigung. Dass es dennoch auch hier Lsungen geben kann, zeigt das nachfolgende Beispiel.Das Verfahren von Johnson besteht aus folgenden Schritten:
1. Es werden Pi (i=1, 2, 3, , n) Produkte auf Mk Maschinen (k=1, 2, 3, , m)hergestellt. Zu bestimmen ist x = Min ( t1,1, , tm,1, t1,n, ..., tm,n). Gibt es mehrere x, sokann ein beliebiges gewhlt werden.
2. Ist x = ti,1so wird das Produkt Pizuerst bearbeitet. Ist x = ti,n, so wird das Produkt Pizuletzt bearbeitet.
3. Streiche das Produkt Piund gehe zurck zu 1., bis alle Produkte eingeplant sind.
Aufgabe 7.1 Maschinenbelegung nach JohnsonWir wollen die Maschinenbelegung nach Johnson programmieren. Um allerdings diesenAlgorithmus auf m Maschinen in der Fertigungsfolge betrachten zu knnen, ndern wir dieBetrachtung auf die erste Maschine M1und die letzte Maschine Mmab.
Zuerst erfolgt die Initialisierung eines Produktvektors. Er soll festhalten, welches Produkt beider Vergabe der Fertigungsreihenfolge bereits verplant ist. Zunchst wird dieser Merker aufden Index des Produkts gesetzt und spter bei der Vergabe auf Null.
Eine einfache Grafik mittels Shapes soll die Maschinenbelegung darstellen. Sie vermitteltAussagen, die aus den berechneten Daten nicht sofort ersichtlich sind, wie etwa dieauftretenden Wartezeiten.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
142/266
7.1 Maschinenbelegung nach Johnson 133
Tabelle 7-1 Optimale Maschinenbelegung nach einer modifizierten Johnson-Methode
i=0
i=1 bis n
M(i)=i
i=0
Solange i < n
Suche das erste nicht verplante Produkt und setze denZeitaufwand auf das Minimum.
Suche in allen nicht verplanten Produkten die minimale Zeit, dieauf der ersten oder letzten Maschine belegt wird.
Ordne je nach Lage des Minimums (erste oder letzte Maschine)das Produkt einem weiteren Merker zu.
i=i+1
M(x)=0
Die grau gekennzeichneten Prozeduren mssen noch genauer beschrieben werden.
Tabelle 7-2 Suche erstes Produkt
j=1
Solange M(j)=0
J=j+1
Min = t(j,1)
x=j
Tabelle 7-3Suche Minimum
i=1 bis n
J=j+1
Ist M(i)>0 ?
Ja Nein
Ist T(i,1)
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
143/266
134 7 Wirtschaftliche Berechnungen
x = i
y = 1
Ist T(i,m) < Min ?
Ja Nein
Min=T(i,m)
x = i
y = m
Tabelle 7-4 Ordne je nach Lage des Minimums
Ist j=1 ?
Ja Nein
i1= i1+ 1 i2= i2+ 1
M1(i1) = x M2(i2) = x
Die Merker M1()und M2() enthalten am Ende die Fertigungsreihenfolge der Produkte in derForm
M11,,M1p,M2q,,M21,
d. h. im ersten Merker in aufsteigender Reihenfolge und im zweiten Merker in absteigenderReihenfolge.
Eine neu angelegte Tabelle tblBelegung werden wir diesmal nur als Ausgabeelement benutzen.Die eigentlichen Prozeduren schreiben wir in ein Modul und die notwendigen Eingabenerhalten wir ber ein Formblatt.
Ein Testbeispiel wird nachfolgend beschrieben. Die Funktion Neue Berechnung ruft einFormblatt Bild 7-2 zur Eingabe der Anzahl Maschinen und Produkte auf. Danach wird auf demArbeitsblatt eine Eingabe der Belegungszeiten erwartet. Die Auswertung nutzt diese Daten zurOptimierung. Mittels Shapes wird eine einfache Grafik eingeblendet. Die Farbdarstellung wirdmittels RGB-Farben realisiert. Dadurch werden gleiche Farben bei Shapes und Formblatt
erzeugt.
Codeliste 7.1 Prozeduren im Modul modBelegung finden Sie auf meiner Website.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
144/266
7.2 Optimale Losgre 135
Bild 7-2
Formular zur Dateneingabe
Codeliste 7.2 Prozeduren im Formular frmBelegung finden Sie auf meiner Website.
Beispiel 7.1 Maschinenbelegung nach JohnsonIn einem Produktionsbetrieb werden fnf Produkte auf drei Maschinen in gleicher Reihenfolgeproduziert. Die Belegungszeiten der Maschinen (M1, M2, M3) in Stunden je Produkt sind: P1( 5,3, 8), P2(5, 3, 4), P3(12, 4, 2), P4(4, 2, 7) und P5(8, 2, 9).
Bild 7-3 Auswertung des Testbeispiels
bungsvorschlge
Lassen Sie eine Halbierung oder andere Einteilung der Losgren zu. Vermeiden SieWartezeiten durch eine verzgerte Produktion wie anfangs beschrieben.
7.2 Optimale Losgre
Aus dem Bereich der Produktion gibt es aus Kostensicht folgende berlegungen. Wird derVerkauf eines Produktes x mit der Menge m pro Jahr eingeschtzt, so knnte man diese Mengeauf einmal produzieren. Zwar fallen dann die Rstkosten nur einmal an, dafr gibt es aberLagerkosten. Ebenso mssen Material und Lhne vorfinanziert werden. Es fallen alsoBankzinsen an. Mit kleiner werdenden Losgren werden zwar die Lagerkosten undBankzinsen weniger, dafr werden aber die Rstkosten hher.
Der Verlauf der Rstkosten ber der Losgre ist der einer Hyperbel, whrend Lagerkostenund Kapitalbindung in Form einer Geraden verlaufen. Addiert man beide Kurven zu den
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
145/266
136 7 Wirtschaftliche Berechnungen
Gesamtkosten so zeigt sich, dass diese an einer Stelle ein Minimum annehmen. Man sprichthier von einem Optimum und bezeichnet die zugehrige Losgre als optimale Losgre.
Sind xGesdie voraussichtliche Gesamtstckzahl pro Jahr und KRdie Rstkosten in Euro/Los soergeben sich die Gesamtrstkosten fr jede Losgre x aus der Formel
RGes
R Kx
xG = (7.4)
Kosten
Gesamtkosten
Lager- und
BankkostenRstkosten
Optimale Losgre Stckzahl
Bild 7-4
OptimaleLosgre
Sind KH die Herstellkosten ohne Rstanteil pro Stck und zB der Zinssatz fr Bankzins in[%/Jahr] und zL der Zinssatz fr Lagerkosten ebenfalls in [%/Jahr], so werden damit dieGesamtlagerkosten
1002LB
HL
zzK
xG
+= (7.5)
Die Gesamtkosten pro Jahr sind damit
LR GGG += (7.6)
Und daraus wiederum die Gesamtkosten pro Stck
GesS
x
GG = (7.7)
Aufgabe 7.2 Bestimmung der optimalen Losgre
Mit einer Aufteilung von z. B. xGes/100 werden die Kosten schrittweise berechnet und sorechnerisch und grafisch die optimale Losgre ermittelt.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
146/266
7.2 Optimale Losgre 137
Tabelle 7-5 Struktogramm zur Bestimmung der optimalen Losgre
Eingabe der Rstkosten KR, Herstellkosten KH, Jahresbedarf xGes,Bankzinssatz zBund Lagerzinssatz zL
100Gesxx= , 0=x
Gesxxsolange :
RGes
R Kx
xG =
1002LB
HL
zzK
xG
+=
LR GGG +=
GesS
x
GG =
xxx +=
Ausgabe
Optimale Losgre
Codeliste 7.3 Prozeduren im Arbeitsblatt tblLosgre
Zur Eingabe benutzen wir ein Formular nach Bild 7-5.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
147/266
138 7 Wirtschaftliche Berechnungen
Bild 7-5
Formular zur Dateneingabe
Ein Formular besitzt die Eigenschaft Picture, so dass wir mit einem Doppelklick auf dieseEigenschaft ber ein Dialogfeld eine Grafik als Hintergrundbild einblenden knnen. Nebendieser Grafik, die noch einmal die funktionalen Zusammenhnge zeigt, enthlt das FormularTextboxen zur Dateneingabe. Diese sind durch Labels entsprechend beschriftet. Mit derSchaltflche Testdaten werden die Textboxen mit Testdaten gefllt. Mit der SchaltflcheBerechnungsstart erfolgt dann die Auswertung.
Codeliste 7.4 Prozeduren im Formular
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
148/266
7.2 Optimale Losgre 139
Codeliste 7.5 Prozeduren im Modul modLosgre
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
149/266
140 7 Wirtschaftliche Berechnungen
Bild 7-6
Testdateneingabe
Beispiel 7.2 Optimale Losgre
In einem Produktionsbetrieb werden 1000 Bauteile pro Jahr produziert. Die Rstkostenbetragen 450 Euro/Auftrag. Die Herstellkosten betragen 22 Euro/Stck. Die Bankzinsen liegenbei 12 % und die Lagerkosten liegen bei 15 %.
Bild 7-7
Testdaten-
auswertung
Diese Daten sind als Testdaten vorgegeben.
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
150/266
7.2 Optimale Losgre 141
Das Programm berechnet schrittweise die Kostenverhltnisse fr unterschiedliche Losgren.Ein gelber Balken in der Tabelle (Bild 7-7) markiert die optimale Losgre.
bungsvorschlge
Ein hnliches Problem wie die Bestimmung der optimalen Losgre ist die Bestimmung deroptimalen Bestellmenge. Auch bei diesem Problem gibt es gegenlufige Kostenentwicklungen.
Zu den bestellfixen Kosten zhlen die Kosten, die bei der Angebotseinholung und prfunganfallen. Um diese mglichst klein zu halten, wrden groe Bestellmengen sinnvoll sein.Andererseits werden damit die schon beschriebenen Lagerhaltungs- und Bankzinsen hher.Auch hier gilt es bestellfixe Kosten und Lagerhaltungskosten so zu whlen, dass diese einMinimum werden. Die so gewonnene Menge ist die optimale Bestellmenge. In der Literaturfinden Sie die Formeln und Algorithmen.
Kosten
Gesamtstckkosten
Lagerkostenund Zinsen
bestellmengenfixeKosten
Optimale Bestellmenge Stckzahl
Bild 7-8
Stckkosten inAbhngigkeit vonder Bestellmenge
Eine weitere, oft angewandte Berechnung, ist die Break-Even-Analyse. Diese Methodeermittelt die Absatzmenge, bei der die Umsatzerlse die fixen und variablen Kosten decken.Die Break-Even-Methode zeigt die Wirkung von Umsatz- und Kostennderungen auf denGewinn.
Kostenund
Erlse
ErlsGesamtkosten
Break-Even-Point Stckzahl
variable Kosten
Fixkosten
Bild 7-9
Kosten undErlse inAbhngigkeitvon derBestellmenge
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
151/266
142 7 Wirtschaftliche Berechnungen
Es gibt den mengenmigen B-E-P:
int Fixkosten
Break Even Po
Deckungsbeitrag je Stck
=
, (7.8)
und den wertmigen B-E-P:
int Fixkosten
Break Even Po
Deckungsquote je Stck
=
. (7.9)
Darin ist der Deckungsbeitrag je Stck der Verkaufspreis je Stck variable Kosten und dieDeckungsquote je Stck der Deckungsbeitrag je Stck / Verkaufspreis je Stck.
Ein weiteres Anwendungsbeispiel aus diesem Bereich ist die Nutzwertanalyse. Sie wurde inden USA unter dem Begriff utility analysis entwickelt und seit den 70er Jahren auch inDeutschland eingesetzt. Die Nutzwertanalyse priorisiert verschiedene Lsungen. Diesgeschieht durch deren Gewichtung im Hinblick zur Erreichung eines oder mehrerer Ziele.Zunchst gilt es festzustellen, welche Kriterien fr eine Projektentscheidung wichtig undmageblich sein sollen. In den meisten Fllen knnen schon im ersten Schritt k. o. -Kriterienformuliert werden, die zwingend erfllt werden mssen. Lsungen, die diese Bedingung nichterfllen, scheiden sofort aus. Diese Muss-Kriterien knnen durch Soll-Kriterien ergnztwerden, deren Erfllung erwnscht, aber nicht notwendig ist.
In einem zweiten Schritt mssen nun die einzelnen Soll-Ziele in eine Ordnung gebrachtwerden. Mglich ist eine Systematisierung in Form von Oberzielen und dazugehrigenUnterzielen. Den einzelnen Zielen werden Gewichtungsfaktoren zugeordnet. EinBeispielschema zeigt Bild 7-10.
Lsungen
Teilnutzen 1X Ziel 1
(Faktor 2)
Teilnutzen 2X Ziel 2
(Faktor 4)
Teilnutzen 3X Ziel 3
(Faktor 3)
A
B
C
Nutzen
3 x 2 = 6 2 x 4 = 8 4 x 3 = 12
3 x 2 = 6
2 x 2 = 4
3 x 4 = 12
2 x 4 = 8
2 x 3 = 6
1 x 3 = 3
26
24
15
Bild 7-10
Beispiel einerNutzwert-analyse
-
5/19/2018 Excel Und VBA Fuer Maschinenbauer
152/266
143
8 Berechnungen aus der Strmungslehre
Die Strmungslehre ist ein Teil der Mechanik und wird auch Hydro- oder Fluidmechanik ge-nannt. Ihre Aufgabe ist die Untersuchung von Flssigkeiten und Gasen auf Druck-, Geschwin-digkeits- und Dichtenderungen, sowie auftretende Strmungskrfte und vorhandene Energie-inhalte. Je nach Bewegungszustand und Fluid kann man sie unterteilen in ruhende und str-mende Fluide. Grundlage der Strmungslehre bilden die Newtonschen Bewegungsgesetze(Sir Isaac Newton, 1643-1727).
8.1 Rotation von Flssigkeiten
Ein offener Behlter, der teilweise mit einer Flssigkeit gefllt ist, rotiert mit konstanter Win-kelgeschwindigkeit um eine vertikale Achse.
y
x
3y
0y
2y
gdm
dm 2xdm
Bild 8-1
Rotierender Zylinder mitFlssigkeit
Wir betrachten den Zustand, bei dem die Flssigkeit nach einer Weile dieselbe Winkelge-schwindigkeit wie der Behlter erreicht hat. Eine Betrachtung der Krfteverhltnisse fr das
Massenteil dm liefert
g