コンテンツ コントロールの作業
コンテンツ コントロールとは
コンテンツ コントロールは、特定の種類のコンテンツに対するコンテナーとして機能するドキュメント内にバインドされ、場合によってはラベル付き領域でもあります。 個別のコンテンツ コントロールは、日付、リスト、書式設定されたテキストの段落などのコンテンツを格納できます。 場合によっては、コンテンツ コントロールはフォームを連想させることがあります。 ただし、これにより豊富で構造化されたコンテンツのブロックを作成できるようになるため、より強力かつフレキシブルになり、役立ちます。 コンテンツ コントロールによって、明確に定義されたブロックをドキュメントに挿入するテンプレートを作成できるようになります。 コンテンツ コントロールにより、次のことができるようになります。
テンプレートに構造化された領域を指定する。 読み取りや書き込みができるように、それぞれの構造化された領域には独自の固有 ID があります。 構造化された領域 (または、コンテンツ コントロール) の種類には、コンボ ボックス、画像、テキスト ブロック、およびカレンダーなどがあります。
コンテンツ コントロールの動作を決定します。 各コンテンツ コントロールはドキュメントの一部を占め、テンプレート作成者として各リージョンの機能を指定できます。 たとえば、テンプレートの領域を予定表にする場合は、ドキュメントのその領域に予定表コンテンツ コントロールを挿入します。これにより、コンテンツのブロックが何を行うかが自動的に決まります。 同様に、テンプレートのセクションに画像を表示する場合は、その領域に画像コンテンツ コントロールを作成します。 このようにして、定義済みのブロック型を使用してテンプレートを構築できます。
ドキュメント内のコンテンツ コントロールを変更する機能を制限する。 削除や編集ができないように、各コンテンツ コントロールに制限することができます。 これは例えば、ユーザーが読み取ることはできるが、編集できないテンプレートに著作権情報がある場合に役に立ちます。 また別の例では、テンプレート ドキュメント内に配置したコンテンツ コントロールをロックして、ユーザーがコンテンツ コントロールに含まれるコンテンツを誤って削除しないようにすることもできます。 これにより、テンプレートは以前のバージョンよりも堅牢になります。
コンテンツ コントロールのコンテンツをカスタム XML パーツのデータにマップする。 例えば、プレーン テキスト コンテンツ コントロールを株価のテーブルのセルに挿入する場合、テーブル セルのコンテンツ コントロールを現在の株価を含む XML ファイルのノードにマップできます。 価格が変わると、アドインはプログラムを使用して添付されている XML ファイル (各プレーン テキスト コンテンツ コントロールにバインドされている) を更新し、その新しく更新された価格が自動的にテーブルに表示されます。
コンテンツ コントロールを最も簡単に作成するには、ユーザー インターフェイスを使用します (プログラムを使用して作成することもできます)。 ユーザー インターフェイス (UI) によってコンテンツ コントロールを作成するには、コンテンツ コントロール (例: テキストや画像) にするコンテンツを選択して、[開発] リボンのコンテンツ コントロール セクションから目的のコンテンツ コントロールの種類を選択します。 これにより選択したコンテンツの周囲にコンテンツ コントロールが作成されます。
Word オブジェクト モデル内のコンテンツ コントロール
次の表は、コンテンツ コントロールに関連付けられている Word オブジェクト モデル内のオブジェクトを示しています。
名前 | 説明 |
---|---|
ContentControl | 各 ContentControl オブジェクトはドキュメント内の個々のコンテンツ コントロールを表します。 個々の ContentControl オブジェクトにアクセスするには、ContentControls コレクションを使用します。 |
ContentControls | コンテンツ コントロールのコレクションにアクセスするには、Document、Range、Selection オブジェクトの ContentControls プロパティを使用します。 また、Document オブジェクトの SelectContentControlsByTitle メソッドと SelectContentControlsByTag メソッドを使用して、すべての同じタイトルまたはタグ値を持つ特定のコンテンツ コントロールを含む ContentControls コレクションにアクセスすることもできます。 |
ContentControlListEntry | コンテンツ コントロールがドロップダウン リストまたはコンボ ボックスの場合、ContentControlListEntry オブジェクトはリスト内の個々のアイテムを表します。 |
ContentControlListEntries | ContentControl オブジェクトの DropdownListEntries プロパティを使用して、個々のドロップダウン リストまたはコンボ ボックス内のすべての項目にアクセスします。 |
これらのオブジェクトまたはコレクションにはそれぞれ、個別とコレクションの両方でコンテンツ コントロールを操作できるようにするメソッドとプロパティがあります。 さまざまな種類のコンテンツ コントロールがあるため (次のセクション「コンテンツ コントロールの種類」を参照)、ContentControl オブジェクトにはコンテンツ コントロールの異なる種類すべてに適用できない可能性があるメンバーがあります。 次の表は、コンテンツ コントロールの特定の種類にのみ適用される ContentControl オブジェクトのプロパティおよびメソッドを示しています。
注:
ContentControl オブジェクトのすべてのプロパティとメソッドの完全な一覧については、「コンテンツ コントロール」を参照してください。
プロパティ/メソッド | 対象 |
---|---|
BuildingBlockCategory プロパティ | 文書パーツ ギャラリー コンテンツ コントロール (wdContentControlBuildingBlockGallery) |
BuildingBlockType プロパティ | 文書パーツ ギャラリー コンテンツ コントロール (wdContentControlBuildingBlockGallery) |
DateDisplayFormat プロパティ | 日付コンテンツ コントロール (wdContentControlDate) |
DateDisplayLocale プロパティ | 日付コンテンツ コントロール (wdContentControlDate) |
DateStorageFormat プロパティ | 日付コンテンツ コントロール (wdContentControlDate) |
DropdownListEntries プロパティ | コンボ ボックスとドロップダウン リストのコンテンツ コントロール (wdContentControlComboBox および wdContentControlDropdownList) |
MultiLine プロパティ | プレーンテキスト コンテンツ コントロール (wdContentControlText) |
Ungroup メソッド | グループ コンテンツ コントロール (wdContentControlGroup) |
SetCheckedSymbol メソッド | チェック ボックス コンテンツ コントロール (wdContentControlCheckBox) |
SetUncheckedSymbol メソッド | チェック ボックス コンテンツ コントロール (wdContentControlCheckBox) |
コンテンツ コントロールの種類
ドキュメントに追加できるコンテンツ コントロールには、それぞれ WdContentControlType という新しい列挙体で表される 8 種類のコンテンツ コントロールがあります。
コンテンツ コントロールの種類 | 説明 | WdContentControlType の定数 |
---|---|---|
チェックボックスです。 | wdContentControlCheckBox | |
カレンダー | 日時指定です。 | wdContentControlDate |
文書パーツ | ユーザーが指定された文書パーツから選択できるようにします。 | wdContentControlBuildingBlockGallery |
ドロップダウン リスト | ドロップダウン リストです。 | wdContentControlDropDownList |
グループ | ユーザーが編集や削除ができないドキュメントの保護領域を定義します。 グループ コントロールには、テキスト、表、画像、その他のコンテンツ コントロールなどのドキュメント アイテムを含めることができます。 | wdContentControlGroup |
コンボ ボックス | コンボ ボックスです。 | wdContentControlComboBox |
画像 | 画像です。 | wdContentControlBlockPicture |
リッチ テキスト | リッチ テキストのブロックです。 | wdContentControlRichText |
テキスト形式 | プレーン テキストのブロックです。 | wdContentControlText |
コンテンツ コントロールのイベント
Word のコンテンツ コントロール オブジェクト モデルで使用可能なプロパティおよびメソッドに加えて、コンテンツ コントロールを追加や削除する場合、またはユーザーがコンテンツ コントロールを編集する場合に、イベントを使用してコードを実行できるようにすることもできます。 次のリストには、それぞれのイベント、およびイベント コードを実行するタイミングを示します。 これらすべてのイベントは Document オブジェクトのメンバーです。
イベント名 | 説明 |
---|---|
ContentControlAfterAdd | 新しいコンテンツ コントロールをドキュメントに追加した後に発生します。 このイベントは、ユーザーが UI のツールを使用してコンテンツ コントロールを追加するか、またはコードを使用して追加すると実行されます。 |
ContentControlBeforeContentUpdate | Word がコンテンツ コントロールのコンテンツを更新する前に発生します。 |
ContentControlBeforeDelete | ユーザーがコンテンツ コントロールを削除する前に発生します。 このイベントは、ユーザーが UI のツールを使用してコンテンツ コントロールを削除するか、またはコードを使用して削除すると実行されます。 |
ContentControlBeforeStoreUpdate | Word がドキュメントのデータ ストアのデータからコンテンツ コントロールのコンテンツを更新する前に発生します。 |
ContentControlOnEnter | ユーザーがコンテンツ コントロールを入力したときに発生します。 |
ContentControlOnExit | ユーザーがコンテンツ コントロールを終了するときに発生します。 |
コードの操作
コンテンツ コントロールを追加するかどうか、コンテンツ コントロールを削除するかどうか、またコンテンツ コントロールにアクセスして終了の操作をするかどうかは、コードで処理することができます。 次のシナリオは、使用できるサンプルの一部です。
コンテンツ コントロールの追加
上述のとおり、ドキュメントに追加できる 8 種類のコンテンツ コントロールがあります。 ContentControls コレクションの Add メソッドを使用して、ドキュメントにコンテンツ コントロールを追加します。 次の例では、日付の選択をアクティブなドキュメントに追加し、日付の値を現在の日付に設定しています。
Sub AddDatePicker()
Dim objCC As ContentControl
Dim objDate As Date
Set objCC = ActiveDocument.ContentControls _
.Add(wdContentControlDate)
objDate = Date
objCC.Range.Text = objDate
End Sub
同じ基本的な構造を使用して、ドキュメントにさまざまな種類のコンテンツ コントロールを追加します。
コンテンツ コントロールにタイトルを追加する
Title プロパティを使用してコンテンツ コントロールにタイトルを追加します。 このテキストがユーザーに表示され、コンテンツ コントロールに入力するデータの種類を確認するのに役立ちます。 次の例では、新しいプレーンテキスト コンテンツ コントロールをアクティブなドキュメントに追加し、コントロールにタイトルを設定 (テキストを表示) しています。
Sub SetTitleForContentControl()
Dim objCC As ContentControl
Set objCC = ActiveDocument.ContentControls _
.Add(wdContentControlText)
objCC.Title = "Please enter your name"
End Sub
コンテンツ コントロールのプレースホルダー テキストを変更する
プレースホルダー テキストは一時テキストです。 1 単語または 2 単語の説明 (タイトルと同様)、またはより完全な説明 (手順番号など) にすることができます。 プレースホルダー テキストの変更は、コンテンツ コントロールの種類やコンテンツ コントロールの予期されるコンテンツに関係なく同じです。 次の例では、アクティブなドキュメントにドロップダウン リストを追加し、コントロールにプレースホルダー テキストを設定して、複数の動物の名前でリストを埋めています。
Sub SetPlaceholderText()
Dim objCC As ContentControl
Set objCC = Selection.ContentControls _
.Add(wdContentControlComboBox)
objCC.Title = "Favorite Animal"
objCC.SetPlaceholderText _
Text:="Please select your favorite animal "
'List entries
objCC.DropdownListEntries.Add "Cat"
objCC.DropdownListEntries.Add "Dog"
objCC.DropdownListEntries.Add "Horse"
objCC.DropdownListEntries.Add "Monkey"
objCC.DropdownListEntries.Add "Snake"
objCC.DropdownListEntries.Add "Other"
End Sub
これらはオブジェクト モデルを使用してドキュメントのコンテンツ コントロールを操作する方法の一部です。 詳細な例については、方法 セクションを参照してください。
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。