Nutzen Sie Ihr Excel-Wissen bei der Arbeit mit INOSIM
In diesem Tipp und Trick möchten wir Ihnen zeigen, wie Sie die Standard-Visual Basic Befehle von Excel auch im VBA-Editor von INOSIM nutzen können.
Nutzung der integrierten Excel-Arbeitsmappe mit INOSIM-VBA-Befehlen
In INOSIM steht Ihnen in jedem Projekt eine integrierte Excel-Arbeitsmappe mit dem Namen Parameter zur Verfügung. Es kann Excel-Sheets für Eingabedaten sowie Excel-Sheets für benutzerdefinierte Ergebnisberichte enthalten. Die Arbeitsmappe kann per Doppelklick auf den Eintrag in dem Datenbank-Fenster geöffnet werden:
Sie können auch mit dem integrierten Visual Basic Editor in INOSIM auf die Arbeitsmappe zugreifen. Zu diesem Zweck bietet INOSIM dedizierte Visual Basic-Befehle an.
Zum Beispiel, wenn Sie die Namen und Füllstände aller Teilanlagen in die Excel-Arbeitsmappe schreiben wollen, können Sie den unten aufgeführten Code benutzen:
'Using INOSIM commands
'to write the name and filling levels
'of all units to the Parameters-Table
Dim unitIndex As Integer
Dim mySheet As Sheet
Dim mySheetName As String
mySheetName = "FillingLevelsSheet"
mySheet = Parameters.Sheets(mySheetName)
For unitIndex = 1 To Units.Count
'For each unit, a row is written in the specified sheet
'the first column contains the name of the unit,
'the second column contains the contents of the unit
'
' Note that the first row of the sheet is skipped, as a user-written header
mySheet.CellYX(unitIndex+1,1) = Units.Item(unitIndex).Name
mySheet.CellYX(unitIndex+1,2) = Units.Item(unitIndex).Contents
Next
In diesem Beispiel wird WWB.NET genutzt. Für WWB-COM muss bei einer Objektreferenz ein Set hinzugefügt werden.
Das Ergebnis kann wie folgt aussehen:
Die Namen und Füllstände aller Teilanlagen werden auf das Excel-Sheet FillingLevelSheet übertragen, welches vorweg erstellt werden muss.
Das Excel-Sheet führt die Namen in Spalte A und die Füllstände in Spalte B auf.
In diesem Beispiel wurde die erste Zeile mit den Überschriften auch manuell geschrieben, sodass der Code beim Schreiben in das Excel-Sheet die erste Zeile überspringt.
Verwendung von Visual Basic-Standardbefehlen aus Microsoft Excel
Dieselben Ergebnisse, wie oben aufgeführt, können auch durch Benutzen von Standardbefehlen in Visual Basic erreicht werden. Das bedeutet, dass INOSIM-Benutzer, die bereits diese Befehle kennen, nicht zur speziellen Visual Basic-Syntax, welche in INOSIM angewendet wird, wechseln müssen. Stattdessen können Sie von Ihrem Vorwissen in Visual Basic-Standardbefehlen während der Arbeit mit INOSIM profitieren.
Aktivierung von Visual Basic-Standardbefehlen
Um Standardbefehle zu nutzen, aktivieren Sie die Microsoft Excel Object Library in dem Visual Basic Editor (Menü Extras/Verweise) und drücken Sie OK:
Danach können Sie das ExcelWorkbook-Eigenschaft verwenden, was Ihnen erlaubt Visual Basic-Standardbefehle wie hier zu benutzen:
mySheet = Parameters.ExcelWorkbook.Worksheets("Table 1")
Hier wird WWB.NET verwendet. Da es sich um eine Objektreferenz handelt, muss in WWB-COM ein Set vorangestellt werden.
Verwendung von Excel-Visual Basic
Um das Verhalten von dem oben aufgeführten Beispiel zu replizieren, können Sie den folgenden Code benutzen.
'Using standard Visual Basic commands to write
'the name and filling levels of all units to the Parameters-Table
Dim unitIndex As Integer
Dim mySheet As Worksheet
Dim mySheetName As String
mySheetName = "FillingLevelsSheet2"
mySheet = Parameters.ExcelWorkbook.Worksheets(mySheetName)
For unitIndex = 1 To Units.Count
mySheet.Cells(unitIndex+1,1).value = Units.Item(unitIndex).Name
mySheet.Cells(unitIndex+1,2).value = Units.Item(unitIndex).Contents
Next
Das abgebildete Beispiel ist in WWB.NET. Um WWB-COM zu nutzen, wird bei Objektreferenzen ein Set hinzugefügt.
Das Potenzial von Excel-VBA ausschöpfen
Sie können nun sämtlich Standardbefehle von Excel-VBA nutzen und haben endlose Möglichkeiten das Workbook zu verändern. Hinzufügen, Umbenennen und Löschen von Arbeitsblättern ist ebenso möglich wie die Formatierung von Zellen (z.B. Hintergrundfarbe und Schrifttyp ändern), sowie das Erstellen und Formatieren von Diagrammen und vieles mehr. Für eine vollständige Dokumentation besuchen Sie Microsoft’s VBA-Referenz für Excel.
Beispiel: Zell-Referenzierung mit Namen
Excel-Zellen können benannt werden, um die Referenzierung zu vereinfachen. Für dieses Beispiel haben wir der Zelle B2 den Namen MyReferenceCell in dem Arbeitsblatt FillingLevelsSheet3 zugewiesen. Auf diese Zelle kann jetzt zugegriffen werden, während des Schreibens oder Auslesen von Daten mit Visual Basic. Das stellt sicher, dass der Code weiterhin funktioniert, auch wenn Zeilen/Spalten nachträglich hinzugefügt werden und sich dadurch Zeilen- und Spaltennummern ändern.
In dem folgenden Code-Ausschnitt werden die Namen und Füllstände aller Teilanlagen erneut in ein Arbeitsblatt eingetragen, aber die Position in dem Arbeitsblatt ist relativ zu der Position der benannten Zelle MyReferenceCell:
'Using standard Visual Basic commands to write
'the name and filling levels of all units to the Parameters-Table
'starting with a reference cell
'
' The Microsoft Excel Object Library has to be enabled for this to work
' Can be enabled from the topmenu: Tools/References
Dim unitIndex As Integer
Dim mySheet As Worksheet
Dim mySheetName As String
Dim referenceCellName As String
mySheetName = "FillingLevelsSheet3"
referenceCellName = "MyReferenceCell" 'The name of cell B2 in the sheet FillingLevelSheet2
mySheet = Parameters.ExcelWorkbook.Worksheets(mySheetName)
For unitIndex = 1 To Units.Count
mySheet.Range("MyReferenceCell").Offset(unitIndex,0).Value = Units.Item(unitIndex).Name
mySheet.Range(referenceCellName).Offset(unitIndex,1).Value = Units.Item(unitIndex).Contents
Next
Hier wurde WWB.NET genutzt. Um das gleiche Verhalten in WWB-COM abzubilden, muss bei Objektzuweisungen ein Set hinzugefügt werden.
- Beispielprojekt
- PDF-Ausdruck zu diesem Tipp & Trick
Fragen?
Möchten Sie mehr über dieses Thema erfahren oder haben weitere Fragen? Bitte kontaktieren Sie uns.
Mehr Tipps & Tricks
Intervall-Auswertung des Transfer-Reports
Intervall-Auswertung des Transfer-Reports In diesem Tipp stellen wir Ihnen vor, wie Sie aus den von INOSIM erzeugten Reports automatisiert per VBA weitere Daten berechnen, um…
Die Abfolge von INOSIM Ereignisaufrufen
Erfahrenen Anwendenden von INOSIM ist bewusst, dass sie mit einer ereignisdiskreten Simulationssoftware arbeiten. Für die meisten dieser Ereignisse können VBA-Steuerungen aufgerufen werden, um das Simulationsverhalten…
Benutzerdefinierte Wahrscheinlichkeitsverteilungen
Hier lernen Sie, wie Sie die eingebauten Wahrscheinlichkeitsverteilungen von INOSIM nutzen, um stochastische Störungen oder Prozessparameter in Ihr Modell zu integrieren, und wie Sie Ihre…