OOobbs3/14
質問
今日も感謝でついてる♪ 立て続けの質問ですみません。 表の選択範囲の行列を知りたくて以下のようなコードを書きました oDoc = ThisComponent oController = oDoc.getCurrentController() oViewCursor = oController.getViewCursor() oTable = oViewCursor.TextTable oSelect = oDoc.getCurrentSelection() sRangeName = oSelect.getRangeName() oCellRange = oTable.getCellRangeByName(sRangeName) aAddress = oCellRange.getRangeAddress しかし、getRangeAddresをしようとするとエラーになってしまいます。 Writerの表ではCalcと同じように取得出来ないという事でしょうか? 回答
Writer の表は Calc の様な完全なグリッドではありません。たとえば、A1 を水平方向に分割した場合次のようなセル名を持った表が出来上がります。
この表には D2 セルがありません。表から getCellRangeByName("A1:D2") としようとするとエラーになります。 マクロなどから扱うにはあまりいい構造とは思えません。表が複雑になるとマクロなどから、あるセルの下に表示されているセルを特定することすらできなくなります。API から表のセルの位置などの情報が取得できないことが話題になってからは複雑な表をマクロから利用する人がいなくなりました。 避けられるのであれば Writer の表を取り扱わないことをお勧めします。Calc のシートの方が大分楽です。 メソッドが無いといったようなことは http://extensions.services.openoffice.org/en/project/MRI
感想,コメント,メモ
|