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

2018-02-20

旧ブログ

t f B! P L
NamedRangesはCalc(80)数式に名前をつける: その1からCalc(82)名前でセルを参照するにでてくる「名前付き範囲または式」をマクロで扱うものです。

前の関連記事:Calc(78)グリッドコントロールの行をマウスでコピペする


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

def macro():
 ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
 smgr = ctx.getServiceManager()  # サービスマネージャーの取得。 
 tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
 doc = XSCRIPTCONTEXT.getDocument()
 namedranges = doc.getPropertyValue("NamedRanges")
 tcu.wtree(namedranges)
ドキュメントモデルのNamedRangesプロパティのサービスとインターフェイス一覧です。

├─.sheet.NamedRanges
│   ├─.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()
│   ├─.document.XActionLockable
│   │        void  addActionLock()
│   │     boolean  isActionLocked()
│   │        void  removeActionLock()
│   │       short  resetActionLocks()
│   │        void  setActionLocks( [in] short nLock)
│   └─.sheet.XNamedRanges
│     │   void  addNewByName( [in]             string aName,
│     │                       [in]             string aContent,
│     │                       [in] .table.CellAddress aPosition,
│     │                       [in]               long nType)
│     │   void  addNewFromTitles( [in] .table.CellRangeAddress aSource,
│     │                           [in]           .sheet.Border aBorder)
│     │   void  outputList( [in] .table.CellAddress aOutputPosition)
│     │   void  removeByName( [in] string aName)
│     └─.container.XNameAccess
│                any  getByName( [in] string aName
│                     ) raises ( .lang.WrappedTargetException,
│                                .container.NoSuchElementException)
│           [string]  getElementNames()
│            boolean  hasByName( [in] string aName)
├─.beans.XPropertySet
│                        void  addPropertyChangeListener( [in]                         string aPropertyName,
│                                                         [in] .beans.XPropertyChangeListener xListener
│                                              ) raises ( .lang.WrappedTargetException,
│                                                         .beans.UnknownPropertyException)
│                        void  addVetoableChangeListener( [in]                         string PropertyName,
│                                                         [in] .beans.XVetoableChangeListener aListener
│                                              ) raises ( .lang.WrappedTargetException,
│                                                         .beans.UnknownPropertyException)
│     .beans.XPropertySetInfo  getPropertySetInfo()
│                         any  getPropertyValue( [in] string PropertyName
│                                     ) raises ( .lang.WrappedTargetException,
│                                                .beans.UnknownPropertyException)
│                        void  removePropertyChangeListener( [in]                         string aPropertyName,
│                                                            [in] .beans.XPropertyChangeListener aListener
│                                                 ) raises ( .lang.WrappedTargetException,
│                                                            .beans.UnknownPropertyException)
│                        void  removeVetoableChangeListener( [in]                         string PropertyName,
│                                                            [in] .beans.XVetoableChangeListener aListener
│                                                 ) raises ( .lang.WrappedTargetException,
│                                                            .beans.UnknownPropertyException)
│                        void  setPropertyValue( [in] string aPropertyName,
│                                                [in]    any aValue
│                                     ) raises ( .lang.WrappedTargetException,
│                                                .lang.IllegalArgumentException,
│                                                .beans.PropertyVetoException,
│                                                .beans.UnknownPropertyException)
└──(サービスやインターフェイスに属しないプロパティ)
           boolean  ModifyAndBroadcast

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

from com.sun.star.table import CellAddress  # Struct
def macro():
 ctx = XSCRIPTCONTEXT.getComponentContext()  # コンポーネントコンテクストの取得。
 smgr = ctx.getServiceManager()  # サービスマネージャーの取得。 
 tcu = smgr.createInstanceWithContext("pq.Tcu", ctx)  # サービス名か実装名でインスタンス化。
 doc = XSCRIPTCONTEXT.getDocument()
 namedranges = doc.getPropertyValue("NamedRanges")  # ドキュメントのNamedRangesを取得。
 celladdress = CellAddress(Sheet=0, Column=2, Row=0)  # 原点となるセルのアドレス。C1セル。
 if not "Name1" in namedranges:  # Name1がない時のみ。重複しているとエラーになる。
  namedranges.addNewByName("Name1", "A1+B1", celladdress, 0)  # 名前、式(相対アドレス)、原点となるセル、NamedRangeFlag。
 name1 = namedranges["Name1"]
 tcu.wtree(name1)
