Top > OOobbs2 > 30
  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
  • Go to OOobbs2/30.

** [[OOobbs2/30]] [#zeb1ffe4]
-''サマリ'': テキストフレーム内のドラッグした文字を取得したい
-''環境'': Writer
-''状態'': 解決不可能
-''投稿者'': [[sato]]
-''投稿日'': 2007-02-27 (火) 16:36:14
*** 質問 [#caf430fa]
テキストフレーム内のドラッグした文字を取得したいのですが、Viewcursorを使用してもエラーになります。Selectでフレーム内の文字全部は取得できましたが、部分取得が出来ません。宜しくお願いします。
*** 回答 [#z11a66cd]
- テキストフレームというのは、挿入 - フレームで挿入した枠のことでしょうか?私の環境ではこのフレーム内の文字列を選択しても文字が反転表示されませんでした。挿入 - 枠や OLE オブジェクト、ドローオブジェクトのテキストでしょうか? -- [[はにゃ?]] &new{2007-02-28 (水) 16:39:16};
- 説明不足ですみません。ツールバー 図形描画 テキスト で文字を入力した内の一部分をドラッグした文字を取得出来ないものかと思っています。はにゃさんが言われるとおりの 挿入−枠などです。宜しくお願いします。 -- [[sato]] &new{2007-02-28 (水) 17:28:05};
- 挿入 - 枠で挿入した枠内の文字列は ViewCursor で取得できます。しかし、図形描写の 「T」マークで挿入した図形中で選択状態の文字列の取得は難しいようです。

CurrentController の ''Selection'' からは選択されている図形描写コレクションオブジェクトしか取得できません。

 Sub Main
 Dim oDoc As Object
 Dim oController As Object
 Dim oSelection As Object
   oDoc = ThisComponent
   oController = oDoc.getCurrentController()
   oSelection = oController.getSelection().getByIndex(0)
   s = oSelection.String
 End Sub

 oController.getSelection()
で取得できるオブジェクトは com.sun.star.drawing.SvxShapeCollection に相当します。

&ref(ShapeCollection.ods);

このコレクションオブジェクトは、複数の図形描写オブジェクトなどがグループ化されているときに複数のメンバーを持ちます。そのため、図形描写が一つでもインデックスまたは名前で一つの Shape を取得する必要があります。

Shape を取得すれば全部のテキストにはアクセスできますが、選択されている部分の判断ができません。

&ref(Shape.ods);

API からは図形描写中の選択された文字列の取得は無理でしょうかね。

図形描写オブジェクト中ではツール - 文字カウントも利用できませんね。

-- [[はにゃ?]] &new{2007-02-28 (水) 22:08:44};
- 図形描写オブジェクト中で選択された文字列でも編集 - コピーが可能なので・・・ -- [[はにゃ?]] &new{2007-02-28 (水) 22:20:43};
- ありがとうございます。図形描画のテキスト部分的な文字を取得できれば均等割付のマクロの完成でしたが、・・・これ以外についてはお蔭様で完成(未熟ですが)しました。 -- [[sato]] &new{2007-03-01 (木) 17:41:13};
- 図形描写中のテキストをコピー、新規 Writer ドキュメントに貼り付け、全選択という方法はよく使われています。新規ドキュメントを Hide で開いた後に作業して終了させます。コピーすることでクリップボードの内容が変更されてしまいますが。と思ったら、選択された図形描写が特定できない場合には文字サイズが分かりませんね。 -- [[はにゃ?]] &new{2007-03-01 (木) 18:07:10};

#comment
*** 感想,コメント,メモ [#ld871d7c]
- いろいろありがとうございました。数日間デベロッパーガイド、API等あちこち見ながら調べてみました。結論から言えば、Drawing.Textはdrawing.TextPropertiesとtext.XTextしかサポートしていないことがわかり、ViewCursorには対応していませんでした。残念です。でも、目的の文字の均等割付は、すべてに対応できなくてもTextには対応したのでとりあえずはいいかなと思っています。ありがとうございました。 -- [[sato]] &new{2007-03-09 (金) 11:38:37};

#comment

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes