すべてのプロダクト
Search
ドキュメントセンター

Intelligent Media Management:Word 文書の操作

最終更新日:Dec 27, 2024

このトピックでは、Word 文書で一般的な操作を実行する方法について説明します。

指定した位置でのみコンテンツの変更をユーザーに許可する

Word 文書の指定した位置でのみユーザーがコンテンツを変更できるようにするには、次の手順を実行します。

  • .docx ドキュメントを作成します。このファイルタイプのみがコンテンツコントロールをサポートしています。

  • ドキュメントにコンテンツを書き込みます。

  • 目的の位置にコンテンツコントロールを挿入します。

  • [校閲] > [編集の制限] を選択します。

テキストの位置を照会し、テキストを置換する

テキストの位置を照会する

  • Range メソッドを使用して、ドキュメントの全範囲を取得します。開始位置と終了位置を指定して、検索範囲を絞り込むこともできます。

  • JavaScript を使用してテキストを検索し、開始位置を取得します。たとえば、find メソッドを使用できます。

テキストを置換する

ReplaceText メソッドを使用して、テキストを置換します。

指定したテキストの上にカーソルを移動する

  • テキストを見つけます。例: const info = await app.ActiveDocument.Find.Execute('WebOffice'); // レスポンス: [{ pos: 16, len: 2 }]

  • 位置情報を取得します。例: const pos = info[0].pos;

  • テキストの上にカーソルを移動します。例: await app.ActiveDocument.Range.SetRange(pos, pos);

 async function example() { 
 await instance.ready();
  const app = instance.Application;
  // 1. テキストを検索して強調表示します。
  const findResult = await app.ActiveDocument.Find.Execute('WebOffice');
  // 2. 位置情報を取得します。
  const { pos } = findResult[0];
  // 3. 範囲を取得します。
  const range = await app.ActiveDocument.Range.SetRange(pos, pos);
}
async function example() {
  // 前の手順の行を参照してください。コードはここでは省略されています。
  // 4. ドキュメントウィンドウをスクロールして、取得した範囲をドキュメントウィンドウに表示します。
  await app.ActiveDocument.ActiveWindow.ScrollIntoView(range);
} 

あるドキュメントのコンテンツを別のドキュメントにマージする

ドキュメントのマージは、一般的なドキュメント操作シナリオです。

ドキュメント A のコンテンツをドキュメント B にマージするには、ActiveDocument.Range(Start, End).GetHtmlData() を使用してドキュメント A の HTML データを取得します。サンプルコード:

async function example() {
await instance.ready();

const app = instance.Application;
 
// 指定された Range オブジェクトを返します。
 const range = await app.ActiveDocument.Range(10, 20);

 // 範囲のフォーマット済み HTML データを取得します。
 const htmlInfo = await range.GetHtmlData();
 console.log(htmlInfo);
}

htmlInfo 変数の値は { HTML, Text } です。

属性

タイプ

説明

HTML

文字列

HTML データ

Text

文字列

テキストデータ

HTML データを取得し、ActiveDocument.Range(Start, End).PasteHtml({ HTML }) を使用してドキュメント B にデータを貼り付けます。サンプルコード:

async function example() {
await instance.ready();
const app = instance.Application;
  // 指定された Range オブジェクトを返します。
const range = await app.ActiveDocument.Range(10, 20);
// 範囲のフォーマット済み HTML データを取得します。
  const htmlInfo = await range.GetHtmlData();
  
  // フォーマット済み HTML データを指定された範囲に貼り付けます。
  await app.ActiveDocument.Range(110, 110).PasteHtml({
    HTML: htmlInfo.HTML,
  });
}

ドキュメント B の末尾を見つけるには、ActiveDocument.GetDocumentRange() を使用してドキュメント全体の範囲を取得し、Range.SetRange() を使用して開始位置と終了位置を設定します。サンプルコード:

説明

GetHtmlData 操作にはクリップボード機能が必要です。ドキュメントでコピー操作が許可されていることを確認してください。ドキュメントでコピー操作を許可するには、file/info 操作の user_acl.copy1 に設定します。

async function example() {
 await instance.ready();
 const app = instance.Application;
 // 指定された Range オブジェクトを返します。
 const DocumentRange = await app.ActiveDocument.GetDocumentRange();
// 末尾を取得します。
  const End = await DocumentRange.End;
 // 末尾に移動します。
  await app.ActiveDocument.Range(0, 1).SetRange({
   Start: End,
    End: End,
 });
}

このようにして、ドキュメント A のコンテンツがドキュメント B の末尾に追加されます。このソリューションを使用して、フロントエンドでドキュメントをマージすることもできます。