Hola, a ver sialguno me puede ayudar porque me estoy volviendo loco con esto y es lo unico que me falta para poder terminar un programa de vba para trabajar sobre visio.
La cosa esta en que yo tengo varios documentos de visio, con sus shapes y demas.
he hecho un programa que tu le meter un texto y el programa te lo busca y segun la opcion que tu hayas puesto en el formulario(terminado, mal terminado, en ejecucion etc...) el programa te encuentra ese texto en las shapes y te pinta el fondo de varios colores.
Ademas el programa lo que hace es para shapes con mucho texto, te tacha con una linea el texto dentro de esa shape(el que el usuario habia escrito en el formulario ).
Todo eso me funciona correctamente. Ahora bien, tambien tengo otro boton en el Formulario que me busca el texto y me dice en que estado se encuentra esa Shape con ese texto. Tu buscas popr ejemplo ana406re por ejemplo y en la Shape que se encuentre te dice segun el color de fondo el estado de ese texto, en ejecucion, terminado, mal terminado etc...
Ahora mi problemon, cuando el texto de mi shape es muy grande, yo tacho el texto de esa shape con el sig codigo:
Dim cadenacomp As Object
Dim formas As Object
Dim celdas as object
Set celdas = pagina.Shapes
For j = 1 To celdas.Count
Set formas = celdas.Item(j)
Set cadenacomp = formas.Characters
cadenacomp.Begin = InStr(formas.Characters, cadena) - 1
cadenacomp.End = cadenacomp.Begin + Len(cadena) + 2
Select Case estado
Case "TERMINADA"
cadenacomp.CharProps(visCharacterColor) = 0
cadenacomp.CharProps(visCharacterOverline) = True
Mi problema viene cuando quiero comprobar que mi texto(cadenacomp) esta subrayado, no puedo hacer un
if cadenacomp.CharProps(visCharacterOverline) = True por que me da error por que no me devuelve nada.
No se muy bien como que metodo o procedimiento usar para que me devuelva el booleano o me diga el visio que mi cadenacomp esta overline.