3

Office Open XML ドキュメント (Word 2007 形式) をプログラムで生成しており、生成したドキュメントを Word で最初に開いたときにすべてのフィールドを更新したいと考えています。

少し前にこれを調査したとき、これを行う唯一の方法は、ドキュメントを開いたときに VB スクリプトを実行することでした。しかし、VB スクリプトはデフォルトでは実行されません。これを機能させるには、ユーザーがスクリプトを承認する必要があります。これは、ユーザーに「すべて選択、F9」を実行するように求めるよりも複雑であるため、これは目的に反します。

なにか提案を?

アレックス

4

2 に答える 2

8

VB Script を使用せずにこれを行う方法があります。

フィールドをダーティとして設定すると、ドキュメントを開くと更新されます。

<w:fldSimple w:instr="TOC" w:dirty="true" />

多くのフィールドがある場合は、ドキュメントを開いたときにすべてのフィールドが更新されるように、ドキュメントの設定を更新できます。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <w:updateFields w:val="true" />
</w:settings>

ただし、どちらの場合も、ドキュメントを開いたときに「このドキュメントには他のファイルを参照する可能性のあるフィールドが含まれています。このドキュメントのフィールドを更新しますか?」という確認ダイアログが表示されるという欠点があります。

于 2010-08-26T19:32:04.937 に答える
2

あなたの研究はすでに正しい結果を示しています。VBA またはその他の形式の Word オートメーションを使用することが唯一の方法です。Word にも OpenXML にも、開いたときにフィールドを自動的に更新するオプションがあります。

于 2009-02-16T23:57:21.257 に答える