UserDefinedProperty Object

Outlook Developer Reference

Represents the definition of a user-defined property for a Folder object.

Version Information
 Version Added:  Outlook 2007

Remarks

Use UserDefinedProperties(index), where index is a name or index number, to return a single UserDefinedProperty object.

Use the Add method of the UserDefinedProperties collection for a Folder object to define a user-defined property for that folder.

Use the Type property to return the user-defined property type and the DisplayFormat property to return the display format for the user-defined property. If the Type property is set to olCombination or olFormula, use the Formula property to return the formula used to generate values for the user-defined property.

The UserDefinedProperty object represents only the definition of a user-defined property, which is applicable to all Outlook items contained by the folder. To retrieve or change user-defined property values for an Outlook item in that folder, use the UserProperties property of the Outlook item, such as a MailItem object, to retrieve the UserProperties collection for that item. You can then use the UserProperty object for the appropriate user-defined property to retrieve or change the value of that user-defined property for the Outlook item.

Example

The following Visual Basic for Applications (VBA) example displays the name of a specified Folder object, as well as the name and type of every UserDefinedProperty object contained in the UserDefinedProperties collection of the specified Folder object, to the Immediate window.

Visual Basic for Applications
  Sub DisplayUserProperties(ByRef FolderToCheck As Folder)
    Dim objProperty As UserDefinedProperty
    
    ' Print the name of the specified Folder object
    ' reference to the Immediate window.
    Debug.Print "--- Folder: " & FolderToCheck.Name
    
    ' Check if there are any user-defined properties
    ' associated with the Folder object reference.
    If FolderToCheck.UserDefinedProperties.Count = 0 Then
        ' No user-defined properties are present.
        Debug.Print "    No user-defined properties."
    Else
        ' Iterate through every user-defined property in
        ' the folder.
        For Each objProperty In FolderToCheck.UserDefinedProperties
            ' Retrieve the name of the user-defined property.
            strPropertyInfo = objProperty.Name
            ' Retrieve the type of the user-defined property.
            Select Case objProperty.Type
                Case OlUserPropertyType.olCombination
                    strPropertyInfo = strPropertyInfo & " (Combination)"
                Case OlUserPropertyType.olCurrency
                    strPropertyInfo = strPropertyInfo & " (Currency)"
                Case OlUserPropertyType.olDateTime
                    strPropertyInfo = strPropertyInfo & " (Date/Time)"
                Case OlUserPropertyType.olDuration
                    strPropertyInfo = strPropertyInfo & " (Duration)"
                Case OlUserPropertyType.olEnumeration
                    strPropertyInfo = strPropertyInfo & " (Enumeration)"
                Case OlUserPropertyType.olFormula
                    strPropertyInfo = strPropertyInfo & " (Formula)"
                Case OlUserPropertyType.olInteger
                    strPropertyInfo = strPropertyInfo & " (Integer)"
                Case OlUserPropertyType.olKeywords
                    strPropertyInfo = strPropertyInfo & " (Keywords)"
                Case OlUserPropertyType.olNumber
                    strPropertyInfo = strPropertyInfo & " (Number)"
                Case OlUserPropertyType.olOutlookInternal
                    strPropertyInfo = strPropertyInfo & " (Outlook Internal)"
                Case OlUserPropertyType.olPercent
                    strPropertyInfo = strPropertyInfo & " (Percent)"
                Case OlUserPropertyType.olSmartFrom
                    strPropertyInfo = strPropertyInfo & " (Smart From)"
                Case OlUserPropertyType.olText
                    strPropertyInfo = strPropertyInfo & " (Text)"
                Case OlUserPropertyType.olYesNo
                    strPropertyInfo = strPropertyInfo & " (Yes/No)"
                Case Else
                    strPropertyInfo = strPropertyInfo & " (Unknown)"
            End Select
            
            ' Print the name and type of the user-defined property
            ' to the Immediate window.
            Debug.Print strPropertyInfo
        Next
    End If
End Sub

See Also