Produkt(e): | MicroStation | ||
Version(en): | 10.00.00.25 | ||
Umgebung: | Windows 8 | ||
Produktbereich: | Programmierung | ||
Produktunterbereich: | VBA |
Häufig ist es notwendig, dass Veränderungen gleichzeitig an einer großen Anzahl von Zeichnungen durchgeführt werden müssen. Ein manuelles Durchführen kann dabei sehr aufwendig sein, ein Batchprozess ist dabei sehr hilfreich.
Das Löschen von bestimmten Modellen ist manuell aufwendig, da jedes zu löschende Modell bestätigt werden muss.
Jedoch bietet das VBA Objektmodell eine Methode zum Löschen von Modellen
Im VBA Objektmodell gibt es die Methode .Delete zum Löschen von Modellen. Folgendes Beispiel zeigt eine Möglichkeit, wie dies umgesetzt werden kann.
Dabei wird der Name des zu löschenden Modells als Aufrufparameter mitgegeben. Dies erleichtert die Anwendung im Batchbetrieb:
Sub DeleteModel() Dim omod As ModelReference Dim moName As String modname = Trim(KeyinArguments) If Len(modname) = 0 Then MsgBox "Aufrufparameter fehlt, bitte Modellname angeben", vbCritical Exit Sub End If For Each omod In ActiveDesignFile.Models If (omod.Name = modname) Then ActiveDesignFile.Models.Delete omod Exit Sub End If Next End Sub
Wenn man ein VBA Projekt mit dem Namen ModelDelete erstellt und die .mvba Projektdatei in einem Ordner ablegt, der in der Variablen MS_VBASEARCHDIRECTORIES liegt, dann kann ein Aufruf als Tastaturbefehl so aussehen:
VBA RUN [modeldelete]modeldelete <modellname>
<modellname> muss durch einen konkreten Namen eines Modells ersetzt werden, das gelöscht werden soll.
Konkret ist dann dieser Tastaturbefehl auch in einer Befehlsdatei für einen Stapelbetrieb verwendbar.
Ursprünglicher Autor: | Artur Goldsweer |