Daten in einer Zeichnung mit VBA suchen und auswerten, Teil 1 - Vorbereitung


 

 

Es besteht oft die Anforderung, dass in Zeichnungen bestimmte Informationen gesucht werden müssen und diese Daten auch in andere Systeme übertragen werden sollen.
Man kann hier eine Reihe von Beipiele nennen wie das Auslesen von Geometriedaten, Texte, Sachdaten oder andere nichtgraphische Informationen und das Übertragen an einfache Textdateien oder in ein Office Format wie Excel.

Anhand einiger Beispiele sollen hier mögliche Vorgehensweisen aufgezeigt werden, wobei die Beipiele auch ohne vorherige Programmierkenntnisse nachvollzogen werden können und sind auch bewußt an Anwender gerichtet, die sich neu mit diesem Thema vertraut machen möchten.

VBA ist innerhalb von MicroStation ab Version V8 integriert und kann über das Menü Extras > Macro > Projektmanager aufgerufen werden.  Man erhält dann einen solchen Dialog:

 

Es gibt hier einige Icons zum Erstellen neuer VBA Projekte und zum Laden, Ausführen und Aufzeichnen von VBA Routinen innerhalb eines Projektes. Alle augenblciklich geladenen VBA Projekte sind im unteren Teil gelistet.
Gespeichert werden VBA Programme in .mvba Dateien als Projekte, die in Modulen aufgeteilt sein können. Module enthalten dann die konkreten Routinen, die ausgeführt werden.

Vorgabemäßig existiert eine Projektdatei default.mvba, die wir auch gleich verwenden werden, dazu öffnen den VBA Editor über das gekennzeichnete Icon:

 

Damit öffnet sich der VBA Editor mit verschiedenen Fenstern. Falls nicht alle Fenster geöffnet sind, ein Doppelklick auf „Modul1“ öffnet die Editierfläche, in der der „Programmtext“ eingetragen werden muss:

 

In dem mit „Programmtext“ gekennzeichneten Eingabefeld können wir nun den Quelltext unserer Programme eingeben, bei größeren Umfängen, kann dies auch auf mehrere Module oder Projekte aufgeteilt werden, dazu später mehr.
Bevor wir jedoch konkrete Beispiele angehen, sollten wir den üblichen „Hello World“ Test machen, um zu prüfen, ob das VBA auch korrekt funktioniert.
Dazu könnte man folgendes kleines Programm benutzen:


Sub hello()
    MsgBox "Hello World"
End Sub

Nach der Eingabe kann man dieses Programm ausführen, indem man den Knopf „Sub/Userform ausführen“ drückt, der rot gekennzeichnet ist, der Cursor muss sich innerhalb des Programmtextes befinden, damit das System weiß, welches Programm ausgeführt werden soll:

 


 


Bei korrekter Ausführung erscheint eine solche Dialogbox, die mit einem Klick auf „OK“ quitttiert werden muss:

 

Wenn diese Dialogbox erscheint, können wir von einer voll funktionierenden VBA Umgebung ausgehen und uns dem ersten konkreten Beipiel zuwenden.
Sollte dagegen eine Fehlermeldung erscheinen, könnte evtl. die VBA Installation noch nicht oder nicht mehr vollständig erhalten sein. In diesem Fall empfiehlt sich ein erneutes Installieren der VBA Komponenten, konkret sollte dazu das Prerequisite Pack (ab V8 XM) noch einmal installiert werden, in den meisten Fällen reicht dies aus.
Andernfalls wenden Sie sich bitte an den technischen Support.


Fortsetzung folgt...