excel und vba fuer maschinenbauer

266
5/19/2018 ExcelUndVBAFuerMaschinenbauer-slidepdf.com http://slidepdf.com/reader/full/excel-und-vba-fuer-maschinenbauer 1/266 Harald Nahrstedt Excel + VBA für Maschinenbauer

Upload: koutrgor

Post on 09-Oct-2015

197 views

Category:

Documents


1 download

DESCRIPTION

excel

TRANSCRIPT

  • 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