Se puede cambiar el origen x,y de las formas de Excel?

Tengo un dibujo complejo formado por líneas y recuadros don formas en una hoja de calculo que me construye una macro, y ahora me veo con la necesidad que me la dibuje un poco mas a la derecha, claro está volver a cambiar las medidas de todas las formas en el código seria un trabajo de chinos, y como dichas medidas están referenciadas al inicio de coordenadas de la hoja (arriba, izquierda) si pudiera cambiar dicho origen, creo que tendría resuelto el problema.

1 respuesta

Respuesta
1

Top y Left te indican las coordenadas superior e izquierda de un objeto.

Así, si necesitas hacerlo coincidir con la ubicación de cierta celda, digamos A1, utilizarás este código:

tope = Range("A1").Top
izq = Range("A1").Left
'ubico el objeto ya seleccionado
Selection.ShapeRange.Top = tope
Selection.ShapeRange.Left = izq

En lugar de Selection, utilizarás el nombre de tus objetos.

Hola Elsa, gracias por atenderme pero no acabo de entender la respuesta, seguramente no me he explicado bien.

Tengo un código que me dibuja una serie de líneas y rectángulos con formas en un lugar de la hoja de cálculo, por ejemplo: un rectángulo (200, 100, 400, 300), o sea que el primer par de coordenadas pertenecen a la esquina superior izquierda de dicho rectángulo, y el segundo par pertenecen a la esquina inferior derecha del mismo, y esto me lo sitúa en un ponto de la hoja ya que se considera que el punto (0,0) la hoja lo tiene a la derecha y arriba, pues bien yo he pensado que si podemos cambiar ese punto de origen por (10,10) por ejemplo el rectángulo aparecería mas a la derecha y mas a abajo, en 10 puntos, sin afectar a filas y columnas, ya que en ningún caso se refiere a ninguna celda.

Gracias por tu atención te saluda:

Manuel

Los objetos dibujados tienen coordenadas y dimensiones, en este orden: Left, Top, Width y Height.

Por ej: crear un objeto con macro:

 ActiveSheet. Shapes. AddShape(msoShapeRectangle, 60, 15.75, 84, 54).Select

Entonces para modificar alguna de estas propiedades, necesitas algunas de estas instrucciones:

'mueve a derecha el objeto seleccionado 
   Selection. ShapeRange. IncrementLeft 50
'mueve hacia abajo el objeto seleccionado
    Selection. ShapeRange. IncrementTop 20

También es posible 'ubicarlo' con respecto a la posición de cierta celda... y allí se utilizan las instrucciones que te pasé al inicio, aunque ya quedó aclarado que no es tu caso.

Sdos.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas