So ich habe es
Der Code ist etwas länger aber tut es auch
Sub IDW_UpdateStylesIV2008()
'message box strings
msgPrm1 = " This Macro Only Works with Drawings Documents "
msgPrm2 = " Please open a Drawing "
msgTit = "Wrong Active Document Type"
Prm1 = Len(msgPrm1) + 4
Prm2 = Len(msgPrm2) + 4
Tit = Len(msgTit)
cmsgPrm2 = String((Prm1 - Prm2) / 2, Chr(32)) & msgPrm2
cmsgTit = String((Prm1 - Prm2) / 2, Chr(32)) & msgTit
'check if the active document is a drawing document
If ThisApplication.ActiveDocumentType = kDrawingDocumentObject Then
Dim oIDW As DrawingDocument
Set oIDW = ThisApplication.ActiveDocument
Dim oIDWStyles As Inventor.DrawingStylesManager
Set oIDWStyles = oIDW.StylesManager
Else
MsgBox msgPrm1 & Chr(13) & Chr(13) & cmsgPrm2, vbExclamation, cmsgTit
End If
Dim i As Integer
'loop thru all styles and check if they are up to date
For i = 1 To oIDWStyles.StandardStyles.Count
'Debug.Print "Std Styles - " + oIDWStyles.StandardStyles.Item(I).Name
If oIDWStyles.StandardStyles.Item(i).UpToDate = False Then
oIDWStyles.StandardStyles.Item(i).UpdateFromGlobal
End If
Next
For i = 1 To oIDWStyles.ObjectDefaultsStyles.Count
'Debug.Print "Obj Def Styles - " + oIDWStyles.ObjectDefaultsStyles.Item(I).Name
If oIDWStyles.ObjectDefaultsStyles.Item(i).UpToDate = False Then
oIDWStyles.ObjectDefaultsStyles.Item(i).UpdateFromGlobal
End If
Next
For i = 1 To oIDWStyles.DimensionStyles.Count
'Debug.Print "Dim Styles - " + oIDWStyles.DimensionStyles.Item(I).Name
If oIDWStyles.DimensionStyles.Item(i).UpToDate = False Then
oIDWStyles.DimensionStyles.Item(i).UpdateFromGlobal
End If
Next
For i = 1 To oIDWStyles.TextStyles.Count
'Debug.Print "TXT Styles - " + oIDWStyles.TextStyles.Item(I).Name
If oIDWStyles.TextStyles.Item(i).UpToDate = False Then
oIDWStyles.TextStyles.Item(i).UpdateFromGlobal
End If
Next
For i = 1 To oIDWStyles.Layers.Count
'Debug.Print "Layers Styles - " + oIDWStyles.Layers.Item(I).Name
If oIDWStyles.Layers.Item(i).UpToDate = False Then
oIDWStyles.Layers.Item(i).UpdateFromGlobal
End If
Next
'Inv2008 Styles Class
For i = 1 To oIDWStyles.Styles.Count
Debug.Print "Styles - " + oIDWStyles.Styles.Item(I).Name
If oIDWStyles.Styles.Item(i).UpToDate = False Then
oIDWStyles.Styles.Item(i).UpdateFromGlobal
End If
Next
oIDW.Update
oIDW.Save
'set Drawing settings
If oIDW.DrawingSettings.DeferUpdates = True Then
oIDW.DrawingSettings.DeferUpdates = False
oIDW.Save
End If
'oIDW.Close
End Sub
Mit dem Code Teil des Rahmen und Schriftfeldes erneuern, ist mein VBA nun komplett!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP