スタイルの操作

スタイルの操作

スタイルの操作

このガイドでは、段落、文字、表、リストのスタイルの操作方法を示します Aspose.Words FOSS for .NET — 組み込みおよびカスタムスタイルを検索して適用し、表スタイルに対して領域別の条件付き書式設定を構成します。

Style オブジェクトは、単一の組み込みまたはユーザー定義スタイルを表します — 段落、フォント、リストの書式設定を名前付きでまとめたもので、段落やランにそのスタイルが割り当てられると Word が適用します。すべての文書は、Document.Styles プロパティを通じてそのスタイルを公開し、これが StyleCollection を返します。表スタイルは TableStyle で表され、これは Style のサブクラスで、ConditionalStyleCollection を介した表固有の書式設定および領域別条件付き書式設定を追加します。


スタイルの種類と識別

各 Style には、型が StyleType の Type プロパティがあり、これは Paragraph、Character、Table、または List のいずれかで、Word がサポートする4種類のスタイルに対応しています。組み込みスタイルはロケールに依存しない StyleIdentifier 列挙値も保持しており(例として見出し、強調、ハイパーリンクスタイルに対応する値)、コードが特定の言語の表示名に依存せずに組み込みスタイルを検索できます。スタイルの人間が読める名前は Style.Name で取得でき、Style.Aliases は同じスタイルに対して Word が認識する代替名を返します。Style.BuiltIn はそのスタイルが Word 本体に同梱されているか、文書で定義されたかを示し、Style.IsHeading はそのスタイルが組み込みの見出しスタイルの一つかどうかを報告します。

スタイルコレクションへのアクセスと管理

StyleCollection は、文書に添付されたすべての Style オブジェクト(組み込みとカスタム)を含むコレクションで、Document.Styles を通じて取得します。スタイルは表示名で StyleCollection インデクサー(styles[name])を使用して取得でき、同じインデクサーでロケールに依存しない StyleIdentifier を使用して組み込みスタイルを取得することもできます(異なる言語で作成された文書間での名前検索より信頼性が高いです)。新しいスタイルは StyleCollection.Add(type, name) で作成し、StyleType と名前を指定します。また、既存のスタイルは StyleCollection.AddCopy(style) を使ってコレクションに複製できます。StyleCollection.Count は文書が保持するスタイル数を報告し、コレクションはさらに DefaultFont と DefaultParagraphFormat を公開します。これらは、明示的なスタイルが適用される前に新しいコンテンツが継承する文書全体のデフォルト書式を示します。StyleCollection.ClearQuickStyleGallery() は、スタイル自体は削除せずに Word UI のクイックスタイル ギャラリーからすべてのスタイルを除去します。

段落とランへのスタイルの適用

スタイルを保持できる書式オブジェクトは、Style プロパティ(Style オブジェクト自体)と StyleName プロパティ(名前でスタイルを解決または作成するショートカット)の両方を公開します。ParagraphFormat.Style と ParagraphFormat.StyleName は段落スタイルを適用し、Font.Style と Font.StyleName はランの書式に文字スタイルを適用します。スタイル自身の LinkedStyleName、BaseStyleName、NextParagraphStyleName プロパティは、他のスタイルとの関係を示します:BaseStyleName は未設定の書式を継承するスタイルの名前、LinkedStyleName はペアになった段落/文字スタイルの名前(Word が組み込みスタイルの Heading 1 とそのリンク文字スタイルに対して行うように)、NextParagraphStyleName はこのスタイルを使用した段落の後に入力された新しい段落に Word が割り当てるスタイルの名前を示します。

テーブルスタイルと条件付き書式設定

TableStyle は Style を拡張し、Alignment、CellSpacing、LeftIndent、Shading、VerticalAlignment とパディング(LeftPadding、RightPadding、TopPadding、BottomPadding)などのテーブルレイアウトプロパティを追加します。さらに RowStripe と ColumnStripe があり、バンドパターンが繰り返される行または列の数を制御します。均一なテーブル書式設定を超えて、TableStyle.ConditionalStyles は ConditionalStyleCollection を返し、テーブル領域ごとに 1 つの ConditionalStyle を保持します — FirstRow、LastRow、FirstColumn、LastColumn、OddRowBanding、EvenRowBanding、OddColumnBanding、EvenColumnBanding、および四隅のセル(TopLeftCell、TopRightCell、BottomLeftCell、BottomRightCell)。各 ConditionalStyle は独自の Font、ParagraphFormat、Shading、Borders とセルパディングを持ち、その Type プロパティはどの ConditionalStyleType 領域を表すかを報告します。ConditionalStyle.ClearFormatting() と ConditionalStyleCollection.ClearFormatting() は、単一領域または条件付き領域全体の書式設定をリセットします。

スタイルメタデータと動作フラグ

Style のいくつかのブール値および数値プロパティは、Word が UI でスタイルを扱う方法を制御し、レンダリング方法ではありません:Locked は書式保護が有効なときにスタイルが変更されるのを防ぎ、IsQuickStyle はクイックスタイルギャラリーに表示されるかどうかを制御し、AutomaticallyUpdate は手動で適用された直接書式からスタイルが自ら再定義されるようにします。SemiHidden と UnhideWhenUsed は最初の使用前後でスタイルリストへの可視性を制御し、Priority はギャラリー内の並び順に影響します。スタイルがリスト番号付けを定義する場合、List と ListFormat プロパティも公開され、Style.Remove() はその StyleCollection からスタイルを削除します。


ヒントとベストプラクティス

  • 組み込みスタイルを検索する際は、名前で検索するよりも StyleCollection インデクサーに StyleIdentifier 値を使用することを推奨します — 名前はローカライズされますが、StyleIdentifier 値はローカライズされません。
  • BaseStyleName を設定して、スタイル階層を構築します(例: すべてが単一のベーススタイルからフォント選択を継承する見出しスタイルのセット)。各スタイルで書式設定を繰り返す代わりに。
  • ドキュメント間でスタイルをコピーする場合、すべての書式プロパティを手動で読み取り再適用するのではなく、StyleCollection.AddCopy(style) を使用してください。
  • コードで交互の行を手動で書式設定する代わりに、バンド付きテーブル用に TableStyle.ConditionalStyles 領域を構成します — 各 ConditionalStyle 領域の書式は、その ConditionalStyleType に基づいて適用され、個々の行に直接書式を設定するのとは異なります。
  • スタイルをプログラムで削除または名前変更する前に Style.BuiltIn を確認してください。組み込みスタイルは通常、ドキュメント内の他の場所で名前で参照されています。

一般的な問題

問題原因修正
名前検索に対して StyleCollection インデクサが null を返しますこの文書にスタイル名が存在しないか、組み込みスタイルがまだ使用されていないため、Word がそれを具現化していません代替名についてはStyle.Aliasesを確認するか、組み込みスタイル用にStyleIdentifierを使用したStyleCollectionインデクサーを利用してください。
StyleNameを設定すると、予期せず新しいスタイルが作成されます。StyleNameは、コレクションにまだ存在しない場合に指定された名前のスタイルを作成します。まずStyleCollectionインデクサーを使用してスタイルの存在を確認するか、Styleプロパティ経由でStyleオブジェクトを直接割り当ててください。
TableStyleを適用した後、テーブルのバンディングが表示されません。条件付き書式領域(OddRowBanding、EvenRowBandingなど)は、TableStyle.ConditionalStylesで一度も設定されていませんでした。ConditionalStyleCollection内の該当するConditionalStyleエントリに書式設定を行ってください。
スタイルの変更は、すでにそのスタイルを使用しているコンテンツには影響しません。スタイルの上に直接(手動)書式設定が適用され、優先されます対象のラン/段落の直接書式設定をクリアするか、Style.AutomaticallyUpdate を設定してください

FAQ

ドキュメント内のすべてのスタイルのコレクションを取得するにはどうすればよいですか?

Document.Styles を読み取ります。これにより、そのドキュメント内のすべての組み込みおよびユーザー定義の Style を含む StyleCollection が返されます。

Style と StyleIdentifier の違いは何ですか?

Style は実際のスタイルオブジェクトで、その書式設定を含みます; StyleIdentifier はロケールに依存しない列挙値で、特定の 組み込み 文書の言語に関係なく、以下を介してスタイルを StyleCollection インデクサ。

テーブルスタイルは段落スタイルや文字スタイルとどのように異なりますか?

TableStyle は Style のサブクラスで、テーブルレイアウトプロパティ(Alignment、CellSpacing、padding)と、バンド行、ヘッダー行、コーナーセルなどの領域固有の書式設定のための ConditionalStyles コレクションを追加します—これらは段落スタイルや文字スタイルには適用できない書式概念です。

既存のスタイルを変更する代わりに、全く新しいスタイルを作成できますか?

はい — StyleCollection.Add(type, name) を、目的の StyleType と新しい名前で呼び出して空のスタイルを作成し、その後書式プロパティ(Font、ParagraphFormat、および段落/文字スタイル用のその他のプロパティ)を設定します。

別のドキュメントからも含めて、スタイルを複製するにはどうすればよいですか?

StyleCollection.AddCopy(style) を使用し、Style オブジェクト(別の Document の StyleCollection から取得できる場合があります)を渡して、対象コレクションにそのコピーを追加します。


API Reference 概要

クラス/メソッド説明
Style組み込みまたはユーザー定義の段落、文字、表、リストスタイルの単一項目
StyleCollectionドキュメント内のすべてのスタイルのコレクションで、Document.Styles を通じて取得できます。
名前での StyleCollection インデクサー表示名でスタイルを検索します(例: styles["Heading 1"])
識別子での StyleCollection インデクサーロケールに依存しない識別子で組み込みスタイルを検索します(例: styles[StyleIdentifier.Heading1])
StyleCollection.Add(type, name)指定された StyleType の新しい空のスタイルを作成する
StyleCollection.AddCopy(style)既存のスタイルをこのコレクションにコピーする
StyleTypeParagraph、Character、Table、および List スタイルを区別する列挙型
StyleIdentifier組み込みスタイルのロケール非依存識別子
TableStyleテーブル書式設定用の Style サブクラスで、条件付きの領域別スタイリングを含みます
ConditionalStyleCollectionTableStyle 上の領域別 ConditionalStyle エントリの集合
ConditionalStyle1つのテーブル領域の書式設定(フォント、段落書式、シェーディング、罫線、パディング)
ConditionalStyleTypeConditionalStyle が適用されるテーブル領域を識別する列挙型

参照

 日本語