Calc(84)LabelRangesのサービスとインターフェイス一覧

公開日: 2018年02月23日 更新日: 2019年05月11日

旧ブログ

t f B! P L

前の関連記事:Calc(83)ラベル範囲の指定を使う


LabelRangesのサービスとインターフェイス一覧

1
2
3
4
5
6
7
def macro():
    ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
    smgr = ctx.getServiceManager()  # サービスマネージャーの取得。
    tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
    doc = XSCRIPTCONTEXT.getDocument()
    rowlabelranges = doc.getPropertyValue("RowLabelRanges")
    tcu.wtree(rowlabelranges)


└─.sheet.LabelRanges
     ├─.container.XEnumerationAccess
     │   │   .container.XEnumeration  createEnumeration()
     │   └─.container.XElementAccess
     │            type  getElementType()
     │         boolean  hasElements()
     ├─.container.XIndexAccess
     │       any  getByIndex( [in] long Index
     │             ) raises ( .lang.WrappedTargetException,
     │                        .lang.IndexOutOfBoundsException)
     │      long  getCount()
     └─.sheet.XLabelRanges
           void  addNew( [in] .table.CellRangeAddress aLabelArea,
                         [in] .table.CellRangeAddress aDataArea)
           void  removeByIndex( [in] long nIndex)

LabelRangeのサービスとインターフェイス一覧


1
2
3
4
5
6
7
8
9
10
11
def macro():
    ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
    smgr = ctx.getServiceManager()  # サービスマネージャーの取得。
    tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
    doc = XSCRIPTCONTEXT.getDocument()
    controller = doc.getCurrentController()  # コントローラの取得。
    sheet = controller.getActiveSheet()  # アクティブなシートを取得。
    columnlabelranges = doc.getPropertyValue("ColumnLabelRanges")
    columnlabelranges.addNew(sheet["A2:B2"].getRangeAddress(), sheet["A3:B4"].getRangeAddress())
    labelrange = columnlabelranges[0]
    tcu.wtree(labelrange)
9行目でラベル範囲を指定しています。

NamedRangeと違って既に存在するラベル範囲と同じ範囲を指定してもエラーにならず、単に無視されるようです。

LabelRange自体には名前はないので、ColumnLabelRangesからインデックスで取得しています。

└─.sheet.LabelRange
     └─.sheet.XLabelRange
           .table.CellRangeAddress  getDataArea()
           .table.CellRangeAddress  getLabelArea()
                              void  setDataArea( [in] .table.CellRangeAddress aDataArea)
                              void  setLabelArea( [in] .table.CellRangeAddress aLabelArea)

ラベルは数式で使うには便利そうですが、マクロでの活用方法はいまのところ思いつきません。

次の関連記事:Calc(85)データを保持するグリッドコントロール

ブログ検索 by Blogger

Translate

Created by Calendar Gadget

QooQ