Instead of working with text as strings and using the mid, left, and right functions, it’s better to convert the string to an ANSI bytearray. This can be done with the StrConv function (in VB6 and later). This is a simple example that strips the character that does not exist in the interval of 32 or 65-90, or 97-122.
Public Function CleanString(Text As String) Dim Data() As Byte Dim Result() As Byte Dim Index As Long Dim Length As Long Dim Count As Long Data = StrConv(Text, vbFromUnicode) Length = UBound(Data) ReDim Result(0 To Length) For Index = 0 To Length Select Case Data(Index) Case 32, 65 To 90, 97 To 122 Result(Count) = Data(Index) Count = Count + 1 End Select Next If Count > 0 Then 'Check if there is any result. And prevents error if Count = 0 ReDim Preserve Result(0 To Count - 1) CleanString = StrConv(Result, vbUnicode) End If End Function