Hallo,
ich hoffe ich kann mich jetzt einigermaßen verständlich ausdrücken bezüglich meines Problemchens:
Ich habe eine Baugruppe, welche virtuelle Teile enthält und ein Makro, welches alle Teile dieser Baugruppe öffnet und dieser die hinterlegte Excel-Tabelle öffnet, diese dann schließt, in die Baugruppe zurückkehrt und das nächste Teil öffnet usw., nochmal zusammen gefasst:
1. Teil 1 öffnen
2. hinterlegte Excel öffnen
3. Excel schließen
4. Teil schließen
5. Teil 2 öffnen
6. hinterlegte Excel öffnen
...
Jetzt hab ich nur das Problem, dass wenn ich die Baugruppe schließe und diese anschließend wieder öffne, der Ursprungszustand wieder da ist.
Um das zu verhindern müsste ich bevor ich die Baugruppe schließe, alle Teile von Hand öffnen und Speichern wählen.
Man muss doch irgendwo in diesem Makro das Speichern einbetten können oder? Habe was VBA angeht nicht wirklich Ahnung, habe allerdings diese SENDKEYS Funktion gefunden, kreig ich es dennoch nicht hin... weiß aber auch nicht an welcher Stelle in meinem Makro ich das packen müsste
Hier mal das komplette Makro:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = _
Application.SldWorks
Set Part = swApp.ActiveDoc
Part.ShowNamedView2 "*Isometrisch", 7
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.CloseFamilyTable
boolstatus = Part.Extension.SelectByID2("ZH205-IB^ZH205-1@ZH205", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
Set Part = swApp.OpenDoc6("C:\Users\admin\AppData\Local\Temp\swx236\VC~~\ZH205\ZH205-IB^ZH205.sldprt", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205-IB^ZH205", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("IBSM-FLAT-PATTERN", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("IBSM-FLAT-PATTERN")
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.CloseFamilyTable
boolstatus = Part.Extension.SelectByID2("Standard@ZH205-IB^ZH205.SLDPRT", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("Standard")
Set Part = Nothing
swApp.CloseDoc "ZH205-IB^ZH205"
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205", False, longstatus
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("ZH205-WKT1^ZH205-1@ZH205", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
Set Part = swApp.OpenDoc6("C:\Users\admin\AppData\Local\Temp\swx236\VC~~\ZH205\ZH205-WKT1^ZH205.sldprt", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205-WKT1^ZH205", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
Part.ShowNamedView2 "*Isometrisch", 7
boolstatus = Part.Extension.SelectByID2("WKT-WICKL-SM-FLAT-PATTERN", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("WKT-WICKL-SM-FLAT-PATTERN")
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.CloseFamilyTable
boolstatus = Part.Extension.SelectByID2("Standard@ZH205-WKT1^ZH205.SLDPRT", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("Standard")
Set Part = Nothing
swApp.CloseDoc "ZH205-WKT1^ZH205"
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205", False, longstatus
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("ZH205-ISO^ZH205-1@ZH205", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
Set Part = swApp.OpenDoc6("C:\Users\admin\AppData\Local\Temp\swx236\VC~~\ZH205\ZH205-ISO^ZH205.sldprt", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205-ISO^ZH205", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("ISOSM-FLAT-PATTERN", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("ISOSM-FLAT-PATTERN")
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.CloseFamilyTable
boolstatus = Part.Extension.SelectByID2("Standard@ZH205-ISO^ZH205.SLDPRT", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("Standard")
Part.ShowNamedView2 "*Isometrisch", 7
Set Part = Nothing
swApp.CloseDoc "ZH205-ISO^ZH205"
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205", False, longstatus
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("ZH205-SPB^ZH205-1@ZH205", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.OpenCompFile
Set Part = swApp.OpenDoc6("C:\Users\admin\AppData\Local\Temp\swx236\VC~~\ZH205\ZH205-SPB^ZH205.sldprt", 1, 0, "", longstatus, longwarnings)
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 22
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205-SPB^ZH205", False, longstatus
Set Part = swApp.ActiveDoc
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("SPANNBANDSM-FLAT-PATTERN", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("SPANNBANDSM-FLAT-PATTERN")
boolstatus = Part.Extension.SelectByID2("Tabelle", "DESIGNTABLE", 0, 0, 0, False, 0, Nothing, 0)
Part.InsertFamilyTableEdit
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ClearSelection2 True
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.CloseFamilyTable
boolstatus = Part.Extension.SelectByID2("Standard@ZH205-SPB^ZH205.SLDPRT", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Standard@ZH205-SPB^ZH205.SLDPRT", "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ShowConfiguration2("Standard")
Part.ShowNamedView2 "*Isometrisch", 7
Set Part = Nothing
swApp.CloseDoc "ZH205-SPB^ZH205"
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
myModelView.FrameTop = 0
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
swApp.ActivateDoc2 "ZH205", False, longstatus
Set Part = swApp.ActiveDoc
Part.ShowNamedView2 "*Isometrisch", 7
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP