esto se hace desde el evento keydown del textbox o richtextbox -si es que lo tiene, la verdad, no me acuerdo- y una parte es gracias a la ayuda de Luciano...
la idea es obtener la ultima palabra digitada como en Visual Basic... al presionar el punto pues se sabra cual fue esa palabra... de ahi en adelante, lo que sea.
Edited by: Néstor AcevedoCódigo:Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Dim Espacio As Integer, Parentesis As Integer, Seleccion As Integer 'detectar ultimo caracter _ Variabes: _ Espacio = Para detectar la posicion en la que se encuentra el caracter de espacio _ Parentesis = Para detectar la posicion enn la que se encuentra el parentesis de apertura _ Seleccion = me permite saber la posicion del ultimo caracter encontrado, bien sea el 1o _ o el ultimo consultado _ no lo he probado con vbNullString aunque de hecho al presionar el enter deja 2 Null y 1 espacio '110 = punto de teclado numerico -> 190 = punto de teclado alfanumerico If KeyCode = 110 Or KeyCode = 190 Then 'determinar si encontramos un Null, un espacio o un parentesis de apertura If (Mid(Text1, Text1.SelStart + 1) = vbNullString) Or _ (Mid(Text1, Text1.SelStart + 1) = " " Or _ (Mid(Text1.Text, Text1.SelStart + 1) = "(")) Then 'para usar la funcion InStr con un valor almacenado bien sea = 1 o > 1 _ se necesita una variable que tenga un valor de 1 al iniciarse, puesto que _ al compilar y ejecutar el codigo todas las variables numericas seran = 0 _ (bueno, eso creo) If (Seleccion = 0) Then Seleccion = 1 'InStr = funcion para buscar la primera coincidencia de una palabra o caracter _ dentro de una cadena de texto. _ USO = InStr(Posicion_Inicial, Cadena_Original, Cadena_Buscada, [metodo_comparacion]) Espacio = InStr(Seleccion, Text1.Text, " ", vbTextCompare) 'buscar el espacio Parentesis = InStr(Seleccion, Text1.Text, "(", vbTextCompare) 'buscar el parentesis If (Espacio > Parentesis) Then 'si se encontro un espacio antes que el parentesis Seleccion = Len(Text1.Text) - Espacio 'almacenamos la posicion 'almacenamos en formato de texto la nueva busqueda para hallar el caracter _ hasta casi el final de la cadena original. _ se suma 1 para correr la posicion, de lo contrario, nos quedariamos en esa Text1.Tag = CStr(InStr(Espacio + 1, Text1.Text, "(", vbTextCompare)) If (Text1.Tag <> "0") Then 'si lo encuentra Seleccion = CInt(Text1.Tag) + 1 'asignele esa nueva posicion y sumele 1 'obtener lo que este a la derecha de la cadena original _ sacando la longitud Seleccion - Espacio Text1.Tag = Right$(Text1.Text, Seleccion - Espacio) Else 'si no, simplemente lo de la posicion en Seleccion Text1.Tag = Right$(Text1.Text, Seleccion) End If Else 'si no 'repetimos exactamente lo mismo, pero cambiamos la variable espacio por _ parentesis Seleccion = Len(Text1.Text) - Parentesis Text1.Tag = CStr(InStr(Parentesis + 1, Text1.Text, "(", vbTextCompare)) If (Text1.Tag <> "0") Then Seleccion = CInt(Text1.Tag) + 1 Text1.Tag = Right$(Text1.Text, Seleccion - Parentesis) Else Text1.Tag = Right$(Text1.Text, Seleccion) End If End If 'y un msgbox para mostrar que si lo obtuvimos MsgBox LTrim(Text1.Tag) End If End If 'vaciamos el contenido para no ocupar "espacio" en memoria... 'aunque a la hora de la verdad... ¿? Text1.Tag = "" End Sub