Shapes y "Cuadro de nombres"

Hola [email protected]!
Soy nuevo por aquí pues he acabado los recursos para solucionar esto! ;(
Resulta que hago correr un procedimiento que pinta una linea y después la borra, sin problema:
Sub Algo()
ActiveSheet.Shapes.AddLine(300.75, 101.25, 383.25, 141#).Select
If ActiveSheet.Shapes.Count = 0 Then
MsgBox "Nada que borrar"
Exit Sub
End If
ActiveSheet.Shapes.SelectAll
Selection.Delete
End Sub
Cada vez que la hago correr, el nombre de la shape en el "Cuadro de nombres" cambia de Linea_01 a Linea_02, Linea_03, etc. Las preguntas son:
(a) ¿Hasta cuándo se puede incrementar este valor, suponiendo que esta sub corra N veces a lo largo de su vida útil?
(b) ¿Hay un límite superior para los nombres de las shapes que uno utiliza?
(c) Y si la respuesta a (b) es no, ¿Cómo influye esto en la memoria de la aplicación cuando los objetos gráficos se complican o aumentan en número?
Me doy cuenta de que este nombre tampoco se "resetea" ni cuando cierro excel y vuelvo a abrir el archivo y la macro.
Muchas gracias!

1 respuesta

Respuesta
1
No sé si será posible "resetear" el contador que parece tener Excel para asignarles un nombre por defecto a los objetos gráficos, pero en cualquier caso esto no debería ser ningún problema puesto que siempre es posible nombrar el objeto gráfico como se quiera, por ejemplo:
    Dim sS As Shape
    Set sS = ActiveSheet.Shapes.AddLine(300.75, 101.25, 383.25, 141#)
    sS.Name = "MiLínea"
    Set sS = Nothing
Este código crea una línea y la nombra MiLínea, de forma que si luego se quiere hacer algo con ella (por ejemplo borrarla), lo único que habría que hacer es:
    ActiveSheet.Shapes("MiLínea").Delete
Muchísimas gracias! Tan sólo espero que ho haya ningún "contador" escondido por ahí que siga "trabajando" en secreto! ;) Si llego a algún límite, ya os contaré!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas