Questa pagina può venir buona, specie nella parte in cui c'è la versione in puro VBA, senza API
https://www.devhut.net/vba-convert-foreign-accent-characters-to-plain-english-characters/
Ad ogni buon fine meglio riportare la funzione (quel sito ha chiuso i battenti per un po' di tempo su decisione del titolare, salvo ravvedersi poco dopo)
'---------------------------------------------------------------------------------------
' Procedure : RemoveAccents
' Author : Daniel Pineault, CARDA Consultants Inc.
' Website : http://www.cardaconsultants.com
' Purpose : Replace foreign/accented charactes with standard letters within a string
' Copyright : The following is release as Attribution-ShareAlike 4.0 International
' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/
' Req'd Refs: None req'd
'
' Input Variables:
' ~~~~~~~~~~~~~~~~
' sInputString The string to convert
'
' Usage:
' ~~~~~~
' RemoveAccents("LémuçelÇë") -> LemucelCe
'
' Revision History:
' Rev Date(yyyy/mm/dd) Description
' **************************************************************************************
' 1 2017-08-18 Initial Release
'---------------------------------------------------------------------------------------
Public Function RemoveAccents(sInputString As String) As String
On Error GoTo Error_Handler
Dim aNotAllowed() As String
Dim aReplacements() As String
Dim i As Long
aNotAllowed = Split("À,Á,Â,Ã,Ä,Å,Ç,È,É,Ê,Ë,Ì,Í,Î,Ï,Ò,Ó,Ô,Õ,Ö,Ù,Ú,Û,Ü,Ý,à,á,â,ã" & _
",ä,å,ç,è,é,ê,ë,ì,í,î,ï,ð,ò,ó,ô,õ,ö,ù,ú,û,ü,ý,ÿ", ",")
aReplacements = Split("A,A,A,A,A,A,C,E,E,E,E,I,I,I,I,O,O,O,O,O,U,U,U,U,Y,a,a,a" & _
",a,a,a,c,e,e,e,e,i,i,i,i,o,o,o,o,o,o,u,u,u,u,y,y", ",")
If UBound(aNotAllowed) <> UBound(aReplacements) Then
MsgBox "The number of 'Not allowed characters' does not match the number of" & _
" 'Replacements'.", vbCritical Or vbOKOnly, "Operation Terminated"
GoTo Error_Handler_Exit
End If
RemoveAccents = sInputString
For i = 0 To UBound(aNotAllowed)
RemoveAccents = Replace(RemoveAccents, aNotAllowed(i), aReplacements(i))
Next i
Error_Handler_Exit:
On Error Resume Next
Exit Function
Error_Handler:
MsgBox "The following error has occurred" & vbCrLf & vbCrLf & _
"Error Number: " & Err.Number & vbCrLf & _
"Error Source: RemoveAccents" & vbCrLf & _
"Error Description: " & Err.Description & _
Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _
, vbOKOnly + vbCritical, "An Error has Occurred!"
Resume Error_Handler_Exit
End Function
Come vedi tratta solo le vocali, basta poco per aggiungere anche le consonanti particolari. Ecco che come approccio si può usare altro codice pronto all'uso o quasi
https://stackoverflow.com/questions/10032322/how-to-call-a-macro-to-convert-accented-characters-to-regular-that-does-not-ap
https://stackoverflow.com/questions/60060527/is-there-a-faster-way-to-replace-accented-characters
Anche se si parla di utilizzo in Excel basta ignorare la parte che prevede il salvataggio/scrittura in celle e il principio è lo stesso.
Questo per la parte che riguarda la trasformazione da “caratteri accentati” (strani) a caratteri normali. Sul suo utilizzo poi si può ragionare: puoi ad esempio usare la funzione per creare un campo calcolato e su quello eseguire la ricerca, oppure ancora salvare il contenuto della stringa senza accenti in un campo apposito (per sfruttare gli indici) però qui bisogna andare con i piedi di piombo. Fa' le tue valutazioni e se hai bisogno di aiuto il forum c'è.