Article ID: 132055
Article Last Modified on 1/19/2007
Option Explicit
' Translates a letter to a digit.
Function XlateDigit(ByVal C As String) As String
C = UCase(C)
Select Case C
Case "A" To "P"
XlateDigit = Chr$((Asc(C) + 1) \ 3 + 28)
Case "R" To "Y"
XlateDigit = Chr$(Asc(C) \ 3 + 28)
Case "Q", "Z"
XlateDigit = "0"
Case Else
XlateDigit = C
End Select
End Function
' Applies the translated digit to a phone number.
Function PhoneLettersToDigits(ByVal PhoneNo As Variant) As Variant
Dim I as Integer
If VarType(PhoneNo) = 8 Then ' A string.
For I = 1 To Len(PhoneNo)
Mid(PhoneNo, I, 1) = XlateDigit(Mid(PhoneNo, I, 1))
Next I
End If
PhoneLettersToDigits = PhoneNo
End Function
? PhoneLettersToDigits("PRO-GRA-MMER")
776-472-6637
Keywords: kbhowto kbprogramming KB132055