0

いくつかの FormFields を含む Microsoft Word 2010 テンプレート ファイルがあります。プロジェクト名、プロジェクトの場所、およびプロジェクト番号の上部に 3 つあります。FileSave 組み込みマクロをインターセプトし、上記の 3 つのフィールドの値を連結して、名前を付けて保存ダイアログでファイル名を提案するつもりです。私のコードは次のもので構成されています:

Sub FileSave()

    With Dialogs(wdDialogFileSaveAs)
        .Name = ThisDocument.FormFields("ProjectNumber").Result & _
                ThisDocument.FormFields("ProjectName").Result & _
                ThisDocument.FormFields("ProjectLocation").Result
        .Show
    End With

End Sub

3 つのフィールドに入力して ctrl+s を押すと、名前を付けて保存ダイアログが実際に表示されますが、ファイル名は空白です。イミディエイト ウィンドウでさらに調査すると、これらのフィールドを参照できますが、それらの Result プロパティは常に空の文字列を返します。したがって、ダイアログのファイル名は空白に見えます。Boolean プロパティ、Type プロパティなどを参照して、イミディエイト ウィンドウを介して MsgBox に表示できますが、Result に対して何も返すことができません。なぜこれが考えられるのか誰にも分かりますか?

4

1 に答える 1

1

したがって、この質問に対する答えは次のようになったようです。私はまだテンプレート ドキュメント内で作業していましたが、マクロ有効ドキュメントではありませんでした。テンプレートの場合、マクロの実行中、ドキュメントのフィールドには値が含まれません。マクロが FormFields に入力された値を使用できるようにするには、それがテンプレートではなくドキュメントである必要があります。これが、この質問への回答を探している人の助けになることを願っています。

于 2012-11-20T20:02:33.187 に答える