2017-07-18 19 views
2

周囲を見渡して見つけられませんでした。 695の異なるファイルに695回繰り返すことができるようにマクロが必要です。ドキュメンテーションは不安です、または私は不運です。Impress Slideの背景を黒の黒色に変更するLibreOfficeのマクロ

次のように私には、Microsoft VBAでそれを行うことができます:

Sub VbaBlackies 
    Dim oSl As Slide 
    For Each oSl In ActivePresentation.Slides 
     With oSl 
      .FollowMasterBackground = msoFalse 
      .DisplayMasterShapes = msoFalse 
      With .background 
       .Fill.ForeColor.RGB = RGB(0, 0, 0) 
       .Fill.BackColor.RGB = RGB(0, 0, 0) 
       End With 
      End With 
     Next oSl 
End Sub 

私はLibreOfficeのBASICで似たような探しています。私はこの方法でコードを始めることができます:

Sub Main 
Dim oDoc As Object 
Dim oDPages As Object 
Dim oDPage As Object 
oDoc= ThisComponent 
oDPages = oDoc.getDrawPAges() 
For i=0 To oDPages.count()-1 
    oDPage = oDPages.getByIndex(i) 
    oDPage.Background = RGB(0,0,0) 'This does not work. 
    'I have no idea on how to access the object's properties and alter them. 
    Next i 
End Sub 

いいえ、どうぞよろしいですか?

+0

手動で行われている変更のマクロを記録する:

これは私のために働いた最終的なコードです。それはあなたに必要なコードを与えるかもしれません。 – jsotola

+1

それを試しましたが、Impressはマクロを記録しません。 –

+0

Calcの同様の操作を実行するマクロを記録し、セルの背景色を変更します。いくつかのヒントを手に入れましたが、Slideオブジェクトの「フレーム」参照に問題があります。 –

答えて

1

あなたが探しているものは、Andrew Pitonyak's macro documentのリスト15.1です。これは、マクロプログラミングのための重要なリファレンスです。

Sub ChangeBackground 
    Dim oDoc as Object 
    oDoc = ThisComponent 
    Dim oDrawPages as Object, oDrawPage as Object 
    oDrawPages = oDoc.getDrawPages() 
    oDrawPage = oDrawPages.getByIndex(0) 
    Dim oBackground as Object 
    oBackground = oDoc.createInstance("com.sun.star.drawing.Background") 
    oBackground.FillColor = RGB(250,0,0) 
    oDrawPage.Background = oBackground 
End Sub 

APIドキュメントはhttps://www.openoffice.org/api/docs/common/ref/com/sun/star/drawing/Background.htmlです。

1

はい!魅力のように働いて、感謝のために多くの答え!

Sub Main 
Dim oDoc As Object 
Dim oDPages As Object 
Dim oDPage As Object 

oDoc = ThisComponent 
oDPages = oDoc.getDrawPAges() 

For i=0 To oDPages.count()-1 
    oDPage = oDPages.getByIndex(i) 
    Dim oBackground As Object 
    oBackground = oDoc.createInstance("com.sun.star.drawing.Background") 
    oBackground.FillColor = RGB(0,0,0) 
    oDPage.Background = oBackground 
    Next i 
End Sub 
関連する問題