VBA Tipp: Vanity Numbers

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte zu einem Text die entsprechende "vanity number" ermitteln. (Das sind die Telefon-Nummern, die der Buchstabenfolge auf der Telefontastatur entsprechen - auch 0700-Nummern genannt.)

Lösung

Die Lösung findet sich in dieser kleinen VBA-Funktion:

Public Function Vanity(s As Variant) As Variant
 
   'Quelle: http://www.dbwiki.net/
 
 
   Dim res As String
   Dim i   As Long
 
   If IsNull(s) Then Vanity = Null: Exit Function
 
   For i = 1 To Len(s)
      Select Case UCase(Mid$(s, i, 1))
         Case "A", "B", "C":      res = res & "2"
         Case "D", "E", "F":      res = res & "3"
         Case "G", "H", "I":      res = res & "4"
         Case "J", "K", "L":      res = res & "5"
         Case "M", "N", "O":      res = res & "6"
         Case "P", "Q", "R", "S": res = res & "7"
         Case "T", "U", "V":      res = res & "8"
         Case "W", "X", "Y", "Z": res = res & "9"
      End Select
   Next
 
   Vanity = res
 
End Function

Aufruf

im VBA-Direktfenster:

?Vanity("Meier")
63437
 
'ggf. auf 8 Stellen auffüllen:
?Format(Vanity("Meier"),"00000000")
00063437