Top > OOoBasic > Generic > linguistic
*スペルチェック辞書 [#k2af388c]
スペルチェック用の辞書を取り扱うのが com.sun.star.linguistic2 モジュールです。そのうちでも com.sun.star.linguistic2.DictionaryList サービスなどを利用して辞書に関する作業を行うことができます。

#contents

**DictionaryList サービス [#g5dad4a2]
インストールされている全てのスペルチェック用辞書へアクセスするには com.sun.star.linguistic2.DictionaryList サービスを使用します。

 Sub dictionarylist_1
 Dim oDictionaryList As Object
 Dim oDictionaries() As Object
   oDictionaryList = createUnoService("com.sun.star.linguistic2.DictionaryList")
   oDictionaries() = oDictionaryList.getDictionaries()
   For i = o To UBound(oDictionaries())
     MsgBox oDictionaries(i).Name
   Next i
 End Sub

インストールされている辞書名を順に表示しました。ここで注意しなければいけないことは,辞書名に ".dic" と拡張子が付いていることです。OOo の GUI 上ではこれが省かれて表示されているのです。

この DictionaryList サービスを取得して ''getDictionaries'' メソッドを使って全ての辞書を配列として取得できます。

***辞書の取得 [#z107180d]
この DictionaryList サービスから名前を指定して希望の辞書オブジェクトを取得することができます。''getDictionaryByName'' メソッドを使用して個別の辞書オブジェクトを取得します。

 Sub dictionarylist_2
 Dim oDictionaryList As Object
 Dim oDictionary As Object
   oDictionaryList = createUnoService("com.sun.star.linguistic2.DictionaryList")
   oDictionary = oDictionaryList.getDictionaryByName("soffice.dic")
   MsgBox oDictionary.Name
   MsgBox oDictionary.isActive()
 End Sub

OpenOffice.org に標準で搭載されている "soffice.dic" という辞書のオブジェクトを取得しました。

***辞書の削除 [#z301adf7]
DictionaryList サービスから指定した辞書を削除することができます。''removeDictionary'' メソッドの引数に削除したい辞書オブジェクトを与えます。与える辞書オブジェクトは ''getDictionaries'' または ''getDictionaryByName'' メソッドで取得した辞書オブジェクトを用います。

***辞書の作成 [#xbd1d89f]
新しい辞書を作成するには ''createDictionary'' メソッドを使用します。このメソッドには四つの引数が必要です。順に,"辞書名","辞書の言語","辞書のタイプ","辞書ファイルの Url" です。このうち,辞書名と辞書ファイルの Url については string 型で,辞書の言語は com.sun.star.lang.Locale struct で指定します。辞書のタイプは com.sun.star.linguistic2.DictionaryType enum によって指定します。正しい単語の辞書は POSITIVE,間違った単語の辞書には NEGATIVE を指定します。それらが混じった辞書には MIXED を指定します。


***辞書数 [#b4347f22]
全ての辞書数を取得するには ''getCount'' メソッドを使用します。
**辞書 [#te8818d9]
個別の辞書に単語を追加したり,削除したり ... といった作業を取り上げます。

***辞書名 [#xaf1e8e0]
辞書名を取得する ''getName'' メソッドだけでなく,辞書名を変更する ''setName'' メソッドもあります。

***辞書の使用と非使用 [#m995133d]
辞書がスペルチェックに使用されるか,されないかを確認するためのメソッドが ''isActive'' メソッドです。この使用と非使用を変更するには ''setActive'' メソッドを使用します。''setActive'' メソッドの引数にはアクティブにするかどうかを boolean 型で指定します。
***登録単語数 [#v4ebdeeb]
辞書に登録されている単語数を取得するには ''getCount'' メソッドを使用します。

***辞書の言語 [#id37801b]
辞書を使用する言語を調べるには ''getLocale'' メソッドを利用します。このメソッドは com.sun.star.lang.Locale struct を戻します。

また,辞書を使用する言語を設定するには ''setLocale'' メソッドを使用します。引数として変更したい言語設定の com.sun.star.lang.Locale struct を指定します。
***登録単語 [#ka47be0d]
辞書に登録されている単語はそれぞれが単語エントリーを形成しており,単語オブジェクトです。''getEntry'' メソッドで単語を指定してエントリーを取得すると単語エントリーオブジェクトが戻されます。
***単語の登録 [#q4b94d48]
辞書に新たに単語を登録するには ''add'' メソッドを使用します。このメソッドは三つの引数をとります。一つ目は登録する単語を string 型で指定します。二つ目の引数は登録される単語が NEGATIVE なものかどうかです。この NEGATIVE かどうかというのは,エントリーされる単語が間違った語かどうかというものです。三つ目の引数は登録後が NEGATIVE なときに正しく置換されるための単語を string 型で指定します。


辞書に一気にエントリーを登録する ''addEntry'' メソッドもあります。しかし,このメソッドでは com.sun.star.linguistic.XDictionaryEntry を引数にとるため新規のエントリーの作成には向いていません。''getEntry'' メソッドなどで取得して修正したエントリーを追加するときなどに向いています。

***単語の削除 [#cd500dee]
辞書に登録されている単語を削除するには ''remove'' メソッドを使用します。引数には単語のエントリー語を string 型で指定します。

***辞書の具合 [#x2c7d039]
一つの辞書に登録できる単語数は 2000 までです。そのため,辞書が一杯かどうかを調べるメソッドがあります。''isFull'' メソッドです。

***単語の全消去 [#g491d035]
辞書内の登録単語全てを削除できる ''clear'' メソッドがあります。全ての単語が消えてしまうので注意して使用してください。

**単語 [#c9efb4d2]
辞書の単語は辞書にそのまま文字列として保存されているのではなく単語のエントリーとして登録されています。インターフェースでいうと com.sun.star.linguistic2.XDictionaryEntry に当たります。

単語エントリーのプロパティーを変更して辞書の登録単語について変更することはできません。単語を一度削除した後,単語エントリーから取得したプロパティーを使用して新しく単語を登録しなおします。
***単語 [#m4e16410]

単語エントリーオブジェクトのエントリーとして登録されている単語を取得するには ''getDictionaryWord'' メソッドを使用します。

***単語のタイプ [#fd2b9b88]

辞書の単語エントリーに正しい単語を登録してある辞書かまたは単語エントリーに間違った単語が登録されている辞書かどうかを決めるのが辞書のタイプです。単語のタイプも同じように決まりますが,単語ごとに変更することはできません。単語のタイプを調べるには ''isNegative'' メソッドを使用します。false を戻すときは単語が正しい単語エントリーです。

***置換テキスト [#f19ee81b]

辞書のタイプが com.sun.star.linguistic2.DictionaryType.NEGATIVE のときには間違った単語に対して置換するためのテキストが設定されます。この置換テキストを取得するには ''getReplacementText'' メソッドを使用します。

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