Ich bin kein VBA-Profi, ich habe nur gebastelt, aber es funktioniert. Ich habe auch einen BrowseFolder eingefügt.
Option Explizit
Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim sFileName als Zeichenfolge
Dateiname als Zeichenfolge dimmen
Pfad als Zeichenfolge dimmen
Dimmen newPath als Zeichenfolge
Dim swLayerMgr As SldWorks.LayerMgr
Dim swLayer als SldWorks.Layer
Dim nErrors so lange
Dimmen nWarnungen so lange
Dim boolstatus als boolescher Wert
Dim longstatus As Long
Dim longwarnings So lange
Private Const BIF_RETURNONLYFSDIRS so lang = &h1
Private Const BIF_DONTGOBELOWDOMAIN so lang = &h2
Private Const BIF_RETURNFSANCESTORS so lang = &h8
Private Const BIF_BROWSEFORCOMPUTER Solange = &H1000
Private Const BIF_BROWSEFORPRINTER Solange = &H2000
Private Const BIF_BROWSEINCLUDEFILES Solange = &H4000
Private Const MAX_PATH Solange = 260
Funktion BrowseFolder(Optional Caption As String, Optional InitialFolder As String) Als String
Ordner als Objekt dimmen
Dim F als Ordner
ShellApp als Objekt dimmen
Set ShellApp = CreateObject("Shell.Application")
Set F = ShellApp.BrowseForFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
Wenn nicht, ist F nichts, dann
Wenn F = "Desktop" dann
BrowseFolder = Über("BENUTZERPROFIL") & "\Desktop"
Oder
BrowseFolder = F.Items.Item.Path
Ende, wenn
Ende, wenn
Ende-Funktion
Sub main()
Legen Sie swApp = Application.SldWorks fest
' Auswählen des Quellordners
Path = BrowseFolder(Caption:="Quellordner auswählen")
Wenn Pfad = "" dann
'MsgBox "Quellordner auswählen"
Ende
Oder
Pfad = Pfad & "\"
Ende, wenn
sFileName = Verzeichnis(Pfad & "*.sldprt")
Ausführen, bis sFileName = ""
Set swModel = swApp.OpenDoc6(Pfad + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
Festlegen von swModel = swApp.ActiveDoc
longstatus = swModel.ImportDiagnosis(Wahr, Falsch, Wahr, 0)
Dim swErrors so lange
Dim swWarnungen so lange
boolstatus = swModel.Save3(1, swFehler, swWarnungen)
swApp.CloseDoc swModel.GetTitle
Set swModel = Nichts
sFileName = Verzeichnis
Schleife
Ende Sub