Podrias utilizar la función split. Esta función te devuelve un array, por ejemplo:
Dim array_caracter () as string, palabra as string, caracter as string
array_caracter = split (palabra, caracter)
Msgbox "El caracter " & caracter & " aparece " & Ubound(array_caracter) & " veces en la palabra " & palabra
'Destruyes el array
Erase array_caracter
Lo que ahora mismo no se si al ubound le tendrías que sumar uno o no, haz pruebas y si ves que siempre te cuenta un caracter menos es que le tienes que sumar uno.
Espero haberme explicado bien y que te sirva de ayuda.
Saludos,
Roberto García