The Priority property returns a task or project priority.
Project and Task objects
Long
Read/write
The low eight bits of the Priority property’s value is a character.
The following sample code shows how the LConvertTo32bitPriority function converts the string parameter to a Long, which can be used as the priority in Automation (formerly OLE Automation):
‘ Valid formats for the string parameter are:
‘ "1"..."9"
‘ "A"..."Z"
‘ "A1"..."A9", "B1"..."B9", ... , "Z1"..."Z9"
‘ Anything else will return DefaultPriority as the priority,
‘ which is currently "3".
Function LConvertTo32bitPriority(ByVal PriorityText As String) As Long
Const DefaultPriority = &H2033 ' default priority = "3"
Dim PriorityNormal As String
Dim FirstChar As Integer
Dim LastChar As Integer
PriorityNormal = UCase(PriorityText)
Select Case Len(PriorityNormal)
Case 1
If ((PriorityNormal >= "1") And (PriorityNormal <= "9")) Then
LConvertTo32bitPriority = &H2000 + Asc(PriorityNormal)
ElseIf ((PriorityNormal >= "A") And (PriorityNormal <= "Z")) Then
LConvertTo32bitPriority = (Asc(PriorityNormal) * 256) + &H20
Else
LConvertTo32bitPriority = DefaultPriority
End If
Case 2
‘ Verify that the first character is valid.
FirstChar = Asc(PriorityNormal)
If ((FirstChar < Asc("A")) Or (FirstChar > Asc("Z"))) Then
LConvertTo32bitPriority = DefaultPriority
Else
‘ Verify that the second character is valid.
LastChar = Asc(Right(PriorityNormal, 1))
If ((LastChar < Asc("1")) Or (LastChar > Asc("9"))) Then
LConvertTo32bitPriority = DefaultPriority
Else
LConvertTo32bitPriority = (FirstChar * 256) + LastChar
End If
End If
Case Else
' If the string is too short or too long, return "3" as the priority
' should use schedule's default priority - left as exercise for the reader...
LConvertTo32bitPriority = DefaultPriority
End Select
End Function