NamedRangeはNamedRangesから名前で取得します。

10行目でName1という名前を追加していますが、すでに同じ名前があるとエラーになるので9行目で名前がないことを確認しています。

addNewByName()メソッドの第3引数が、メニューからシート→名前付き範囲または式→指定、でダイアログを開いたときの選択セルに該当します(Calc(80)数式に名前をつける: その1)。

├─.document.LinkTarget
│   │   string  LinkDisplayName
│   ├─.beans.XPropertySet
│   │                        void  addPropertyChangeListener( [in]                         string aPropertyName,
│   │                                                         [in] .beans.XPropertyChangeListener xListener
│   │                                              ) raises ( .lang.WrappedTargetException,
│   │                                                         .beans.UnknownPropertyException)
│   │                        void  addVetoableChangeListener( [in]                         string PropertyName,
│   │                                                         [in] .beans.XVetoableChangeListener aListener
│   │                                              ) raises ( .lang.WrappedTargetException,
│   │                                                         .beans.UnknownPropertyException)
│   │     .beans.XPropertySetInfo  getPropertySetInfo()
│   │                         any  getPropertyValue( [in] string PropertyName
│   │                                     ) raises ( .lang.WrappedTargetException,
│   │                                                .beans.UnknownPropertyException)
│   │                        void  removePropertyChangeListener( [in]                         string aPropertyName,
│   │                                                            [in] .beans.XPropertyChangeListener aListener
│   │                                                 ) raises ( .lang.WrappedTargetException,
│   │                                                            .beans.UnknownPropertyException)
│   │                        void  removeVetoableChangeListener( [in]                         string PropertyName,
│   │                                                            [in] .beans.XVetoableChangeListener aListener
│   │                                                 ) raises ( .lang.WrappedTargetException,
│   │                                                            .beans.UnknownPropertyException)
│   │                        void  setPropertyValue( [in] string aPropertyName,
│   │                                                [in]    any aValue
│   │                                     ) raises ( .lang.WrappedTargetException,
│   │                                                .lang.IllegalArgumentException,
│   │                                                .beans.PropertyVetoException,
│   │                                                .beans.UnknownPropertyException)
│   └─.document.XLinkTargetSupplier
│        .container.XNameAccess  getLinks()
├─.sheet.NamedRange
│   │   boolean  IsSharedFormula
│   │      long  TokenIndex
│   ├─.sheet.XCellRangeReferrer
│   │     .table.XCellRange  getReferredCells()
│   └─.sheet.XNamedRange
│     │               string  getContent()
│     │   .table.CellAddress  getReferencePosition()
│     │                 long  getType()
│     │                 void  setContent( [in] string aContent)
│     │                 void  setReferencePosition( [in] .table.CellAddress aReferencePosition)
│     │                 void  setType( [in] long nType)
│     └─.container.XNamed
│           string  getName()
│             void  setName( [in] string aName)
├─.sheet.XFormulaTokens
│     [.sheet.FormulaToken]  getTokens()
│                      void  setTokens( [in] [.sheet.FormulaToken] aTokens)
└──(サービスやインターフェイスに属しないプロパティ)
           .awt.XBitmap  LinkDisplayBitmap

getLinks()メソッドは使おうとするとAttributeErrorになりました。

名前がセルやセル範囲を参照しているときは、セルやセル範囲をgetReferredCells()で取得できます。

名前が式を参照しているときや参照エラーの時は、getReferredCells()の戻り値はNoneです。

式はgetContent()で取得でき、原点セルはgetReferencePosition()で取得できます。

次の関連記事:Calc(80)数式に名前をつける: その1

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