Hola Antonio
Hola a todos...
Con un sencillo
MsgBox rectangulo.Anchor.Dbg_Properties
Te daras cuenta que la propiedad Anchor te devuelve la celda a la que esta
anclada la forma, en este caso el rectangulo y también observa que con
Dim miProteccion As New com.sun.star.util.CellProtection
estas declarando precisamente una estructura de protección para una celda,
no para una forma de dibujo
No encontre y no se si exista una propiedad para mostrar/ocultar (Hidden)
las formas de dibujo,
MsgBox rectangulo.Dbg_Properties
Se me ocurren las siguiente alternativas...
1.- Estableces el tamaño del rectangulo en cero
2.- Estableces la linea invisible y sin relleno
Las siguientes dos macros, alternan los valores de las dos opciones que te
doy...
Option Explicit
Sub MostrarOcultarPorTamano()
Dim oRectangulo As Object
Dim oTamano As New com.sun.star.awt.Size
oRectangulo = ThisComponent.getDrawPages().getByIndex( 0 ).getByIndex( 0
)
If oRectangulo.getSize().Width <= 0 Then
oTamano.Width = 8000
oTamano.Height = 3000
Else
oTamano.Width = 0
oTamano.Height = 0
End If
oRectangulo.setSize( oTamano )
End Sub
Sub MostrarOcultarPorColor()
Dim oRectangulo As Object
oRectangulo = ThisComponent.getDrawPages().getByIndex( 0 ).getByIndex( 0
)
If oRectangulo.LineStyle = 0 Then
oRectangulo.LineStyle = 1
oRectangulo.FillStyle = 1
Else
oRectangulo.LineStyle = 0
oRectangulo.FillStyle = 0
End If
End Sub
Pruebalas y nos cuentas...
Saludos a todos...
Mauricio
El día 22 de julio de 2008 10:11, Antonio Javier Lledo Saura <
[EMAIL PROTECTED]> escribió:
> Hola, estoy intentando ocultar un rectángulo en una hoja de calc mediante
> una macro. La idea es que al aplicar la macro el rectángulo se oculte al
> usuario (no me interesa borrarlo). Para ello utilizo el código de abajo,
> pero al ejecutarlo no obtengo ningún error y el rectángulo se sigue viendo.
>
> Dim oDoc, oPaginas, oPaginaDibujo, rectangulo as Object Dim
> miProteccion As New com.sun.star.util.CellProtection
>
> oDoc = ThisComponent
> oPaginas = oDoc.DrawPages
> 'La primera hoja es la que tiene el dibujo
> oPaginaDibujo = oPaginas.getByIndex( 0 )
> 'El rectángulo es el primer elemento de dibujo de la hoja
> rectangulo = oPaginaDibujo.getByIndex( 0 )
>
> 'Defino la protección que quiero para el rectángulo
> miProteccion.IsLocked = true
> miProteccion.IsFormulaHidden = false
> miProteccion.IsHidden = true
> miProteccion.IsPrintHidden = true
> 'Establezco la protección
> rectangulo.Anchor.CellProtection = miProteccion
>
> He comprobado mediante el observador de Basic que la protección se ha
> aplicado al rectángulo correctamente, sin embargo éste se sigue viendo.
> ¿Alguna sugerencia? Gracias.
>
> --
_______________________________
Todo lo que no es dado es perdido