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

2018-02-23

旧ブログ

t f B! P L

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


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

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のサービスとインターフェイス一覧


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