LibreOffice Calc Basic - Writerを起動し、2枚目のページスタイルを横にする方法

◆概要

 次の例では、LibreOffice Writerを起動し、2枚目のページスタイルを横にします。

Sub StarWriter() 
rem ********************************
rem LibreOffice Writerに新規文書を作成し、
rem 1枚目を縦、2枚目を横にする。
rem ********************************
    Dim oServiceManager As Object 
    Dim oDesktop As Object 
    Dim oDocument As Object 
    Dim oText 
    Dim oCursor 
    Dim oNewStyle 
    Dim Args() 
    Dim s 
    Dim oStyle 

    'メインオブジェクトの初期化
    Set oServiceManager = CreateObject("com.sun.star.ServiceManager") 
    Set oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop") 
    Set oDocument = oDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Args) 
    Set oText = oDocument.GetText 
    Set oCursor = oText.createTextCursor 
    
    'ページ区切りを挿入する
    oText.insertControlCharacter oCursor, 0, False 
    oCursor.BreakType = 4 
    oCursor.gotoEnd False 
    
    '古いスタイルを取得する
    s = oCursor.PageStyleName 
    Set oStyle = oDocument.StyleFamilies.getByName("PageStyles").getByName(s) 
  
    '新しいスタイルを作成する
    Set oNewStyle = oDocument.createInstance("com.sun.star.style.PageStyle") 
    'lanscape property に True を指定 
    oNewStyle.setPropertyValue "IsLandscape", True 
    oNewStyle.setPropertyValue "Width", oStyle.Height 
    oNewStyle.setPropertyValue "Height", oStyle.Width 

    'pagestyle family に新しいスタイルを追加する
    oDocument.StyleFamilies.getByName("PageStyles").insertByName "LandscapeStyle", oNewStyle 
    
    'ページスタイル名を landscapeStyle にセットする
    oCursor.setPropertyValue "PageDescName", "LandscapeStyle" 
End Sub 
▼ページトップへ