Top > OOoBasic > Writer > NumberingStyle

番号付けスタイル Edit

番号付け用スタイル。

スタイルファミリ Edit

番号付けのスタイルファミリ名は NumberingStyles です。

 oDoc = ThisComponent
 oStyleFamilies = oDoc.getStyleFamilies()
 oStyles = oStyleFamilies.getByName("NumberingStyles")

スタイルと番号付け Edit

スタイルファミリから取得した (または作成した後で追加済みの) スタイルの NumberingRules プロパティから番号付け 1-10 レベルにアクセスできます。

 sName = "NewNumbering"
 If oStyles.hasByName(sName) Then
   oStyle = oStyles.getByName(sName)
 End If
 oRules = oStyle.NumberingRules
 oRule0 = oRules.getByIndex(0) ' レベル1

各レベル設定は com.sun.star.beans.PropertyValue の配列です。(UNO での型名は []com.sun.star.beans.PropertyValue) 各プロパティはを知るには配列から特定の要素を保持している構造体を検索しなければいけません。

プロパティは com.sun.star.style.NumberingRule のものを利用します。

プロパティ Edit

プロパティ説明
IsAbsoluteMarginsboolean余白を相対値にしない
IsAutomaticboolean自動作成されたものかどうか
IsContinuousNumberingboolean通し番号で
NumberingIsOutlinebooleanアウトラインを利用
DefaultListIdstringデフォルトの指定

NumberingRules プロパティ Edit

[]com.sun.star.beans.PropertyValue

位置 Edit

com.sun.star.text.NumberingLevel

プロパティ説明
BulletCharstring箇条書き文字
BulletFontcom.sun.star.awt.FontDescriptorフォント指定
GraphicURLstring画像 URL
GraphicBitmapcom.sun.star.awt.XBitmap画像指定
GraphicSizecom.sun.star.awt.Size画像サイズ
VertOrientshort画像配置 com.sun.star.text.VertOrientation
プロパティ説明
Adjustshort番号の位置 css.text.HoriOrientation で指定
ParentNumberingshort
ListtabStopPositionタブストップ位置
FirstLineIndentlong最初の行のインデント位置
IndentAtlongインデント位置
NumberingType番号付け指定com.sun.star.style.NumberingType
LeftMarginlong左余白
SymbolTextDistancelongテキストまでの間隔

オプション Edit

プロパティ説明
Prefixstring接頭語
Suffixstring接尾語
CharStyleNamestring文字のスタイル名
StartWithshort開始番号
PositionAndSpaceModeshort位置およびスペース指定 com.sun.star.text.PositionAndSpaceMode
LabelFollowedByshort

変更例 Edit

Sub ModifyNumberingStyle
 oDoc = ThisComponent
 oStyleFamilies = oDoc.getStyleFamilies()
 oStyles = oStyleFamilies.getByName("NumberingStyles")
 
 ' 番号付けスタイルを新しく作成。あればそれを利用
 sName = "NewNumbering"
 If oStyles.hasByName(sName) Then
   oStyle = oStyles.getByName(sName)
 Else
   oStyle = oDoc.createInstance("com.sun.star.style.NumberingStyle")
   oStyles.insertByName(sName, oStyle)
 End If
 
 oRules = oStyle.NumberingRules
 oRule0 = oRules.getByIndex(0)
 
 n = FindItem(oRule0, "StartWith") ' 配列中での位置を検索
 If n >= 0 Then
   oRule0(n).Value = 15
 End If
 
 ' レベルの設定を置き換える
 oRules.replaceByIndex(0, oRule0)
 
 ' 反映させる
 oStyle.NumberingRules = oRules
 'oStyles.replaceByName(sName, oStyle)
End Sub

' 名前指定で配列中でのインデックスを取得
Function FindItem(aProps As Object, sName As String)
 Dim nFound As Integer
 nFound = -1
 For i = 0 To UBound(aProps) step 1
   If aProps(i).Name = sName Then
     nFound = i
     Exit For
   End If
 Next
 FindItem = nFound
End Function

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