Grundsätzlich kannst Du das so machen, wie Du schreibst
Dim compareArray (2)
compareArray (0) = "001"
compareArray (1) = "003"
compareArray (2) = "005"
Wenn es nicht zuviele Werte sind, kannst Du auch Split verwenden
Dim compareArray As Variant
compareArray = Split ("001:003:005", ":")
EDIT: Das "zuviele" bezieht sich nur auf die Schreibweise, ich würde nicht 1000 Werte in eine Zeile schreiben wollen, das ist dann kaum mehr wartbar.
EDIT2: Eine zweite Variante, die ich gerne verwende, ist die Nutzung von Listen, da die in der Größe nur durch den verfügbaren Arbeitsspeicher begrenzt sind. Außerdem stehen die Wertepaare schön zusammen.
Dim compareList List As String
compareList ("001") = "ABC"
compareList ("003") = "XZY"
compareList ("005") = "IMO"
sourceArray = doc.GetItemValue (feldname) (0)
If Iselement (compareList (sourceArray)) Then
sourceArray = compareList (sourceArray)
End If
'bzw. bei Mehrfachwerten
sourceArray = doc.GetItemVaue (feldname)
Forall sA In sourceArray
If Iselement (compareList (sA)) Then
sA = compareList (sA)
End If
End Forall