このトピックでは、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.copy
を 1
に設定します。
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 の末尾に追加されます。このソリューションを使用して、フロントエンドでドキュメントをマージすることもできます。