you can test this to see if it does as you want
Dim myitem As MailItem, f As MAPIFolder
Set f = ActiveExplorer.CurrentFolder
For Each myitem In f.Items
cats = Split(myitem.Categories, ",")
For i = 0 To UBound(cats)
If InStr(cats(i), "Priority") > 0 Then
Select Case Split(cats(i))(0)
Case "2nd": Split(cats(i))(0) = "1st"
Case "3rd": Split(cats(i))(0) = "2nd"
Case "4th": Split(cats(i))(0) = "3rd"
Case Else: cats(i) = Val(cats(i)) - 1 & Mid(cats(i), 1 + Len(CStr(Val(cats(i)))))
End Select
End If
Next
myitem.Categories = Join(cats, ",")
Next
runs without error, but results untested