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

Responder a