Hallo Kalle,
Danke für Deine Antwort. Ich habe mal versucht das Ganze umzusetzten. Leider scheitere ich am Aufruf der Excel- Prozedur.
Wenn ich das folgende Makro ausführe:
Dim SwApp As Object
Dim Part As Object
Dim SelMgr As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Feature As Object
Sub main()
Set SwApp = Application.SldWorks
Set Part = SwApp.ActiveDoc
Set SelMgr = Part.SelectionManager
SwApp.ActiveDoc.ActiveView.FrameState = 1
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
VerknüpfungenAktuallisieren
SwApp.ActiveDoc.ActiveView.FrameState = 1
Part.ClearSelection2 True
Part.CloseFamilyTable
SwApp.ActiveDoc.ActiveView.FrameState = 1
End Sub
'***********************************************************************
Sub VerknüpfungenAktuallisieren()
Dim SwApp As Object ' SolidWorks
Dim ModelDoc As Object ' aktuelles Part
Dim SelMgr As Object ' Auswahl
Dim DispDim As Object ' angezeigte Bemassung
Dim Dimension As Object ' dazugehörende Bemassung
Dim mass As Double ' Wert der Bemassung
Set SwApp = GetObject(, "SldWorks.Application")
Set ModelDoc = SwApp.ActiveDoc ' aktives Dokument anpacken
Set SelMgr = ModelDoc.SelectionManager() 'Auswahl im aktiven Dokument
Dim ExcelSheet As Object
'Set ExcelSheet = GetObject(, "Excel.Application")
Set ExcelSheet = CreateObject("Excel.Application")
'Dateipfad ermitteln
Pfad = Part.GetPathName
Pfad = Left(Pfad, Len(Pfad) - 7) 'Dateipfad ohne Dateiendung
'Dateipfad ohne Dateiname
Do Until Right(Pfad, 1) = "\"
Pfad = Left(Pfad, Len(Pfad) - 1)
Loop
Pfad = Left(Pfad, Len(Pfad) - 1)
NeueMappe = Pfad & "\Mappe1.xls"
ExcelSheet.ActiveWorkbook.ChangeLink Name:="Mappe1.xls", NewName:= _
NeueMappe, Type:=xlExcelLinks
End Sub
erhalte ich für die Zeile ExcelSheet.ActiveWorkook.ChangeLink... den Laufzeitfehler 91. Ich bin noch nicht ganz dahinter gestiegen, wie man eine Excel- Prozedur aus SolidWorks aufruft.
Vielleicht kannst Du (oder jemand anderes aus der Gemeinde) mit weiterhelfen.
Gruß Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP