Hola, avaguin. Bienvenido!
El consejo de José es lo que esperas. Pero creo que puedo aportar un poco.
El problema de hacerlo así, es que queda "fija" la restricción que cambia el "." por ",". Eso te dará error cuando corras la aplicación en una máquina en la que efectivamente el 'punto' sea el separador de decimales.
¿Solución?
Creas una variable global (en algún modulo), a la que llamaremos sDec, que es del tipo string y guardará el separador decimal del sistema.
Luego, en el formulario principal, (en el evento form_load, por ejemplo) te encargas de averiguar cual es el separador decimal de la máquina y lo guardas en la variable. Para ello, dividiremos 10 en 3, y presentaremos el resultado en formato decimal. Eso dará "3.33" ó "3,33" dependiendo de la configuración del sistema, lo que nos permitirá descubrir el formato usado.
'Detectar caracter decimal
stmp = Format$(10 / 3, "##.00")
If InStr(stmp, ".") Then
SdeC = "."
ElseIf InStr(stmp, ",") Then
SdeC = ","
End If
Esta variable la podrás llamar, luego, desde cualquier lugar en la aplicación.
Luego, cuando y donde quieras aplicar el cambio, introduces el siguiente código. En el ejemplo, es un cuadro de texto llamado text1.
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
Select Case KeyAscii
Case Asc("."), Asc(",")
KeyAscii = Asc(SdeC)
End Select
end sub
Si te fijas, no importa cual sea la configuración del sistema, ni de si tu presionas ',' o '.', siempre te dará el caracter decimal válido.
Espero te ayude.
Salu2.