Properties beim Namen rufen

Liebe ExpertInnen,

wie stelle ich fest, ob eine Property überhaupt existiert? Mit

 For Each prop In ActiveDocument.CustomDocumentProperties
 If prop.Name = propname Then vorhanden = True
 Next prop
 If vorhanden Then Tuwatt()

geht es natürlich, nur den Weg

 If ActiveDocument.CustomDocumentProperties(propname) Then Tuwatt()

wäre mir viel lieber, schließlich kann ich existierende Properties ja auch per Name ansprechen. Ist aber kein Boolean, ist kein NULL, ist weiß der Geier was. Wer weiß was?

Gruß Ralf

Hallo, Ralf!

Ich lese den Namen der Property einfach aus. Wenn’s die Property nicht gibt, kommt ein Fehler 5. Den fange ich ab… Also ungefähr so:

Function ExistCustDocProp(pstrName As String) As Boolean
Const cstrProcName = "ExistCustDocProp" 'ErrorHandler:blush:$N=FindFiles
 Dim strName As String
 Dim bExist As Boolean
'--------------------
On Error GoTo ErrorHandler

 bExist = True
 strName = ActiveDocument.CustomDocumentProperties(pstrName).Name

' Fehlerbehandlungsblock hinzugefügt vom Fehlerbehandlungsroutinen-Add-In. Bearbeiten Sie diesen Codeabschnitt NICHT.
'--------------------
ErrorHandler:
 Select Case Err.Number
 Case 0
 ExistCustDocProp = bExist
 Case 5
 bExist = False
 Resume ErrorHandler
 Case Else
 MsgBox "Fehler: " & vbTab & Err.Number & "-" & Err.Description & vbCrLf \_
 & "Funktion:" & vbTab & cstrProcName, vbExclamation + vbOKOnly, "Fehler!"
 Resume ErrorHandler
 End Select
' Ende des Fehlerbehandlungsblocks.
End Function

Gruß, Manfred

Moin, Manfred,

Ich lese den Namen der Property einfach aus. Wenn’s die
Property nicht gibt, kommt ein Fehler 5. Den fange ich ab…

heißt das, der Fehler muss provoziert werden, wenn die Properties nicht durchgenudelt werden sollen? Da ist dann wohl ein Loch in VBA.

Nebenbei: Der Errorhandler kommt mir so bekannt vor - den hast Du mir wohl schon mal gezeigt :smile:))

Gruß Ralf

Moin, Ralf!

Ich lese den Namen der Property einfach aus. Wenn’s die
Property nicht gibt, kommt ein Fehler 5. Den fange ich ab…

heißt das, der Fehler muss provoziert werden, wenn die
Properties nicht durchgenudelt werden sollen?

Ich meine ja.

Da ist dann wohl ein Loch in VBA.

It’s not a bug, it’s a feature.

Nebenbei: Der Errorhandler kommt mir so bekannt vor - den hast
Du mir wohl schon mal gezeigt :smile:))

Die Wahrscheinlichkeit ist recht hoch:wink:

Gruß, Manfred