動的OfficeオープンXML文書を作成:オープンのすべてのフィールドを更新

StackOverflow https://stackoverflow.com/questions/529607

  •  22-08-2019
  •  | 
  •  

質問

私はプログラムでOfficeオープンXMLドキュメント(Word 2007の形式)を生成しています、と私は生成するドキュメントが最初にWordで開いたときに更新されたすべてのフィールドを持っていると思います。

私はしばらく前にこれを調査すると、

、これを行うための唯一の方法は、文書が開いたときにVBスクリプトを実行することでした。しかし、VBスクリプトは、デフォルトでは実行されません、これはユーザーを動作させるためには、「選択-すべてを、F9」を行うためにユーザに尋ねるよりも複雑である、スクリプトを許可する必要があり、そう、これは目的を敗北します。

任意の提案?

アレックス

役に立ちましたか?

解決

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

他のヒント

VBスクリプトせずにこれを行う方法があります。

あなたはダーティとしてフィールドを設定することができ、それが文書を開いたときに更新されます。

<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>

しかし、これらの両方の「この文書は、他のファイルを参照してもよいのフィールドが含まれています。あなたは、この文書内のフィールドを更新しますか?」という文書が開かれたときに表示される確認ダイアログの欠点を持っている。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top