1

フォーム フィールド用に保護された Microsoft Word マクロ有効テンプレートとして保存された Word 2010 ドキュメントで、次の VB スクリプトを使用しています。

Sub SaveWithBkMarkedText()
    'This code saves the Word file using the bookmark value for Maintenance Memo.
   'The file is also saved to a folder in KnowHow for files related to this template.
   Dim FileName As String
   FileName = ActiveDocument.Bookmarks("mmn").Range.Text
   'Use the C:\ code when saving the file locally
   ActiveDocument.SaveAs "C:\Download\TemplatesFolders\" & FileName & ".doc"
   MsgBox "Your Draft has been saved to KnowHow's Release Documentation site." & _
      &vbCrLf & "The file name uses the MM that you included earlier: " & FileName, _
       vbInformation + vbOKOnly, "Draft Saved to Minerva"
End Sub

FORMTEXT レガシー フォーム オブジェクトのフォーム フィールドに入力された値は、ブックマークをファイル名として使用します。たとえば、ユーザーが値として 12345 を入力すると、ファイルはこの値をファイル名として使用して保存されます: 12345.doc。これは、ファイル名が FORMTEXT 12345.doc でプレフィックスされる 1 週間前までは正常に機能していました。別のマシンの古いバージョンの Word でこの同じ VB スクリプトを使用してみましたが、スクリプトを最初から追加した新しいテンプレートから作成しましたが、そのマシンでも同じ問題が発生しています。これより前は、問題なくテンプレートを更新できましたが、今では、ファイル全体に影響を与えずにこの 1 つの FORMTEXT フィールドを更新することはできません。Bookmark 値をファイル名として使用しないテンプレート内の他の FORMTEXT を更新でき、それは機能します。また、ブックマーク参照を別の FORMTEXT オブジェクトに変更し、ファイルを .DOCX として保存しようとしましたが、関係なく同じ問題が発生します。ファイル名に FORMTEXT が表示される原因は何ですか?

4

4 に答える 4

0

これは古いスレッドですが、同じ問題に遭遇したことを知っておいてください。回避策として... FORMTEXT を null "" に置き換えます。OPの場合:

Dim FileName As String
   FileName = ActiveDocument.Bookmarks("mmn").Range.Text 
   FileName = Replace(FileName, "FORMTEXT ", "") 

問題またはエレガントの「修正」ではありませんが、機能します。

于 2015-05-14T05:58:36.500 に答える