'MacroName:Latin2Devanagari 'MacroDescription:Automatically untransliterate a field with Latin characters into Devanagari (Hindi, Marathi, Sanskrit) characters 'Macro created by: Joel Hahn, Niles Public Library District 'Macro last modified: 10 Oct 2016 Option Explicit Option Compare Binary Declare Function TransHindi(sField As String) As String Declare Function TransMarathi(sField As String) As String Declare Function TransSanskrit(sField As String) As String Sub Main Dim sField As String Dim bool As Integer Dim sTranslit As String Dim i As Integer Dim CharacterSet As Integer Dim sLang As String Dim CS As Object On Error Resume Next Set CS = GetObject(,"Connex.Client") On Error GoTo 0 If CS Is Nothing Then Set CS = CreateObject("Connex.Client") End If ' Select Case CS.ItemType ' Case -1, 5 To 13, 15 To 16, 21 To 25 ' MsgBox "Not viewing a MARC record. Exiting..." ' Exit Sub ' End Select bool = CS.GetFixedField("Lang", sLang) Select Case sLang Case "hin" CharacterSet = 0 Case "mar" CharacterSet = 1 Case "pra", "san" CharacterSet = 2 Case Else 'Set the default transliteration table selection ' 0 = Hindi ' 1 = Marathi ' 2 = Sanskrit & Prakrit CharacterSet = 0 End Select ' Dim CharSets(6) As String ' CharSets(0) = "Hindi" ' CharSets(1) = "Marathi" ' CharSets(2) = "Sanskrit & Prakrit" ' Begin Dialog newdlg 183, 60, "Transliteration Options" ' OkButton 35, 42, 50, 14 ' CancelButton 95, 42, 50, 14 ' Text 3, 3, 177, 10, "Please select the LC Devanagari transliteration table to use:" ' DropListBox 52, 11, 78, 98, CharSets(), .Langs ' End Dialog ' Dim CharSelect As newdlg ' CharSelect.Langs = CharacterSet ' response = Dialog(CharSelect) ' If response = 0 Then ' Exit Sub ' End If ' CharacterSet = CharSelect.Langs bool = CS.GetFieldLine(CS.CursorRow, sField) If InStr(sField, "Data contains non-latin script") Then MsgBox "The selected field already contains vernacular data. Exiting..." Exit Sub ElseIf sField = Chr(252) & Chr(252) & Chr(252) & " " Or Trim(Mid(sField, 6)) = "" Then MsgBox "The selected field contains no data. Exiting..." Exit Sub End If For i = 1 to 5 If Asc(Mid(sField, i, 1)) = 252 Then sTranslit = sTranslit & "∎" Else sTranslit = sTranslit & Mid(sField, i, 1) End If Next Select Case CharacterSet Case 0 sTranslit = sTranslit & TransHindi(sField) Case 1 sTranslit = sTranslit & TransMarathi(sField) Case 2 sTranslit = sTranslit & TransSanskrit(sField) Case Else Exit Sub End Select bool = CS.AddFieldLine(CS.CursorRow, sTranslit) CS.SendKeys "%ekl", -1 End Sub '################################################################################ Function TransHindi(sField As String) As String Dim i As Long Dim sCurVowel As Integer Dim sNewField As String sNewField = "" Dim sTransNumbers As String sTransNumbers = "N" i = 6 Do If Mid(sField, i, 1) = Chr(223) Then sNewField = sNewField & "ǂ" & Mid(sField, i+1, 1) i = i + 2 Else If InStr(" !@#$%^&*()[]{};:.,/?\=+-" & Chr(34), Mid(sField, i, 1)) Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) ElseIf Mid(sField, i, 1) = "'" Then sCurVowel = 2 sNewField = sNewField & "ऽ" ElseIf InStr("0123456789", Mid(sField, i, 1)) Then If sTransNumbers = "N" Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) Else sCurVowel = 2 If Mid(sField, i, 1) = "0" Then sNewField = sNewField & "०" ElseIf Mid(sField, i, 1) = "1" Then sNewField = sNewField & "१" ElseIf Mid(sField, i, 1) = "2" Then sNewField = sNewField & "२" ElseIf Mid(sField, i, 1) = "3" Then sNewField = sNewField & "३" ElseIf Mid(sField, i, 1) = "4" Then sNewField = sNewField & "४" ElseIf Mid(sField, i, 1) = "5" Then sNewField = sNewField & "५" ElseIf Mid(sField, i, 1) = "6" Then sNewField = sNewField & "६" ElseIf Mid(sField, i, 1) = "7" Then sNewField = sNewField & "७" ElseIf Mid(sField, i, 1) = "8" Then sNewField = sNewField & "८" ElseIf Mid(sField, i, 1) = "9" Then sNewField = sNewField & "९" End If End If ElseIf UCase(Mid(sField, i, 1)) = "A" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then sNewField = sNewField & "∎" 'not a valid Unicode character i = i + 2 ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then sNewField = sNewField & "ॵ" i = i + 2 ElseIf LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ऐ" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "औ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "आ" i = i + 1 Else sNewField = sNewField & "अ" End If Else If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then sNewField = sNewField & "∎" i = i + 2 ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then sNewField = sNewField & "ॏ" i = i + 2 ElseIf LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ै" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "ौ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ा" i = i + 1 Else 'Implied, not written End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "E" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(230) Then sNewField = sNewField & "ऄ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ॲ" i = i + 1 Else sNewField = sNewField & "ए" End If Else If Mid(sField, i+1, 1) = Chr(230) Then sNewField = sNewField & "∎" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "∎" i = i + 1 Else sNewField = sNewField & "े" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "I" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ई" i = i + 1 Else sNewField = sNewField & "इ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ी" i = i + 1 Else sNewField = sNewField & "ि" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "O" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(230) Then sNewField = sNewField & "ऒ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ऑ" i = i + 1 Else sNewField = sNewField & "ओ" End If Else If Mid(sField, i+1, 1) = Chr(230) Then sNewField = sNewField & "ॊ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ॉ" i = i + 1 Else sNewField = sNewField & "ो" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "U" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ऊ" i = i + 1 Else sNewField = sNewField & "उ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ू" i = i + 1 Else sNewField = sNewField & "ु" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "K" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then sNewField = sNewField & "ख़" i = i + 3 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ख" i = i + 1 Else sNewField = sNewField & "क" End If ElseIf UCase(Mid(sField, i, 1)) = "Q" Then sCurVowel = 0 sNewField = sNewField & "क़" ElseIf UCase(Mid(sField, i, 1)) = "G" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then sNewField = sNewField & "ग़" i = i + 3 ElseIf LCase(Mid(sField, i+1, 3)) = Chr(245) & "h" & Chr(245) Then sNewField = sNewField & "घ़" i = i + 3 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "घ" i = i + 1 Else sNewField = sNewField & "ग" End If ElseIf UCase(Mid(sField, i, 1)) = "C" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "छ" i = i + 1 Else sNewField = sNewField & "च" End If ElseIf UCase(Mid(sField, i, 1)) = "J" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "झ" i = i + 1 Else sNewField = sNewField & "ज" End If ElseIf UCase(Mid(sField, i, 1)) = "Z" Then sCurVowel = 0 sNewField = sNewField & "ज़" ElseIf UCase(Mid(sField, i, 1)) = "T" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ठ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ट" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(243) Then sNewField = sNewField & "ट़" i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "थ" i = i + 1 Else sNewField = sNewField & "त" End If ElseIf UCase(Mid(sField, i, 1)) = "D" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ढ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ड" i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ध" i = i + 1 Else sNewField = sNewField & "द" End If ElseIf UCase(Mid(sField, i, 1)) = "P" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "फ" i = i + 1 Else sNewField = sNewField & "प" End If ElseIf UCase(Mid(sField, i, 1)) = "F" Then sCurVowel = 0 sNewField = sNewField & "फ़" ElseIf UCase(Mid(sField, i, 1)) = "B" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "भ" i = i + 1 Else sNewField = sNewField & "ब" End If ElseIf UCase(Mid(sField, i, 1)) = "Y" Then sCurVowel = 0 sNewField = sNewField & "य" ElseIf UCase(Mid(sField, i, 1)) = "V" Then sCurVowel = 0 sNewField = sNewField & "व" ElseIf UCase(Mid(sField, i, 1)) = "S" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(226) Then sNewField = sNewField & "श" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(243) Then sNewField = sNewField & "स़" i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ष" i = i + 1 Else sNewField = sNewField & "स" End If ElseIf UCase(Mid(sField, i, 1)) = "H" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sCurVowel = 2 sNewField = sNewField & "ः" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(243) Then sNewField = sNewField & "ह़" i = i + 1 Else sNewField = sNewField & "ह" End If ElseIf UCase(Mid(sField, i, 1)) = "R" Then If Mid(sField, i+1, 2) = Chr(244) & Chr(229) Or Mid(sField, i+1, 2) = Chr(229) & Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ॠ" Else sNewField = sNewField & "ॄ" End If i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऋ" Else sNewField = sNewField & "ृ" End If i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sCurVowel = 0 sNewField = sNewField & "ढ़" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sCurVowel = 0 sNewField = sNewField & "ड़" i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "र" End If ElseIf UCase(Mid(sField, i, 1)) = "L" Then If Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऌ" Else sNewField = sNewField & "ॢ" End If i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "ल" End If ElseIf UCase(Mid(sField, i, 1)) = "M" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ं" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(239) Then sNewField = sNewField & "ँ" i = i + 1 Else If InStr( "[pfbm 0123456789!@#$%^&*()[]{};:.,/?\=+-]", LCase(Mid(sField, i+1, 1)) ) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "म" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 ElseIf UCase(Mid(sField, i, 1)) = "N" Then If Mid(sField, i+1, 1) = Chr(242) Then If LCase(Mid(sField, i+2, 2)) = "d" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "r" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "t" & Chr(242) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ण" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(228) Then sNewField = sNewField & "ञ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(231) Then If Mid(sField, i+2, 1) Like "[gkq]" Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(231) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ङ" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ं" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(239) Then sNewField = sNewField & "ँ" i = i + 1 Else If Mid(sField, i+1, 1) Like "[tdn]" Then sNewField = sNewField & "ं" Else sNewField = sNewField & "न" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 Else sNewField = sNewField & "∎" End If i = i + 1 End If If sCurVowel = 0 And Not ( Right(sNewField, 1) Like "[0-9a-z ]" Or Mid(sField, i, 1) Like "[0-9AEIOUaeiou]" Or LCase(Mid(sField, i, 2)) = "r" & Chr(244) Or LCase(Mid(sField, i, 2)) = "l" & Chr(244) ) Then sNewField = sNewField & "्" End If Loop While i <= Len(sField) TransHindi = sNewField End Function '################################################################################ Function TransMarathi(sField As String) As String Dim i As Long Dim sCurVowel As Integer Dim sNewField As String sNewField = "" Dim sTransNumbers As String sTransNumbers = "N" i = 6 Do If Mid(sField, i, 1) = Chr(223) Then sNewField = sNewField & "ǂ" & Mid(sField, i+1, 1) i = i + 2 Else If InStr(" !@#$%^&*()[]{};:.,/?\=+-" & Chr(34), Mid(sField, i, 1)) Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) ElseIf Mid(sField, i, 1) = "'" Then sCurVowel = 2 sNewField = sNewField & "ऽ" ElseIf InStr("0123456789", Mid(sField, i, 1)) Then If sTransNumbers = "N" Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) Else sCurVowel = 2 If Mid(sField, i, 1) = "0" Then sNewField = sNewField & "०" ElseIf Mid(sField, i, 1) = "1" Then sNewField = sNewField & "१" ElseIf Mid(sField, i, 1) = "2" Then sNewField = sNewField & "२" ElseIf Mid(sField, i, 1) = "3" Then sNewField = sNewField & "३" ElseIf Mid(sField, i, 1) = "4" Then sNewField = sNewField & "४" ElseIf Mid(sField, i, 1) = "5" Then sNewField = sNewField & "५" ElseIf Mid(sField, i, 1) = "6" Then sNewField = sNewField & "६" ElseIf Mid(sField, i, 1) = "7" Then sNewField = sNewField & "७" ElseIf Mid(sField, i, 1) = "8" Then sNewField = sNewField & "८" ElseIf Mid(sField, i, 1) = "9" Then sNewField = sNewField & "९" End If End If ElseIf UCase(Mid(sField, i, 1)) = "A" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then ' sNewField = sNewField & "∎" ' i = i + 2 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then ' sNewField = sNewField & "∎" ' i = i + 2 If LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ऐ" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "औ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "आ" i = i + 1 Else sNewField = sNewField & "अ" End If Else 'If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then ' sNewField = sNewField & "∎" ' i = i + 2 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then ' sNewField = sNewField & "∎" ' i = i + 2 If LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ै" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "ौ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ा" i = i + 1 Else 'Implied, not written End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "E" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ऄ" ' i = i + 1 If Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ॲ" i = i + 1 Else sNewField = sNewField & "ए" End If Else 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "∎" ' i = i + 1 If Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "∎" i = i + 1 Else sNewField = sNewField & "े" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "I" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ई" i = i + 1 Else sNewField = sNewField & "इ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ी" i = i + 1 Else sNewField = sNewField & "ि" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "O" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ऒ" ' i = i + 1 If Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ऑ" i = i + 1 Else sNewField = sNewField & "ओ" End If Else 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ॊ" ' i = i + 1 If Mid(sField, i+1, 1) = Chr(227) Then sNewField = sNewField & "ॉ" i = i + 1 Else sNewField = sNewField & "ो" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "U" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ऊ" i = i + 1 Else sNewField = sNewField & "उ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ू" i = i + 1 Else sNewField = sNewField & "ु" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "K" Then sCurVowel = 0 'If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then ' sNewField = sNewField & "ख़" ' i = i + 3 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ख" i = i + 1 Else sNewField = sNewField & "क" End If 'ElseIf UCase(Mid(sField, i, 1)) = "Q" Then ' sCurVowel = 0 ' sNewField = sNewField & "क़" ElseIf UCase(Mid(sField, i, 1)) = "G" Then sCurVowel = 0 'If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then ' sNewField = sNewField & "ग़" ' i = i + 3 'ElseIf LCase(Mid(sField, i+1, 3)) = Chr(245) & "h" & Chr(245) Then ' sNewField = sNewField & "घ़" ' i = i + 3 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "घ" i = i + 1 Else sNewField = sNewField & "ग" End If ElseIf UCase(Mid(sField, i, 1)) = "C" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "छ" i = i + 1 Else sNewField = sNewField & "च" End If ElseIf UCase(Mid(sField, i, 1)) = "J" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "झ" i = i + 1 Else sNewField = sNewField & "ज" End If 'ElseIf UCase(Mid(sField, i, 1)) = "Z" Then ' sCurVowel = 0 ' sNewField = sNewField & "ज़" ElseIf UCase(Mid(sField, i, 1)) = "T" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ठ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ट" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(243) Then ' sNewField = sNewField & "ट़" ' i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "थ" i = i + 1 Else sNewField = sNewField & "त" End If ElseIf UCase(Mid(sField, i, 1)) = "D" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ढ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ड" i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ध" i = i + 1 Else sNewField = sNewField & "द" End If ElseIf UCase(Mid(sField, i, 1)) = "P" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "फ" i = i + 1 Else sNewField = sNewField & "प" End If 'ElseIf UCase(Mid(sField, i, 1)) = "F" Then ' sCurVowel = 0 ' sNewField = sNewField & "फ़" ElseIf UCase(Mid(sField, i, 1)) = "B" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "भ" i = i + 1 Else sNewField = sNewField & "ब" End If ElseIf UCase(Mid(sField, i, 1)) = "Y" Then sCurVowel = 0 sNewField = sNewField & "य" ElseIf UCase(Mid(sField, i, 1)) = "V" Then sCurVowel = 0 sNewField = sNewField & "व" ElseIf UCase(Mid(sField, i, 1)) = "S" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(226) Then sNewField = sNewField & "श" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(243) Then ' sNewField = sNewField & "स़" ' i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ष" i = i + 1 Else sNewField = sNewField & "स" End If ElseIf UCase(Mid(sField, i, 1)) = "H" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ः" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(243) Then sNewField = sNewField & "ह़" i = i + 1 Else sNewField = sNewField & "ह" End If ElseIf UCase(Mid(sField, i, 1)) = "R" Then If Mid(sField, i+1, 2) = Chr(244) & Chr(229) Or Mid(sField, i+1, 2) = Chr(229) & Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ॠ" Else sNewField = sNewField & "ॄ" End If i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऋ" Else sNewField = sNewField & "ृ" End If i = i + 1 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then ' sCurVowel = 0 ' sNewField = sNewField & "ढ़" ' i = i + 2 'ElseIf Mid(sField, i+1, 1) = Chr(242) Then ' sCurVowel = 0 ' sNewField = sNewField & "ड़" ' i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "र" End If ElseIf UCase(Mid(sField, i, 1)) = "L" Then If Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऌ" Else sNewField = sNewField & "ॢ" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sCurVowel = 0 sNewField = sNewField & "ळ" i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "ल" End If ElseIf UCase(Mid(sField, i, 1)) = "M" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ं" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(239) Then ' sNewField = sNewField & "ँ" ' i = i + 1 Else If InStr( "[pfbm 0123456789!@#$%^&*()[]{};:.,/?\=+-]", LCase(Mid(sField, i+1, 1)) ) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "म" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 ElseIf UCase(Mid(sField, i, 1)) = "N" Then If Mid(sField, i+1, 1) = Chr(242) Then If LCase(Mid(sField, i+2, 2)) = "d" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "r" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "t" & Chr(242) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ण" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(228) Then sNewField = sNewField & "ञ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(231) Then If Mid(sField, i+2, 1) Like "[gkq]" Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(231) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ङ" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ं" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(239) Then ' sNewField = sNewField & "ँ" ' i = i + 1 Else If Mid(sField, i+1, 1) Like "[tdn]" Then sNewField = sNewField & "ं" Else sNewField = sNewField & "न" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 ElseIf Mid(sField, i, 1) = Chr(228) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "∎" End If i = i + 1 End If If sCurVowel = 0 And Not ( Right(sNewField, 1) Like "[0-9a-z ]" Or Mid(sField, i, 1) Like "[0-9AEIOUaeiou]" Or LCase(Mid(sField, i, 2)) = "r" & Chr(244) Or LCase(Mid(sField, i, 2)) = "l" & Chr(244) ) Then sNewField = sNewField & "्" End If Loop While i <= Len(sField) TransMarathi = sNewField End Function '################################################################################ Function TransSanskrit(sField As String) As String Dim i As Long Dim sCurVowel As Integer Dim sNewField As String sNewField = "" Dim sTransNumbers As String sTransNumbers = "N" i = 6 Do If Mid(sField, i, 1) = Chr(223) Then sNewField = sNewField & "ǂ" & Mid(sField, i+1, 1) i = i + 2 Else If InStr(" !@#$%^&*()[]{};:.,/?\=+-" & Chr(34), Mid(sField, i, 1)) Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) ElseIf Mid(sField, i, 1) = "'" Then sCurVowel = 2 sNewField = sNewField & "ऽ" ElseIf InStr("0123456789", Mid(sField, i, 1)) Then If sTransNumbers = "N" Then sCurVowel = 2 sNewField = sNewField & Mid(sField, i, 1) Else sCurVowel = 2 If Mid(sField, i, 1) = "0" Then sNewField = sNewField & "०" ElseIf Mid(sField, i, 1) = "1" Then sNewField = sNewField & "१" ElseIf Mid(sField, i, 1) = "2" Then sNewField = sNewField & "२" ElseIf Mid(sField, i, 1) = "3" Then sNewField = sNewField & "३" ElseIf Mid(sField, i, 1) = "4" Then sNewField = sNewField & "४" ElseIf Mid(sField, i, 1) = "5" Then sNewField = sNewField & "५" ElseIf Mid(sField, i, 1) = "6" Then sNewField = sNewField & "६" ElseIf Mid(sField, i, 1) = "7" Then sNewField = sNewField & "७" ElseIf Mid(sField, i, 1) = "8" Then sNewField = sNewField & "८" ElseIf Mid(sField, i, 1) = "9" Then sNewField = sNewField & "९" End If End If ElseIf UCase(Mid(sField, i, 1)) = "A" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then ' sNewField = sNewField & "∎" ' i = i + 2 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then ' sNewField = sNewField & "∎" ' i = i + 2 If LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ऐ" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'just do the A and go on to the next, separate vowel sNewField = sNewField & "अ" ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "औ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "आ" i = i + 1 Else sNewField = sNewField & "अ" End If Else 'If LCase(Mid(sField, i+1, 2)) = Chr(230) & "i" Then ' sNewField = sNewField & "∎" ' i = i + 2 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(230) & "u" Then ' sNewField = sNewField & "∎" ' i = i + 2 If LCase(Mid(sField, i+1, 2)) = "i" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "i" Then sNewField = sNewField & "ै" i = i + 1 ElseIf LCase(Mid(sField, i+1, 2)) = "u" & Chr(229) Then 'skip the a and go to the next, separate vowel ElseIf LCase(Mid(sField, i+1, 1)) = "u" Then sNewField = sNewField & "ौ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ा" i = i + 1 Else 'Implied, not written End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "E" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ऄ" ' i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(227) Then ' sNewField = sNewField & "ॲ" ' i = i + 1 'Else sNewField = sNewField & "ए" 'End If Else 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "∎" ' i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(227) Then ' sNewField = sNewField & "∎" ' i = i + 1 'Else sNewField = sNewField & "े" 'End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "I" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ई" i = i + 1 Else sNewField = sNewField & "इ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ी" i = i + 1 Else sNewField = sNewField & "ि" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "O" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ऒ" ' i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(227) Then ' sNewField = sNewField & "ऑ" ' i = i + 1 'Else sNewField = sNewField & "ओ" 'End If Else 'If Mid(sField, i+1, 1) = Chr(230) Then ' sNewField = sNewField & "ॊ" ' i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(227) Then ' sNewField = sNewField & "ॉ" ' i = i + 1 'Else sNewField = sNewField & "ो" 'End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "U" Then If i = 6 Or sCurVowel <> 0 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ऊ" i = i + 1 Else sNewField = sNewField & "उ" End If Else If Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ू" i = i + 1 Else sNewField = sNewField & "ु" End If End If sCurVowel = 1 ElseIf UCase(Mid(sField, i, 1)) = "K" Then sCurVowel = 0 'If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then ' sNewField = sNewField & "ख़" ' i = i + 3 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ख" i = i + 1 Else sNewField = sNewField & "क" End If 'ElseIf UCase(Mid(sField, i, 1)) = "Q" Then ' sCurVowel = 0 ' sNewField = sNewField & "क़" ElseIf UCase(Mid(sField, i, 1)) = "G" Then sCurVowel = 0 'If LCase(Mid(sField, i+1, 3)) = Chr(246) & "h" & Chr(246) Then ' sNewField = sNewField & "ग़" ' i = i + 3 'ElseIf LCase(Mid(sField, i+1, 3)) = Chr(245) & "h" & Chr(245) Then ' sNewField = sNewField & "घ़" ' i = i + 3 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "घ" i = i + 1 Else sNewField = sNewField & "ग" End If ElseIf UCase(Mid(sField, i, 1)) = "C" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "छ" i = i + 1 Else sNewField = sNewField & "च" End If ElseIf UCase(Mid(sField, i, 1)) = "J" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "झ" i = i + 1 Else sNewField = sNewField & "ज" End If 'ElseIf UCase(Mid(sField, i, 1)) = "Z" Then ' sCurVowel = 0 ' sNewField = sNewField & "ज़" ElseIf UCase(Mid(sField, i, 1)) = "T" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ठ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ट" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(243) Then ' sNewField = sNewField & "ट़" ' i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "थ" i = i + 1 Else sNewField = sNewField & "त" End If ElseIf UCase(Mid(sField, i, 1)) = "D" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then sNewField = sNewField & "ढ" i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ड" i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "ध" i = i + 1 Else sNewField = sNewField & "द" End If ElseIf UCase(Mid(sField, i, 1)) = "P" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "फ" i = i + 1 Else sNewField = sNewField & "प" End If 'ElseIf UCase(Mid(sField, i, 1)) = "F" Then ' sCurVowel = 0 ' sNewField = sNewField & "फ़" ElseIf UCase(Mid(sField, i, 1)) = "B" Then sCurVowel = 0 If LCase(Mid(sField, i+1, 1)) = "h" Then sNewField = sNewField & "भ" i = i + 1 Else sNewField = sNewField & "ब" End If ElseIf UCase(Mid(sField, i, 1)) = "Y" Then sCurVowel = 0 sNewField = sNewField & "य" ElseIf UCase(Mid(sField, i, 1)) = "V" Then sCurVowel = 0 sNewField = sNewField & "व" ElseIf UCase(Mid(sField, i, 1)) = "S" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(226) Then sNewField = sNewField & "श" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(243) Then ' sNewField = sNewField & "स़" ' i = i + 1 ElseIf LCase(Mid(sField, i+1, 1)) = Chr(242) Then ' "h" for Hindi sNewField = sNewField & "ष" i = i + 1 Else sNewField = sNewField & "स" End If ElseIf UCase(Mid(sField, i, 1)) = "H" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ः" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(243) Then ' sNewField = sNewField & "ह़" ' i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(246) Then 'Jihvamuliya (not in Unicode) sNewField = sNewField & "∎" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(249) Then 'Upadhmaniya sNewField = sNewField & "ᳲ" i = i + 1 Else sNewField = sNewField & "ह" End If ElseIf UCase(Mid(sField, i, 1)) = "R" Then If Mid(sField, i+1, 2) = Chr(244) & Chr(229) Or Mid(sField, i+1, 2) = Chr(229) & Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ॠ" Else sNewField = sNewField & "ॄ" End If i = i + 2 ElseIf Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऋ" Else sNewField = sNewField & "ृ" End If i = i + 1 'ElseIf LCase(Mid(sField, i+1, 2)) = Chr(242) & "h" Then ' sCurVowel = 0 ' sNewField = sNewField & "ढ़" ' i = i + 2 'ElseIf Mid(sField, i+1, 1) = Chr(242) Then ' sCurVowel = 0 ' sNewField = sNewField & "ड़" ' i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "र" End If ElseIf UCase(Mid(sField, i, 1)) = "L" Then If Mid(sField, i+1, 1) = Chr(244) Then sCurVowel = 1 If i = 6 Or Not (Right(sNewField, 2) Like "[0-9A-F];") Then sNewField = sNewField & "ऌ" Else sNewField = sNewField & "ॢ" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(246) Then sCurVowel = 0 sNewField = sNewField & "ळ" i = i + 1 Else sCurVowel = 0 sNewField = sNewField & "ल" End If ElseIf UCase(Mid(sField, i, 1)) = "M" Then sCurVowel = 0 If Mid(sField, i+1, 1) = Chr(242) Then sNewField = sNewField & "ं" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(239) Then sNewField = sNewField & "ँ" i = i + 1 Else If InStr( "[pfbm 0123456789!@#$%^&*()[]{};:.,/?\=+-]", LCase(Mid(sField, i+1, 1)) ) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "म" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 ElseIf UCase(Mid(sField, i, 1)) = "N" Then If Mid(sField, i+1, 1) = Chr(242) Then If LCase(Mid(sField, i+2, 2)) = "d" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "r" & Chr(242) Or LCase(Mid(sField, i+2, 2)) = "t" & Chr(242) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ण" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(228) Then sNewField = sNewField & "ञ" i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(231) Then If Mid(sField, i+2, 1) Like "[gkq]" Or LCase(Mid(sField, i+2, 2)) = "n" & Chr(231) Then sNewField = sNewField & "ं" Else sNewField = sNewField & "ङ" End If i = i + 1 ElseIf Mid(sField, i+1, 1) = Chr(229) Then sNewField = sNewField & "ं" i = i + 1 'ElseIf Mid(sField, i+1, 1) = Chr(239) Then ' sNewField = sNewField & "ँ" ' i = i + 1 Else If Mid(sField, i+1, 1) Like "[tdn]" Then sNewField = sNewField & "ं" Else sNewField = sNewField & "न" End If End If If Right(sNewField, 8) = "ं" Or Right(sNewField, 8) = "ँ" Then sCurVowel = 2 Else sCurVowel = 0 Else sNewField = sNewField & "∎" End If i = i + 1 End If If sCurVowel = 0 And Not ( Right(sNewField, 1) Like "[0-9a-z ]" Or Mid(sField, i, 1) Like "[0-9AEIOUaeiou]" Or LCase(Mid(sField, i, 2)) = "r" & Chr(244) Or LCase(Mid(sField, i, 2)) = "l" & Chr(244) ) Then sNewField = sNewField & "्" End If Loop While i <= Len(sField) TransSanskrit = sNewField End Function '################################################################################