Jump to content

Macros/Impress/002/es

From The Document Foundation Wiki
This page is a translated version of the page Macros/Impress/002 and the translation is 100% complete.


Descripción

A menudo es útil poder recorrer selectivamente una clase específica de objetos en la diapositiva actual. Por ejemplo, puede tener varios objetos en la diapositiva, como imágenes com.sun.star.GraphiCoBjectShape o formas com.sun.stardrawing.rectangleshape. Pero, ¿y si desea cambiar una propiedad para todas las apariciones de una forma específica?

La siguiente macro recorre todos los objetos com.sun.star.drawing.lineShape(formas de linea) [1] y cambia algunas propiedades de cada Linea. Esta macro ilustra varias propiedades importantes que puede que quiera cambiar en objetos de línea como el color y también como recorrer selectivamente los objetos de la diapositiva actual.

No hace falta decir que la macro también proporciona una plantilla para otras aplicaciones. Se incluye una versión modificada del siguiente código, para descargar en el archivo ODP a continuación, donde la macro se ha separado en múltiples macros y asignada a diferentes botones, como se muestra en la siguiente figura:

Diapositiva con botones asociados a macros que recorren y alteran las propiedades de los objetos (formas de línea).
Diapositiva con botones asociados a macros que recorren y alteran las propiedades de los objetos (formas de línea).




















Código

LibreOffice Basic

'Option Explicit

Sub manipulate_lineshapes ()
    '''Recorre selectivamente todos los objetos com.sun.star.drawing.LineShape y cambia sus propiedades.'''

    oSlide = ThisComponent.CurrentController.CurrentPage

    For i = 0 To oSlide.getCount()-1
        With oSlide.getByIndex(i)
            If .getShapeType() = "com.sun.star.drawing.LineShape" Then

                .LineWidth = .LineWidth + 50
                .LineEndWidth = .LineEndWidth + 50
                .LineEndName = "Square"  ' Arrow, Square, Circle, etc
                .LineColor = RGB(52,101,164)
                .LineStyle = com.sun.star.drawing.LineStyle.DASH   ' .SOLID or .DASH or .NONE
                .LineDashName = "Ultrafine Dashed" ' Fine Dashed, Fine Dotted, Ultrafine Dashed, etc

            End If
        End With
    Next

End Sub ' manipulate_lineshapes

Python

- proximamente

Descarga del archivo ODP

Notas

  1. Consulte la documentación de la API sobre los servicios com.sun.star.drawing.LineShape y com.sun.star.drawing.LineProperties.