在没有VBA代码的情况下将文档另存为.docx

时间:2013-01-23 11:41:25

标签: vba word-vba

我创建了一个包含VBA代码和userform的模板。我把它保存为.dotm(启用宏的模板)。

我想打开模板,使用界面在文档中进行更改,然后将文档保存为.docx,而不引用模板/代码。当我打开docx并打开visual basic editor时,我找到了代码。

这是我退出界面的代码

Private Sub Sair_Click()
ActiveDocument.Bookmarks("NomeProj").Range.text = Nomeproj.Value
ActiveDocument.TablesOfContents(1).Update
Application.Quit

End Sub

2 个答案:

答案 0 :(得分:1)

ActiveDocument.SaveAs FileName:="Test.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="",
AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False

 ActiveDocument.Convert 'Required if not Word 2007 format

编辑:

也存储了VBA代码。如果您想阻止这种情况,您可以做的最好的事情是将文本移动到新文档中并保存此文档 简单的例子,基于书签的存储:

Option Explicit

Sub Save_Doc_NoMacros()

Dim ThisDoc         As Word.Document
Dim oDoc            As Word.Document


Set ThisDoc = ActiveDocument

ThisDoc.Bookmarks("Bookmark1").Select
Selection.Copy
Set oDoc = Documents.Add
Selection.Paste

oDoc.SaveAs FileName:="U:/Text.docx", FileFormat:=wdFormatDocument
oDoc.Close

End Sub

答案 1 :(得分:0)

docx文件不能包含任何VBA代码。期。但是,每个docx文件都可以访问其附加到的任何模板中的任何代码。默认情况下,当您从模板创建新文档时,该文档将附加到该模板。如果您不希望生成的docx文件对其附件模板中的VBA有任何进一步的访问权限,请将其附加到合适的dotx模板中。假设您具有这样的dotx模板,则可以通过Developer | Document Template> Templates> Attach或通过AttachedTemplate方法来实现。