Te voy a dar una para cualquier caracter de puntuación generalizado
No te lo doy hecho porque ahora no tengo tiempo pero es muy facil:
primero nos creamos una funcion que nos diga si 1 caracter es Signo de puntuacion
Private Sub EsPuntuacion(ByVal letra as char,Byref bandera as boolean)
select case letra
case '`'
bandera=true
case '´'
bandera=true
case 'á'
bandera=true
case else
bandera=false
end select
end sub
'Despues haremos un bucle
Dim cadena as string
Dim tamanoCad as integer
Dim CadenaSalida as string
Dim bandera as boolean
CadenaSalida=""
cadena ="Hola Pepe"
tamanoCad=Len(cadena)
For i=1 To tamanoCad step 1
EsPuntuacion(mid(cadena,i,1),bandera)
if bandera then
CadenaSalida=CadenaSalida & mid(cadena,i,1) & " "
else
CadenaSalida & mid(cadena,i,1)
end if
next
MsgBox CadenaSalida
pd. La primera funcion no esta bien porque tengo un poco de ambigüedad con VB y los caracteres, pero puedes controlarlo tambien por el numero que representa en la tabla ascii. Un saludo espero que te sirva