在Excel 2007中创建自删除宏

时间:2012-08-09 17:39:35

标签: excel-vba excel-2007 vba excel

我正在尝试在Excel 2007中创建一个宏,它将在完成运行并关闭Excel时自行删除。我想这样做的原因是我将把工作簿发送给其他人,我不希望他们看到关于宏的安全警告。将生成此工作簿的多个版本,因此我不想手动运行并删除每个版本的宏。

我尝试过以下代码。它运行没有错误,但实际上并没有删除宏。如果我删除“ActiveWorkbook.Close SaveChanges:= True”这一行,宏将被删除,但这会提示用户在Excel关闭时保存工作簿。没有用户互动,有没有办法做到这一点?

Dim ActiveComponent
Set ActiveComponent = ActiveWorkbook.VBProject.VBComponents("ModuleName")
ActiveWorkbook.VBProject.VBComponents.Remove (ActiveComponent)
ActiveWorkbook.Save
Application.Quit
ActiveWorkbook.Close SaveChanges:=True

1 个答案:

答案 0 :(得分:1)

为什么不将宏移动到另一个工作簿并让它们对您发送的工作簿进行操作?