*名前を付けた範囲 [#ja475a56] 名前が付けられた範囲。 #contents **名前が付けられた範囲コンテナ [#f3fc6c4c] ドキュメント モデル オブジェクトの NamedRanges プロパティから取得します。 ドキュメントモデルオブジェクトの NamedRanges プロパティから取得します。 oDoc = ThisComponent oNamedRanges = oDoc.NamedRanges 名前を付けられた範囲はドキュメント単位で管理されておりシート単位ではありません。 **範囲を追加 [#s81c548c] 新しい名前を付けた範囲を追加するにはコンテナ オブジェクトの addNewByName メソッドを利用します。 新しい名前を付けた範囲を追加するにはコンテナオブジェクトの addNewByName メソッドを利用します。 #code(ob){{ Sub namedrange_3 oDoc = ThisComponent oNamedRanges = oDoc.NamedRanges aPosition = CreateUnoStruct( _ "com.sun.star.table.CellAddress") With aPosition .Sheet = 0 .Column = 0 .Row = 0 End With sName = "RangeA" sCont = "$表1.$A$1:$C$3" oNamedRanges.addNewByName( _ sName, sCont, aPosition, 0 ) End Sub }} -void ''addNewByName'' ( [in] string aName, [in] string aContent, [in] .table.CellAddress aPosition, [in] long nType ) -aName: 範囲名 -aContent: 範囲の内容指定 -aPosition: 相対参照の基本位置 -nType: 範囲の種類 com.sun.star.sheet.NamedRangeFlag 定数 **タイトルから範囲を追加 [#u78a0841] セルの文字列を範囲名として名前を付けた範囲を自動的に作成します。範囲名にはタイトル行または列の文字列 (_文字列) が利用され、範囲にはタイトルセルは含まれません。 次のようなセル範囲のとき。 ||A|B| |7|RangeC|RangeD| |8|1|3| |9|2|4| 以下のようにすると、範囲名 "_RangeC" および "_RangeD" が範囲 "A8:A9" および "B8:B9" として作成されます。 #code(ob){{ Sub namedrange_4 oDoc = ThisComponent oNamedRanges = oDoc.NamedRanges aSource = CreateUnoStruct( _ "com.sun.star.table.CellRangeAddress") With aSource .Sheet = 0 .StartColumn = 0 .EndColumn = 1 .StartRow = 6 .EndRow = 8 End With oNamedRanges.addNewFromTitles(aSource, _ com.sun.star.sheet.Border.TOP) End Sub }} **範囲を削除 [#g23da82b] 名前を付けた範囲を削除するにはコンテナ オブジェクトの removeByName メソッドを利用します。 名前を付けた範囲を削除するにはコンテナオブジェクトの removeByName メソッドを利用します。 #code(ob){{ Sub namedrange_5 oDoc = ThisComponent oNamedRanges = oDoc.NamedRanges sName = "RangeA" oNamedRanges.removeByName(sName) End Sub }} **範囲の確認 [#z91ae00b] コンテナに範囲が含まれるかどうかを hasElements メソッドで、コンテナに特定の名前の範囲が含まれるかどうかを hasByName メソッドで調べられます。 **名前のリスト [#i7e4a1ea] コンテナに含まれる名前が付けられた範囲の名前と内容をシート セル上に書き出します。 コンテナに含まれる名前が付けられた範囲の名前と内容をシートセル上に書き出します。 #code(ob){{ Sub namedrange_6 oDoc = ThisComponent oNamedRanges = oDoc.NamedRanges aPosition = CreateUnoStruct( _ "com.sun.star.table.CellAddress") With aPosition .Sheet = 0 .Column = 0 .Row = 0 End With oNamedRanges.outputList(aPosition) End Sub }} |