Top > OOoBasic > Calc > NamedRange

名前を付けた範囲 Edit

名前が付けられた範囲。

名前が付けられた範囲コンテナ Edit

ドキュメントモデルオブジェクトの NamedRanges プロパティから取得します。

oDoc = ThisComponent
oNamedRanges = oDoc.NamedRanges

名前を付けられた範囲はドキュメント単位で管理されておりシート単位ではありません。

範囲を追加 Edit

新しい名前を付けた範囲を追加するにはコンテナオブジェクトの addNewByName メソッドを利用します。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
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 定数

タイトルから範囲を追加 Edit

セルの文字列を範囲名として名前を付けた範囲を自動的に作成します。範囲名にはタイトル行または列の文字列 (_文字列) が利用され、範囲にはタイトルセルは含まれません。

次のようなセル範囲のとき。

AB
7RangeCRangeD
813
924

以下のようにすると、範囲名 "_RangeC" および "_RangeD" が範囲 "A8:A9" および "B8:B9" として作成されます。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
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

範囲を削除 Edit

名前を付けた範囲を削除するにはコンテナオブジェクトの removeByName メソッドを利用します。

  0
  1
  2
  3
  4
  5
  6
Sub namedrange_5
  oDoc = ThisComponent
  oNamedRanges = oDoc.NamedRanges
  
  sName = "RangeA"
  oNamedRanges.removeByName(sName)
End Sub

範囲の確認 Edit

コンテナに範囲が含まれるかどうかを hasElements メソッドで、コンテナに特定の名前の範囲が含まれるかどうかを hasByName メソッドで調べられます。

名前のリスト Edit

コンテナに含まれる名前が付けられた範囲の名前と内容をシートセル上に書き出します。

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
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

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