4D 21 R3 以降、4D Write Pro においてスタイルシートを使用し、複数の階層からなる箇条書きリストや番号付きリストを作成できるようになりました。作成したリストは、docx を含むすべての形式へエクスポート可能です。たとえば、コンテンツの追加や削除に合わせてすべてのレベルで自動的にナンバリングが調整されるリストを作成したり、4D Write Proドキュメント全体でタイトルやサブタイトルに一貫したスタイルと番号付けを適用したい場合、この新機能が役立ちます。このブログ記事では、マルチレベルスタイルシートを使用して多階層リストを作成する方法を詳しくご紹介します。
具体的には、標準アクションおよびコマンドを使用してマルチレベルスタイルシートを管理する方法を説明します。
HDI_4DWP_MultiLevelStyleSheets
標準アクションによるマルチレベルスタイルシートの管理
以下のアニメーションのような効果を実現したい場合は、次の手順に従ってください:
- ステップ1: リストスタイルタイプを適用した段落スタイルシートを、複数の段落に適用します。
- ステップ2: listLevelAppend 標準アクションを使用して、段落スタイルシートに新しいレベルを追加します。これにより、単一レベルのリストから多階層リストへと変更できます。
- ステップ3: listLevelDec および listLevelInc 標準アクションを使用して、選択した段落のレベルを上げ下げします。
- ステップ 4: listConcatStringFormat および listNumberFormat の標準アクションを使用して、番号マーカーの書式を調整します。

4Dコマンドによるマルチレベルスタイルシートの管理
4D 21 R3 以前 の 4D Write Pro でも、すべての段落スタイル(リストタイプを含む)を含み、段落に適用できるスタイルシートがすでに提供されていました。今回、この概念を拡張し、他階層リストの作成に使用できるようにしました。
以下のスクリーンショットにある多階層リストは、ルートレベル 1つとサブレベル 2つの計3つのレベルで構成されています。これを実現するには、相互に関連する 3つの段落スタイルシート (ルートレベルのスタイルシート 1つと、それに関連するサブレベルのスタイルシート 2つ) が必要です。具体的な手順は以下の通りです:
- ステップ1: WP New style sheet コマンドを使用し、ルートレベルのスタイルシートと、それに関連する 2つのサブレベルのスタイルシートを 1行のコードで作成します。これら 3つのスタイルシートは、デフォルト値で作成されます: wk list type =wk decimal およびwk margin left = 0.75 cm × (前のレベルの数)。
- ステップ2: WP Get style sheet コマンドを使用して、これら 3つの異なるスタイルシートオブジェクトを取得します。
- ステップ3: 従来の標準的な段落スタイルシートと同様に、WP SET ATTRIBUTES コマンドを使用して、ルートレベルのスタイルシートおよび各サブレベルのスタイルシートを更新します。今回更新が必要なスタイルは、以下の通りです: wk list style type、wk color、wk font size、wk font、wk font bold、wk list string format ltr、および wk list format string concat (新規属性)。
- ステップ 4: 従来の段落スタイルシートと同様に、WP SET ATTRIBUTES コマンドを使用して、各スタイルシートを該当する段落に適用します。
- ステップ 5 (任意): WP DELETE STYLE SHEET コマンドを使用して特定のスタイルシートを削除できます。ただし、ルートレベルのスタイルシートを削除すると、関連付けられたサブレベルのスタイルシートも削除される点に注意してください。
- ステップ 6 (任意): WP EXPORT DOCUMENT コマンドを使用して、多階層リストを含む 4D Write Pro ドキュメントを DOCX、SVG、PDF、HTML などの他の形式にエクスポートできます。この場合、エクスポートされたリストは、インデントや番号付けを失うことなく、階層・スタイル・構造を維持します。

