No se en que parte tenés el problema, si no lográs que cuentes la vocales (no te funciona el algoritmo) o es otra cosa.
Si es el algoritmo esto funciona:
LOCAL cadena, cantidadVocales, ctemp
&& THISFORM.text es el campo de texto que tiene la cadena a la que se le quiere contar las vocales
cadena = ALLTRIM(THISFORM.text.Value)
cantidadVocales = 0
FOR i = 1 TO LEN(cadena) STEP 1
ctemp = UPPER(SUBSTRC(cadena,i,1))
IF ctemp=='A' OR ctemp=='E' OR ctemp=='I' OR ctemp=='O' OR ctemp=='U' THEN
cantidadVocales = cantidadVocales + 1
ENDIF
ENDFOR
MESSAGEBOX("Cantidad de vocales: "+ALLTRIM(STR(cantidadVocales)))
Por supuesto, el messagebox es sólo para ver el resultado y seguramente no lo necesites. El resultado queda en la variable "cantidadVocales"
muchas gracias por la ayuda amigo me ha sido de mucha utilidad. thx