目次

# 条件を設定する

条件式とは、論理演算を用いた判定式のことであり、ドキュメント内に配置するフィールドやセクションの表示を制御する際に使用します。ここでの解説では例としてフィールドを使用していますが、セクションの場合でも同様です。

条件は、次の種類のフィールドに設定できます。

1. 条件付きテキスト:条件が真の場合はテキスト A を表示し、条件が偽の場合はテキスト B を表示します。

2. 隠しテキスト:条件が真の場合、フィールドの内容を隠します (表示しません)。

3. 隠し段落:条件が真の場合、段落の内容を隠します (表示しません)。

4. 任意のレコードと次のレコード:データベースレコードへのアクセスを制御します。

条件を定義するもっとも簡単な方法は、次の値を使用して、入力ボックス 条件 に論理表現を直接入力することです。

TRUE | 条件は常に満たされます。0 に等しくない任意の値を条件テキストとして指定することもできます。
FALSE | 条件は満たされません。0 値を指定することもできます。

入力ボックス 条件 を空のままにした場合、条件は「満たされない」ものであると見なされます。

条件式の記述には、通常の数式の構成要素である、比較演算子、数学関数、統計関数、数の書式、変数、定数なども利用します。

条件を定義するときには、次の種類の変数を使用できます。

1. LibreOffice の定義済み変数 (ドキュメントのプロパティで得られる統計情報)

2. ユーザー定義の変数 (「変数の設定」フィールドで作成する)

3. ユーザーデータに基づく変数

4. データベースフィールドの内容に基づく変数

ページ番号や章番号などの内部変数は条件式には使用できません。

## 条件と変数

次の例では、変数「x」を使用しています。

x== 1 または x EQ 1 | 変数「x」が 1 に等しい場合、条件は真になります。
x != 1 または x NEQ 1 | 変数「x」が 1 に等しくない場合、条件は真になります。
sinx == 0 | 変数「x」がパイの倍数である場合、条件は真になります。

比較演算子を文字列と一緒に使用するには、演算子をダブルクオーテーションマークで囲む必要があります。

x == "ABC" または x EQ "ABC" | 変数「x」に文字列「ABC」が含まれているか (True)、そうでないか (false) を判定します。
x == "" または x EQ "" あるいは ! x または NOT x | 変数「x」に空の文字列が含まれている場合は真になります。

「等しい」ことを示す比較演算子を条件で使用する場合、2 つの等号記号 (==) で表現する必要があります。たとえば、値 1 を持つ変数「x」を定義した場合、「FALSE x==1」という条件を入力できます。

## ユーザーデータ

You can include user data when you define conditions. To change your user data, choose LibreOffice - Preferences Tools - Options - LibreOffice - User data. User data must be entered in the form of strings. You can query the user data with "==" (EQ), "!=" (NEQ), or "!"(NOT).

次の表に、ユーザーデータの変数とその意味を示します。

変数 | 説明
--- | ---
user_firstname | 名
user_lastname | 姓
user_initials | イニシャル
user_company | 会社
user_street | 住所
user_country | 国名
user_zipcode | 郵便番号
user_city | 都道府県名
user_title | 肩書き
user_position | 位置
user_tel_work | 勤務先の電話番号
user_tel_home | 自宅の電話番号
user_fax | ファックス番号
user_email | Email address
user_state | 州名 (LibreOffice のバージョンによって異なります)

たとえば、特別なイニシャル (たとえば、「LM」) を持つユーザーの場合にのみ、段落、テキスト、またはセクションを隠すには、次の条件を入力します。user_initials=="LM".

## 条件とデータベースフィールド

条件式中では、データベース内のデータベースフィールドにアクセスすることもできます。たとえば条件式を用いて、データベースフィールドの内容を判定させたり、論理式の演算対象として、データベースフィールドを指定することができます。次の表は、条件式中でのデータベースの使用例を簡単にまとめたものです。

例 | 説明
--- | ---
データベース.テーブル.会社 データベース.表.会社 NEQ "" データベース.表.会社 != "" | データベースフィールド「会社」が空ではない場合、条件は真になります。(最初の例では、演算子は必要ありません。)
!データベース.表.会社 NOT データベース.テーブル.会社 データベース.表.会社 EQ "" データベース.表.会社 =="" | COMPANY フィールドが空の場合、TRUE を返します。
データベース.表.会社 !="Sun" データベース.表.会社 NEQ "Sun" | COMPANY フィールド内の現在のエントリが、「Sun」でない場合、TRUE を返します。(感嘆符は論理否定を表します。)
データベース.テーブル.名 AND データベース.テーブル.姓 | レコードに最初の名前と最後の名前が入っている場合、TRUE を返します。

