Если вы хотите самый простой способ, вы можете пойти с этим:
Function MyFunction(myString As String) As Boolean
MyFunction = ((Len(myString) = 5) And (IsNumeric(myString)))
End Function
Если вы хотите более эффективный способ, вам придется запустить несколько тестов для различных методов, предложенных людьми.
Edit: предыдущее решение не работает хорошо (см. Первые 2 комментария), но я позволяю ему, потому что это то, что было принято.Вот что я бы сделал:
Function MyFunction(myString As String) As Boolean
Dim myDouble As Double
Dim myLong As Long
myDouble = Val(myString)
myLong = Int(myDouble / 10000)
MyFunction = ((Len(myString) = 5) And (myLong > 0) And (myLong < 10))
End Function
В этой функции нет ошибки «защита», поэтому, если вы попытаетесь проверить слишком большое число, например 22222222222222, оно не будет работать.