Function Diacritic2Char(Diacritic As Variant) As String
Dim Codes As String, Letters As String, LeftOfCode As String
Const NormalChars As String = " !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdef" & _
"ghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·" & _
"¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
Codes = "/225/259/462/226/228/551/7841/513/224/7843/515/257/261/7834/229/7681/227/193/194/196/192/197/" & _
"570/195/7683/7685/595/7687/384/387/385/579/263/269/231/265/597/267/392/572/199/571/598/271/" & _
"7697/7699/545/7691/7693/599/7695/273/598/396/394/233/277/283/553/7705/234/235/279/7865/517/" & _
"232/7867/605/519/275/281/583/7707/7869/201/202/203/200/582/7711/402/501/287/487/291/285/289/" & _
"667/608/7713/485/403/7723/543/7721/293/7719/7715/7717/686/614/7830/295/237/301/464/238/239/" & _
"7883/521/236/7881/523/299/303/616/7725/297/407/304/205/206/207/304/204/407/496/309/669/585/" & _
"607/584/7729/489/311/7731/409/7733/314/410/620/318/316/7741/564/7735/7739/320/619/621/7436/" & _
"322/573/7743/7745/7747/625/624/324/328/326/7755/565/7749/7751/505/626/7753/414/627/241/413/" & _
"544/209/629/339/248/243/335/466/244/246/559/7885/337/525/242/7887/417/527/333/491/248/7443/" & _
"245/415/216/211/212/214/210/415/216/213/7765/7767/421/587/672/586/341/345/343/7769/7771/529/" & _
"638/639/635/531/7775/636/634/589/637/588/347/353/351/349/537/7777/7835/7779/642/575/357/355/" & _
"7793/539/566/7831/7787/7789/429/7791/427/648/359/574/430/649/250/365/468/7799/251/7795/252/" & _
"7909/369/533/249/7911/432/535/363/371/367/7797/361/580/218/219/220/217/7807/651/7805/434/" & _
"7811/373/7813/7815/7817/7809/7832/7821/7819/253/375/255/7823/7925/7923/7927/436/563/7833/" & _
"591/7929/221/376/590/438/378/382/7825/657/380/7827/549/7829/656/438/576/"
Letters = "aaaaaaaaaaaaaaaaaAAAAAAAbbbbbbBBccccccccCCddddddddddddDeeeeeeeeeeeeeeeeeeeEEEEE" & _
"ffggggggggggGhhhhhhhhhhhiiiiiiiiiiiiiiiIIIIIIIIjjjjjJkkkkkkllllllllllllllLmmmmm" & _
"nnnnnnnnnnnnnNNNoooooooooooooooooooooOOOOOOOOOpppqqQrrrrrrrrrrrrrrrRsssssssssst" & _
"ttttttttttttTTuuuuuuuuuuuuuuuuuuuuUUUUUvvvVwwwwwwwxxyyyyyyyyyyyyYYYzzzzzzzzzzzz"
If Diacritic Like "*[!0-9]*" Then
If InStr(NormalChars, Diacritic) Then
Diacritic = Asc(Diacritic)
Else
Diacritic = AscW(Diacritic)
End If
End If
LeftOfCode = Left(Codes, InStr(Codes, "/" & Diacritic & "/"))
Diacritic2Char = Mid(Letters, Len(LeftOfCode) - Len(Replace(LeftOfCode, "/", "")), 1)
End Function