- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
- Go to OOobbs2/66.
** [[OOobbs2/66]] [#bab27ae9]
-''サマリ'': Concordance ファイル作成補助用拡張機能
-''環境'': Writer
-''状態'': 投稿
-''投稿者'': [[はにゃ?]]
-''投稿日'': 2007-09-12 (水) 12:24:06
*** 質問 [#c733195b]
Writer ドキュメントで索引を作成するときに利用できるコンコーダンスファイルを Writer ドキュメント上で作成する補助をする拡張機能。
//-この OpenOffice.org 拡張機能を利用してこうむる被害は誰にも責任はありません。
//-十分にテストされておらず致命的なバグが残っている可能性があります。
//-試してみる場合はコピーしたドキュメントおよびコピーのコンコーダンスファイルを使用してください。
&ref(ccindex-0.0.1.zip);
*** 回答 [#y68ae66e]
使い方
-動作にはPy-UNO が必要です。windows 環境ではインストール時に完全を選択しておれば使用できます。
-ツールメニュー - 拡張機能マネージャからインストール
-一度 OOo を再起動させる。クイックスタートを利用しているときは一度終了させてください。
-Writer を起動して、ツール - アドオン - ccindex を選択するとダイアログが表示されます。
- 追記。 -- [[はにゃ?]] &new{2007-09-13 (木) 00:29:06};
選択範囲のインデックスマークを削除するマクロ。インデックスは最初に見つかったものを取得。
Sub RemoveIndexMarksFromSelection()
Dim oDoc As Object
oDoc = ThisComponent
If NOT oDoc.supportsService("com.sun.star.text.TextDocument") Then Exit Sub
oSelection = oDoc.getCurrentSelection()
'sIndexName = "Alphabetical Index1"
If oSelection.supportsService("com.sun.star.text.TextRanges") Then
oIndexes = oDoc.DocumentIndexes
If oIndexes.getCount() = 0 Then Exit Sub
oIndex = GetDocumentIndex(oIndexes)
'oIndex = oIndexes.getByName(sIndexName)
If IsNull(oIndex) Then Exit Sub
oSelected = oSelection.getByIndex(0)
oText = oDoc.getText()
oMarks = oIndex.DocumentIndexMarks
For i = 0 To UBound(oMarks)
On Error Goto Handler
oRange = oMarks(i).Anchor
nRS = oText.compareRegionStarts(oRange,oSelected)
nRE = oText.compareRegionEnds(oRange,oSelected)
If (nRS = -1 AND nRE = 1) Then
oText.removeTextContent(oMarks(i))
Else
If (nRS = 0 AND nRE = 1) OR (nRS = -1 AND nRE = 0) Then
oText.removeTextContent(oMarks(i))
End If
End If
Handler:
Resume Next
Next i
End If
End Sub
Function GetDocumentIndex(oIndexes) As Object
Dim oIndex As Object
For i = 0 To oIndexes.getCount() -1
oIdx = oIndexes.getByIndex(i)
If oIdx.supportsService("com.sun.star.text.DocumentIndex") Then
oIndex = oIdx
Exit For
End If
Next i
GetDocumentIndex = oIndex
End Function
ccindex と上記マクロを利用すれば、
+ドキュメントを用意
+ccindex でコンコーダンスファイルを作成
+インデックスを挿入
+コンコーダンスファイルの利用のチェックを外す
+インデックスのエントリーは残る
+追加を手動で、削除は上記マクロ
残ったインデックスエントリーを編集するマクロが必要か・・・
日本語を利用するときのコンコーダンスファイルのエンコード
-OOo 2.3rc2 + win vista: Shift_JIS
-OOo 2.2.4 + Momonga linux 4: ファイルをマルチバイトとして読み込んでいない様子
#comment
*** 感想,コメント,メモ [#qd4d2a48]
#comment