** [[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 |