Вы можете использовать Like
для этого:
Private Function myFormat(ByVal userInput As String) As String
If userInput Like "#####-###-##" Then
myFormat = Mid$(userInput, 1, 6) & "0" & _
Mid$(userInput, 7, 4) & "00" & _
Mid$(userInput, 8, 2)
ElseIf userInput Like "####-####-##" Then
myFormat = Mid$(userInput, 1, 10) & "00" & _
Mid$(userInput, 11, 2)
ElseIf userInput Like "#####-####-#" Then
' and so on
End If
End Function
Вызывается так:
Sub Test()
Debug.Print myFormat("99999-999-99") '<~ returns 99999-0999-0099
Debug.Print myFormat("9999-9999-99") '<~ returns 9999-9999-0099
End Sub