前の関連記事: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)
├─.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)
└─.sheet.XLabelRange
.table.CellRangeAddress getDataArea()
.table.CellRangeAddress getLabelArea()
void setDataArea( [in] .table.CellRangeAddress aDataArea)
void setLabelArea( [in] .table.CellRangeAddress aLabelArea)
ラベルは数式で使うには便利そうですが、マクロでの活用方法はいまのところ思いつきません。
0 件のコメント:
コメントを投稿