我用VBA代码和用户表单创建了一个模板。我将它保存为.dotm (启用宏的模板)。
我想打开模板,使用界面在文档中进行更改,然后将文档另存为.docx,而不引用模板/代码。当我打开docx并打开visual basic编辑器时,我在那里找到了代码。
这是我从界面退出的代码
Private Sub Sair_Click()
ActiveDocument.Bookmarks("NomeProj").Range.text = Nomeproj.Value
ActiveDocument.TablesOfContents(1).Update
Application.Quit
End Sub
发布于 2013-01-23 11:51:34
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
发布于 2019-04-21 05:11:34
docx文件不能包含任何VBA代码。句号。但是,每个docx文件都可以访问它所附加到的模板中的任何代码。默认情况下,从模板创建新文档时,该文档将附加到该模板。如果不希望生成的docx文件进一步访问其附加模板中的VBA,请将其附加到合适的dotx模板。假设您有这样一个dotx模板,您可以通过Developer|Document Template>Templates>Attach或AttachedTemplate方法来完成。
https://stackoverflow.com/questions/14478865
复制