Hallo Forum,
ich versuche mich an meinem ersten Makro.
Ziel: Alle geöffneten Dateien sollen in ein gemeinsames Verzeichnis exportiert werden.
IPT-Dateien sollen als STP exportiert werden.
IDW-Dateien sollen als DXF exportiert werden.
So weit ist mein Makro:
Code:
Sub exportToDesktop()
Dim oDoc As Document
Dim dDoc As DrawingDocument
Dim fso As Object
Dim ret As Variant
Dim FilenameLength As Integer
Dim FilenameExtension As String
Dim iDot As Integer
For Each oDoc In ThisApplication.Documents.VisibleDocuments
' Abfrage auf Dokumenttyp. Siehe auch http://adndevblog.typepad.com/manufacturing/2013/01/inventor-document-sub-types.html
' Ich versuche "Quick-and-dirty" die Erkennung über die Dateiendung.
' If oDoc.DocumentType = kDrawingDocumentObject Then
Set fso = CreateObject("Scripting.FilesystemObject")
Call oDoc.Activate
Set dDoc = ThisApplication.ActiveDocument
If dDoc Is Nothing Then Exit Sub
FilenameLength = Len(Trim(dDoc.FullFileName)) ' Anzahl der Zeichen des Dateinamens
If FilenameLength > 0 Then ' Trivial-Abfrage ob Dateiname vorhanden ist
iDot = InStrRev(Trim(dDoc.FullFileName), ".") ' Anzahl der Zeichen vor dem Punkt
FilenameExtension = Right(Trim(dDoc.FullFileName), FilenameLength - iDot) ' Zeichen hinter dem Punkt, also Dateiendung
If FilenameExtension = "idw" Then
' Dateiendung ist idw: Export als DXF
outFile = "[...Pfad...]" & fso.GetBaseName(dDoc.FullFileName) & ".dxf"
dDoc.SaveAs outFile, True
ElseIf FilenameExtension = "iam" Or FilenameExtension = "ipt" Then
' Dateiendung ist iam oder ipt: Export als STP
outFile = "[...Pfad...]" & fso.GetBaseName(dDoc.FullFileName) & ".stp"
dDoc.SaveAs outFile, True
End If
Else
MsgBox "Erst alles Speichern", vbInformation
Exit Sub
End If
' End If
Next
End Sub
Wenn ich nun eine IDW-Datei öffne, dann wird eine DXF-Datei exportiert. Soweit also alles prima.
Wenn ich aber eine IPD-Datei öffne, bleibt die Schleife an Zeile
Code:
Set dDoc = ThisApplication.ActiveDocument
hängen und gibt den Fehler "
Laufzeitfehler '13': Typen unverträglich" aus.
Kann mir jemand weiter hier helfen??
Viele Dank im Voraus!
[Diese Nachricht wurde von themechanicalman am 21. Jan. 2015 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP