Top > OOoBasic > Generic > linguistic

スペルチェック辞書 Edit

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

DictionaryList サービス Edit

インストールされている全てのスペルチェック用辞書へアクセスするには 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 メソッドを使って全ての辞書を配列として取得できます。

辞書の取得 Edit

この 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" という辞書のオブジェクトを取得しました。

辞書の削除 Edit

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

辞書の作成 Edit

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

辞書数 Edit

全ての辞書数を取得するには getCount メソッドを使用します。

辞書 Edit

個別の辞書に単語を追加したり,削除したり ... といった作業を取り上げます。

辞書名 Edit

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

辞書の使用と非使用 Edit

辞書がスペルチェックに使用されるか,されないかを確認するためのメソッドが isActive メソッドです。この使用と非使用を変更するには setActive メソッドを使用します。setActive メソッドの引数にはアクティブにするかどうかを boolean 型で指定します。

登録単語数 Edit

辞書に登録されている単語数を取得するには getCount メソッドを使用します。

辞書の言語 Edit

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

また,辞書を使用する言語を設定するには setLocale メソッドを使用します。引数として変更したい言語設定の com.sun.star.lang.Locale struct を指定します。

登録単語 Edit

辞書に登録されている単語はそれぞれが単語エントリーを形成しており,単語オブジェクトです。getEntry メソッドで単語を指定してエントリーを取得すると単語エントリーオブジェクトが戻されます。

単語の登録 Edit

辞書に新たに単語を登録するには add メソッドを使用します。このメソッドは三つの引数をとります。一つ目は登録する単語を string 型で指定します。二つ目の引数は登録される単語が NEGATIVE なものかどうかです。この NEGATIVE かどうかというのは,エントリーされる単語が間違った語かどうかというものです。三つ目の引数は登録後が NEGATIVE なときに正しく置換されるための単語を string 型で指定します。

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

単語の削除 Edit

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

辞書の具合 Edit

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

単語の全消去 Edit

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

単語 Edit

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

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

単語 Edit

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

単語のタイプ Edit

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

置換テキスト Edit

辞書のタイプが 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