Top > OOoBasic > Writer > pagesettings

ページ設定 Edit

Writer のページ設定には全てページスタイルが使用されます。メニューの書式 -> ページ設定から設定した場合にはそのページに使用されているページスタイルが変更されます。

そこで,マクロからページ設定を変更する際にはページスタイルを取り扱います。

ページスタイルも一つのコンテナオブジェクトにまとめて管理されています。ページスタイルコンテナオブジェクトです。

ページスタイルコンテナオブジェクト Edit

ドキュメント中のページスタイル全てを管理している,ページスタイルコンテナオブジェクトはドキュメントオブジェクトのプロパティー StyleFamilies プロパティーから getByName("PageStyles") として getByName メソッドで取得します。

Sub pagestylecontainer
Dim oDoc As Object, oStyleFamilies As Object
Dim oPageStyles As Object
  oDoc = ThisComponent
  oStyleFamilies = oDoc.StyleFamilies
  oPageStyles = oStyleFamilies.getByName("PageStyles")
End Sub

スタイル名 Edit

ページスタイルコンテナオブジェクトにどのようなスタイルが含まれているか調べるには,getElementNames メソッドを使います。

Sub pagestylescontainer_elements
Dim oDoc As Object, oStyleFamilies As Object
Dim oPageStyles As Object
Dim aStyleNames() As String
Dim i As Integer
  oDoc = ThisComponent
  oStyleFamilies = oDoc.StyleFamilies
  oPageStyles = oStyleFamilies.getByName("PageStyles")
  aStyleNames() = oPageStyles.getElementNames()
  For i = 0 To UBound(aStyleNames())
    MsgBox aStyleNames(i)
  Next i
End Sub

スタイルの存在確認 Edit

ある名前のスタイルが存在するかどうかは hasByName メソッドを使います。

ページスタイル Edit

個別のページスタイルはページスタイルコンテナオブジェクトから取得します。これにはスタイル名を指定して取得します。

Sub pagestyle
Dim oDoc As Object, oStyleFamilies As Object
Dim oPageStyles As Object, oPageStyle As Object
  oDoc = ThisComponent
  oStyleFamilies = oDoc.StyleFamilies
  oPageStyles = oStyleFamilies.getByName("PageStyles")
  oPageStyle = oPageStyles.getByName("Standard")
  MsgBox oPageStyle.Name
End Sub

ここで取得したスタイル "Standard" はどのドキュメントにも始めは存在するスタイルです。

ページを横向きにする Edit

ページを横向きにするのは分かりにくいですが、自分で縦と横のサイズを設定、さらにページの配置向きの設定を横にしてください。GUI で設定するような感じに向きを変えられません (IsLandscape を True に設定してもとくに幅と高さには影響しません)。

With oPageStyle
  nTemp = oPageStyle.Width
  .Width = oPageStyle.Height
  .Height = nTemp
  .IsLandscape = True
End With

背景画像の埋め込み Edit

URL でのみ指定できるように見えますが次のようにして埋め込んだ画像を背景に設定できます。

Sub EmbedImageIntoPageBackground
 sURL = "file:///home/asuka/Documents/images/logo.png"
 sName = "Logo"
 
 oDoc = ThisComponent
 oBitmapTable = oDoc.createInstance("com.sun.star.drawing.BitmapTable")
 If NOT oBitmapTable.hasByName(sName) Then
   oBitmapTable.insertByName(sName, sURL)
 End If
 
 sInternalURL = oBitmapTable.getByName(sName)
 
 oStyleFamilies = oDoc.getStyleFamilies()
 oStyleFamily = oStyleFamilies.getByName("PageStyles")
 oStyle = oStyleFamily.getByName("Standard")
 oStyle.BackGraphicURL = sInternalURL
End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes