番号付けスタイル
番号付け用スタイル。 スタイルファミリ
番号付けのスタイルファミリ名は NumberingStyles です。 oDoc = ThisComponent oStyleFamilies = oDoc.getStyleFamilies() oStyles = oStyleFamilies.getByName("NumberingStyles") スタイルと番号付け
スタイルファミリから取得した (または作成した後で追加済みの) スタイルの 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 のものを利用します。 プロパティ
NumberingRules プロパティ
[]com.sun.star.beans.PropertyValue 位置
com.sun.star.text.NumberingLevel
オプション
変更例
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 |