セクションとサブセクションは、構造化された文書の構成要素です。どの文書にもデフォルトで少なくとも 1つのセクションが含まれているため、おそらく気づかないうちに数え切れないほど使用していることでしょう!
経験豊富なプロであれ、これから始める人であれ、この記事を読むことでセクションとサブセクションの基本についてマスターすることができます。
また、4D 20 R7に搭載された 4D Write Pro の新機能もご紹介します。4D Write Pro は、これらの要素の管理をこれまで以上に簡単かつ強力にします。
HDI: 4D Write Pro: セクションとサブセクションの削除・リセット
ドキュメント、セクション、サブセクションについて
これらの概念についてすでにご存知の方は、読み飛ばしていただいて結構です。それ以外の方は、基本的なことを学びましょう。
前述のように、ドキュメントには少なくとも 1つのセクションが含まれます。複数のセクションがある場合は、それらはセクションブレークで区切られます (これについては後で説明します)。
ドキュメント
まずはドキュメント本体から見ていきましょう。パディングや用紙サイズ、背景色、枠線など、さまざまな属性がドキュメントに対して設定できます。
セクション
セクションはドキュメントの一部で、背景色や余白などのプロパティをドキュメントから継承できます。とくに指定しない限り、セクションはデフォルトでドキュメントの属性を反映します。各セクションは、独自のヘッダーとフッターを持つことができます。
サブセクション
作成せずとも存在するセクションとは異なり、サブセクションは作成した場合にのみ存在します。しかし、サブセクションとは一体何なのでしょうか?
サブセクションには 2つのタイプがあります: “別の最初のページ “と “異なる左ページと右ページ” です。セクションがドキュメント属性を継承するように、サブセクションも親セクションの属性を継承します。
セクションとサブセクションの視覚化

上の文書には4つのセクションがあります:
- セクション1:緑色の背景とヘッダーが設定されていて、サブセクションはありません。
- セクション2:水色背景のセクションは、青色背景でヘッダーのない “別の最初のページ” サブセクションを持ちます。
- セクション3:黄色背景でヘッダーのない “別の最初のページ “と、ヘッダーのある薄黄色背景の “異なる左ページと右ページ” サブセクションを持ちます。
- セクション4:フッターのある 2段組の横向きレイアウトで、最初のページ・左ページ・右ページはすべて同じです (サブセクションなし)。
最後に、最初の 3つのセクションには、セクションの終わりにセクションブレーク (赤いダッシュで表現) がありますが、4番目にはありません (つまり、5番目のセクションは存在しません)。
セクションかサブセクションかに関わらず、インターフェースまたはプログラムで定義されたこれらの機能はすべて、内部ストレージに保存されます。
上記のすべては、4D Write Pro の多くのバージョンで利用可能です。それでは、新機能に移りましょう!
4D 20 R7 新機能の紹介
セクションの削除
ここまでで、セクションの管理は簡単そうに見えたかもしれませんが、じつは複雑でした。
4D Write Pro のセクションにはユニークな内部識別子がなく、ドキュメント内の位置に基づいてインデックス化されています。セクションを削除すると、それ以降のすべてのセクションのインデックスが移動してしまいます。セクションの区切りだけを削除すると、セクションが結合され、予期せぬ書式変更となりかねません。この課題は 4D Write Pro に限ったことではなく、Word や Pages を含む多くのワープロに共通するものです。
新しいコマンド
新しいコマンド (WP DELETE SECTION) により、このような問題を起こさずにセクションを削除することができるようになりました。このコマンドは、セクションの内容と属性を完全に削除し、意図しない結合を防ぎます。
ただし、ドキュメントには少なくとも 1つのセクションが必ず含まれることを忘れないでください。このコマンドを使用するには、少なくとも 2つのセクションがドキュメント内に必要です。
サンプル
ドキュメントのセクション4を削除します (セクション4が存在すると仮定します。そうでない場合はエラーが発生します)
WP DELETE SECTION ($document;4)
複数のセクションを削除したい場合は、削除するセクションの数を追加してください。
WP DELETE SECTION ($document;4;3)
新しい標準アクション
この機能は section/remove 標準アクションでも利用可能です。これはボタンやメニュー項目としてインターフェースで使うことができます。コマンドとの唯一の違いは:
- この標準アクションを使用すると、削除の確認がおこなわれます (セクションは非常に大きい場合があります)。
- 一度に削除できるセクションは 1つだけです。
さらに、意図せず削除してしまっても、”取り消し” のおかげで以前の状態に戻すことができます。
では、実際には何が起こるのか?
セクションを削除すると、以下のすべてが削除されます:
- セクションに含まれるドキュメントの本文
- セクションとサブセクションのヘッダーとフッター
- セクションにアンカーされている画像とテキストボックス
また、削除操作により後続のセクションのインデックスがデクリメントされるのに伴い、影響される画像やテキストボックスのアンカー番号も自動的にデクリメントされます。4D Write Pro はデクリメント処理を自動でおこなうため、心配をする必要はありません!
ページは消えても、ドキュメント内に画像は残るかもしれません
一つだけ例外があることに留意が必要です: 画像やテキストボックスがページ (仮にページ20 とします) にアンカーされていて、セクションの削除に伴ってそのページが存在しなくなった場合、その画像 (またはテキストボックス) は表示されなくなるものの、ドキュメント内に残されています。その後、ページ20 が再作成されると、この画像 (またはテキストボックス) はそこに再表示されます。
サブセクションの削除
4D 17 R3 より、WP DELETE SUBSECTION コマンドを使ってサブセクションを削除することができます。その名前が示すように、”別の最初のページ ” または “異なる左ページと右ページ” のどちらかを削除します。4D 20 R7 では、削除される内容の範囲が変化され、改良されています。
以前と変わらないのは、コンテンツ (本文) は削除されないが、ヘッダー・フッター・スタイルオプション (フレーム、マージン、背景色など) が削除されることです。
では何が新しくなったのか?
これらのサブセクションにアンカーされている画像やテキストボックスも削除されるので、サブセクションを再作成しても再表示されません。ヘッダー・フッター・アンカー画像およびテキストボックスは再作成する必要があります。削除した直後に限ってに “元に戻す” で、削除前の状態に戻すことができます。
以上のことは、プログラミングで作業していても、インターフェースを使っていても、すべて当てはまります。”別の最初のページ ” または “異なる左ページと右ページ” オプションのチェックを外すと、プログラミングでサブセクションを削除するのとまったく同じ結果になります!

