2012-08-09 2 views
2

Excel 2007에서 실행을 마치고 Excel을 닫을 때 매크로 자체를 삭제하려고하는 매크로를 만들려고합니다. 내가 이것을하고 싶은 이유는 워크 북을 다른 사람들에게 보냈기 때문에 매크로에 관한 보안 경고를 보지 않기 위해서입니다. 이 통합 문서의 여러 버전이 생성되므로 수동으로 매크로를 실행하고 제거하지 않아도됩니다.Excel 2007에서 자동 삭제 매크로 만들기

다음 코드를 시도했습니다. 오류없이 실행되지만 실제로 매크로는 삭제되지 않습니다. "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 
+3

왜 매크로를 다른 통합 문서로 이동하고 보내고있는 통합 문서에서 작동하게하는 것이 좋을까요? –

+0

또는 매크로에서 작업중인 통합 문서의 복사본을 만들고, 복사본에서 코드를 삭제하고, 저장하고, 닫은 후 보낼 수 있습니다. –

+0

이 링크보기 http://stackoverflow.com/questions/11680411/delete-own-code-in-vba/11680865#11680865 –

답변

1

매크로를 다른 통합 문서로 이동하고 보내고있는 통합 문서에서 작동하게하는 것이 어떨까요?