我创建了一个包含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
答案 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方法来实现。