WP DELETE SUBSECTION($section; wk first page)
WP DELETE SUBSECTION($section; wk left page)
属性のリセット
さて、新機能の最も興味深い部分です。
セクションとサブセクションの属性が未定義の場合、親の属性が継承されます。セクションの親はドキュメント、サブセクションの親はセクションです。
WP RESET ATTRIBUTES コマンドは、セクションやサブセクションの全属性を一括削除できるように変更されました。一括削除をするには、セクションまたはサブセクションを引数としてコマンドに受け渡すだけで、属性名は指定しません。
WP RESET ATTRIBUTES ($section) // セクションの全属性がリセットされます
WP RESET ATTRIBUTES ($subSection) // サブセクションの全属性がリセットされます

例題
上で紹介した文書の最初のセクションは、緑色の背景という特徴を持っていました。
このセクションの属性をすべて削除すると、背景はドキュメントの背景色である白に戻ります。セクション属性が存在しなくなると、ドキュメントの属性が継承されます。つまり、ドキュメントの背景が灰色に変われば、セクションの背景も灰色になります。

属性のリセット前 →属性のリセット後
2つ目のセクションは、”別の最初のページ” サブセクションを持っていました。どうなるでしょうか?
2番目のセクションの属性を削除すると、青色の背景が明示的に定義されている “別の最初のページ” を除いて、水色の背景が白に戻ります。

属性のリセット前 →属性のリセット後
一方、”別の最初のページ” の青色背景を他のセクションと同じ水色にしたい場合には、”別の最初のページ” サブセクションの背景色属性をリセットする必要があります。
WP RESET ATTRIBUTES ($subsection;wk backgroundColor)
同様に、この “別の最初のページ” サブセクションの属性をすべて削除して、親セクションの属性を継承することも可能です。
// 属性の指定なし = 全属性のリセット
WP RESET ATTRIBUTES ($subsection)
“別の最初のページ” と “異なる左ページと右ページ” サブセクションを持つ 3番目のセクションは、WP RESET ATTRIBUTES が適用されても背景色が変わりません。
これは、サブセクションの背景色が特別に定義されているからです。従って、(少なくとも backgroundColor属性については) セクション属性を継承していないので、黄色いままです。

属性のリセット前 →属性のリセット後
なお、”異なる左ページと右ページ” は互いに無関係に存在することはできませんが、それでも独立したものであることに留意しておきましょう。これらは別々の属性を持つことができ、したがって、個別にリセットすることができます。
$subSection:=WP Get subsection(WP Get section($document; 3); wk right page)
WP RESET ATTRIBUTES($subSection)
$subSection:=WP Get subsection(WP Get section($document; 3); wk left page)
WP RESET ATTRIBUTES($subSection)

属性のリセット前 →属性のリセット後
最後に、同じコマンドを4番目のセクションに適用すると、親ドキュメントと同じ 1段組の縦向きレイアウトにリセットされます。

属性のリセット前 →属性のリセット後
新しいインターフェース項目


最新のツールバーとサイドバーには、セクションの削除や属性のリセットのための新しいボタンと関連メニューの更新が含まれています。これらのツールは、ドキュメント内のカーソルの位置に応じたコンテキスト固有のアクションを提供します。
まとめ
この記事で、4D Write Pro のセクションとサブセクションについて理解を深めていただけたと思います。新しいコマンドとインターフェースの強化により、より正確でスタイリッシュに文書を微調整できるようになりました。フォーラムでご意見や経験を共有してくださるのをお待ちしています!
