Jump to content

マクロ/Impress/002

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


説明

多くの場合、現在のスライド内の特定のクラスのオブジェクトを選択的にループできると便利です。たとえば、com.sun.star.GraphicObjectShape などの画像や、 com.sun.star.drawing.RectangleShape などの図形など、スライド内に様々なオブジェクトがある場合があります。しかし、特定の図形すべてのプロパティを変更したいとします。

次のマクロは、すべての com.sun.star.drawing.LineShape[1]オブジェクトの一部のプロパティを変更します。したがって、このマクロは、色など、LineShape オブジェクトに対して対処する必要があるさまざまな関連プロパティを示し、現在のスライド内のオブジェクトを選択的にループする方法も示します。

言うまでもなく、このマクロは他のアプリケーションにもテンプレートを提供します。次のコードの変更バージョンは、次の ODPファイルにダウンロード用として含まれています。このスクリーンショットに示すように、マクロは複数のマクロに分割され、異なるプッシュ・ボタンに割り当てられています。

LineShapeプロパティをループして変更するマクロにリンクされた押しボタン付きのスライド。
LineShapeプロパティをループして変更するマクロにリンクされた押しボタン付きのスライド。




















Code

LibreOffice Basic

'Option Explicit

Sub manipulate_lineshapes ()
    '''すべての "com.sun.star.drawing.LineShape" オブジェクトを選択してループし、そのプロパティを操作します。'''

    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

未定

ODPファイルのダウンロード

メモ

  1. をループします。 API docs on com.sun.star.drawing.LineShape service および API docs for LineProperties を参照してください。