31. Mai 2018

Nutzen Sie Ihr Excel-VBA-Wissen bei der Arbeit mit INOSIM

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:

Applying INOSIM Basic commands

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:

Enabling the Excel Object Library in the Tools/Refeences Menu

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

Downloads

  • Beispielprojekt
  • PDF-Ausdruck zu diesem Tipp & Trick

 

Fragen?

Möchten Sie mehr über dieses Thema erfahren oder haben weitere Fragen? Bitte kontaktieren Sie uns.

Array ( [posts_per_page] => 3 [post_type] => [category__in] => Array ( [0] => 171 ) [orderby] => rand [order] => ASC )

Mehr Tipps & Tricks

In diesem Tipp zeigen wir Ihnen, wie Sie einen ausgewählten Zeitbereich eines umfangreichen Gantt-Diagramms als PDF ausgeben und Ihr Firmenlogo in die Kopfzeile einfügen. Das INOSIM…

4. Oktober 2019

Table-Objekte anwenden

Table-Objekte in INOSIM sind indexierte Tabellen. Sie können mit der Zeilen- und Spaltenüberschrift direkt auf den Inhalt einer Zelle zugreifen, ohne per For-Loop zunächst die richtige Zeile und Spalte…

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…

mehr

INOSIM Kontakt

Zu den lokalen Geschäftszeiten

Deutschland +49 231 97 00 250