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"
Set 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 is present
mySheet.CellYX(unitIndex+1,1) = Units.Item(unitIndex).Name
mySheet.CellYX(unitIndex+1,2) = Units.Item(unitIndex).Contents
Next
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:
Set mySheet = Parameters.ExcelWorkbook.Worksheets("Table 1")
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"
Set 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 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
Set 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
Fragen?
Möchten Sie mehr über dieses Thema erfahren oder haben weitere Fragen? Bitte kontaktieren Sie uns.
Mehr Tipps & Tricks
INOSIM Fernsteuerung über die COM-Schnittstelle
Wussten Sie, dass INOSIM mit jedem Programm ferngesteuert werden kann, das Signale über die COM-Schnittstelle senden kann? Hier erfahren Sie, wie dieses Feature verwendet werden…
Laufzeitfehler vermeiden und benutzerdefiniert abfangen
Dieser Tipp & Trick beschreibt eine Vielzahl von Methoden zur Vermeidung und Behandlung von Laufzeitfehlern in Ihrem VBA-Code. Sie werden mit den FindColumn– und FindRow-Methoden…
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…