以下に、マルチレベルスタイルシートを使用して多階層リストを作成するために必要なすべてのコードをまとめました:
$spanishNovels:="Spanish Novels\n20th century\nCien años de soledad\nEl túnel\nFicciones\n"
$frenchNovels:="French Novels\n19th century\nLes Misérables\nMadame Bovary\nGerminal"
WP SET TEXT(WParea; $spanishNovels+$frenchNovels; wk append)
// 3階層のマルチレベルスタイルシートを作成します
WP New style sheet(WParea; wk type paragraph; "MyList"; 3)
// 各レベルのマルチレベルスタイルシートオブジェクトを取得します
levelStyle1:=WP Get style sheet(WParea; "MyList"; 1)
levelStyle2:=WP Get style sheet(WParea; "MyList"; 2)
levelStyle3:=WP Get style sheet(WParea; "MyList"; 3)
// 各レベルのマルチレベルスタイルシートのスタイルをカスタマイズします
WP SET ATTRIBUTES(levelStyle1; \
{listStyleType: wk upper latin; color: "#1F3A5F"; fontSize: 18; font: "Tahoma"; listFont: "Tahoma"; fontBold: wk true})
WP SET ATTRIBUTES(levelStyle2; \
{listStyleType: wk decimal; listConcatStringFormat: True; color: "#52796F"; fontSize: 16; font: "Tahoma"; listFont: "Tahoma"; fontBold: wk true})
WP SET ATTRIBUTES(levelStyle3; \
{listStringFormatLtr: "(#)"; listConcatStringFormat: False; color: "Black"; fontSize: 12; font: "Times New Roman"; listFont: "Times New Roman"})
// 段落に対し、該当するマルチレベルスタイルシートを適用します
$paragraphs:=WP Get elements(WParea; wk type paragraph)
For ($i; 0; 9)
If (($i=0) ' ($i=5))
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle1)
Else
If (($i=1) ' ($i=6))
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle2)
Else
WP SET ATTRIBUTES($paragraphs[$i]; wk style sheet; levelStyle3)
End if
End if
End for
多階層リストのインポートとエクスポート
多階層リストは、4D Write Pro 内で利用できるだけでなく、他の形式へエクスポートする際や、外部からインポートする際にも保持されます。
多階層リストを含む 4D Write Pro ドキュメントをエクスポートすると、DOCX、PDF、SVG、完全な HTML Webページ、HTML-MIME を含むすべてのサポートされているエクスポート形式において、同じリスト構造とレベルを維持します。これは、リストがフラット化されたり、インデントや階層が失われたりすることなく、マルチレベルの番号付け(ルートレベルおよびサブレベル)が一貫して維持されることを意味します。
また、多階層リストを含む DOCX ドキュメントをインポートする場合も、4D Write Pro ドキュメント内で同じ多階層構造が維持されします。
フラットリストと多階層リストのいずれも、階層を保ったままインポートされるため、インポート後もプログラムや標準アクションを通じて編集を継続できます。
まとめ
4D Write Pro のマルチレベルスタイルシートを使用することで、構造化された専門的なドキュメントの作成が、これまで以上に簡単かつ強力になります。複雑なアウトラインの作成、階層情報の整理、ドキュメント全体での一貫した番号付けの確保など、この機能により、コンテンツの構造と表現を完全に制御できます。
インタラクティブな編集のための標準アクションと、プログラム制御のための 4Dコマンドを組み合わせることで、ドキュメントの進化に合わせて自動的に適応する多階層リストを簡単に作成・管理・維持できます。さらに、これらのリストはドキュメントのエクスポートやインポート時にも構造と書式を維持するため、DOCX、PDF、HTML などのフォーマットとのシームレスな相互運用性が保証されます。
4D 21 R3 では、プログラムによる操作や標準アクションを通じて多階層リストを管理する強力な機能がすでに提供されていますが、4D 21 R4 では、これらの機能をより直感的に扱える専用のユーザーインターフェースが導入され、全体的な操作性がさらに向上します。
4D Write Pro のリストに関する詳細については、ドキュメントをご確認ください。ご質問やご意見がございましたら、4Dフォーラムまでお寄せください。
現在、この投稿へのコメント機能は利用できません。