論理否定 "!" (NOT) と比較演算子「等しくない」"!=" (NEQ) との違いに注意してください。

条件式中でデータベースフィールドを参照する場合は、「データベース名.表名.フィールド名」の形式で指定します。これらの名前の中に、マイナス記号 (-) などの演算子と重なる記号が使われている場合は、「Databasename.[Table-name].Fieldname」のように、名前を大かっこで囲みます。なお、フィールドの名前の中にはスペース記号は使えません。

### 例:空のデータベースフィールドを隠す

必要であれば、空のフィールドを表示しない条件も作成できます。たとえば、いくつかのデータレコードのうち、フィールド「会社」が空の場合には、次のように入力します。

隠し段落リスト項目を選択し、次の条件を入力します: アドレス帳.アドレス.会社 EQ ""

あるいは、次のように入力します。

NOT アドレス帳.アドレス.会社

フィールド「会社」が空の場合、条件は真になり、段落は隠されます。

To display hidden paragraphs on the screen, choose LibreOffice - Preferences Tools - Options - LibreOffice Writer - View, and clear the Hidden paragraphs check box.

## フィールド内の条件の例

次の例では条件付きテキストフィールドを使用していますが、条件に関連するすべてのフィールドに共通です。条件の構文は、隠しテキスト、隠し段落、任意のレコード、または次のレコードの各フィールドにも適用できます。

## ページ数に基づいて条件付きテキストを表示するには、次のようにします。

1. [挿入]>[フィールド]>[他のフィールド]を選択して、[機能]タブをクリックします。

2. リスト フィールドタイプ から「条件付きテキスト」を選択します。

3. 入力ボックス 条件 に「page == 1」と入力します。

4. 入力ボックス 条件を満たすとき に「1 ページしかありません。」と入力します。

5. 入力ボックス 条件を満たさないとき に「複数のページがあります。」と入力します。

6. 挿入 をクリックして、閉じる をクリックします。

## ユーザー定義の変数に基づいて条件付きテキストを表示するには、次のようにします。

1. [挿入]>[フィールド]>[他のフィールド]を選択して、[変数]タブをクリックします。

2. リスト フィールドタイプ から「編集の設定」を選択します。

3. 入力ボックス 名前 に「利益」と入力します。

4. 入力ボックス 値 に「5000」と入力します。

5. [挿入]をクリックします。

6. 機能 タブをクリックして、リスト フィールドタイプ から「条件付きテキスト」を選択します。

7. 入力ボックス 条件 に「利益 < 5000」と入力します。

8. 入力ボックス 条件を満たすとき に「該当するものはありません。」と入力します。

9. 入力ボックス 条件を満たさないとき に「該当するものがありました。」と入力します。

10. [挿入]をクリックします。

「利益」変数の内容を編集するには、変数フィールドをダブルクリックします。

## データベースフィールドの内容に基づいて条件付きテキストを表示するには、次のようにします。

この例の最初の部分ではドキュメントの「名」フィールドと「姓」フィールドの間に空白を挿入し、2 つ目の部分ではフィールドの内容にもとづいてテキストを挿入します。 この例は、LibreOffice に住所データソースが登録されていることが前提となります。

1. メニュー 挿入 → フィールド → その他 を選択して、データベース タブをクリックします。

2. リスト フィールドタイプ から「差し込み印刷フィールド」を選択します。

3. 入力ボックス データベースの選択 で「アドレス帳」をダブルクリックして、「名」を選択し、挿入 をクリックします。「姓」にも同様の手順を行います。

4. ドキュメント内の 2 つのフィールドの間にカーソルを置いて、スペースバーを押し、ダイアログ フィールド に戻ります。

5. 機能 タブをクリックして、リスト フィールドタイプ から「条件付きテキスト」を選択します。

6. 入力ボックス 条件 に、「アドレス帳.アドレス.名」と入力します。

7. 入力ボックス 条件を満たすとき に 1 文字のスペースを入力します。入力ボックス 条件を満たさないとき は空のままにします。

これで、「名」フィールドの内容に基づいて条件付きテキストを挿入できるようになりました。

1. ダイアログ フィールド で、機能 タブをクリックします。

2. リスト フィールドタイプ から「条件付きテキスト」を選択します。

3. 入力ボックス 条件 に、「アドレス帳.アドレス.名 == "Michael"」と入力します。

4. 入力ボックス 条件を満たすとき に「前略」と入力します。

5. 条件を満たさないときボックスに「こんにちは」と入力します。

6. [挿入]をクリックします。