Code:
Option ExplicitPrivate Sub UserParamDingens()
Dim oAssDoc As AssemblyDocument
If ThisApplication.ActiveDocumentType = kAssemblyDocumentObject Then
Set oAssDoc = ThisApplication.ActiveDocument
Else
MsgBox "Kein Baugruppendokument - Exit"
Exit Sub
End If
Dim oCompOcc As ComponentOccurrence
Dim oUserParams As UserParameters
Dim oUserParam As UserParameter
Dim sValueOld As String
Dim sValueNew As String
Dim oprop As Property
On Error Resume Next
For Each oCompOcc In oAssDoc.ComponentDefinition.Occurrences
If oCompOcc.SubOccurrences.Count = 0 Then
If oCompOcc.DefinitionDocumentType = kPartDocumentObject Then
Set oUserParams = oCompOcc.Definition.Parameters.UserParameters
For Each oUserParam In oUserParams
sValueOld = oUserParam.Value
oUserParam.Value = "1234567890" 'Sollte mit was Sinnvollem gefüllt werden
Debug.Print "Datei: " & oCompOcc.Definition.Document.FullFileName & " alterWert" & oUserParam.Value; " --- neuer Wert " & oUserParam.Value
Next
End If
Else
Call AllSubOccs(oCompOcc)
End If
Next
MsgBox "Fertsch"
End Sub
Private Sub AllSubOccs(ByVal oCompOcc As ComponentOccurrence)
Dim oSubCompOcc As ComponentOccurrence
Dim oUserParams As UserParameters
Dim oUserParam As UserParameter
Dim sValueOld As String
Dim sValueNew As String
On Error Resume Next
For Each oSubCompOcc In oCompOcc.SubOccurrences
If oSubCompOcc.SubOccurrences.Count = 0 Then
If oSubCompOcc.DefinitionDocumentType = kPartDocumentObject Then
Set oUserParams = oSubCompOcc.Definition.Parameters.UserParameters
For Each oUserParam In oUserParams
sValueOld = oUserParam.Value
oUserParam.Value = "1234567890"
Debug.Print "Datei: " & oSubCompOcc.Definition.Document.FullFileName & " alterWert" & oUserParam.Value; " --- neuer Wert " & oUserParam.Value
Next
Else
Call AllSubOccs(oSubCompOcc)
End If
End If
Next
End Sub