VBA를 사용하여 Excel 파일에서 모든 VBA 모듈을 제거 할 수 있습니까?엑셀 파일에서 모든 VBA 모듈을 제거 하시겠습니까?
모듈이 존재하는 경우 모듈의 이름은이 스크립트를 실행하기 전에 알 수 없습니다.
VBA를 사용하여 Excel 파일에서 모든 VBA 모듈을 제거 할 수 있습니까?엑셀 파일에서 모든 VBA 모듈을 제거 하시겠습니까?
모듈이 존재하는 경우 모듈의 이름은이 스크립트를 실행하기 전에 알 수 없습니다.
분명히 할 수 있습니다. 다음 코드는 일을 할 것입니다 :
Sub compact_code()
On Error Resume Next
Dim Element As Object
For Each Element In ActiveWorkbook.VBProject.VBComponents
ActiveWorkbook.VBProject.VBComponents.Remove Element
Next
End Sub
이 ClassModules 및 사용자 정의 폼을 포함한 모든 모듈을 제거하지만, 모든 오브젝트 모듈 (시트, 통합 문서)를 유지합니다.
On Error Resume Next
With wbk.VBProject
For x = .VBComponents.Count To 1 Step -1
If .VBComponents(x).Type = vbext_ct_StdModule Then
.VBComponents.Remove .VBComponents(x)
End If
Next x
End With
On Error GoTo 0
표준 코드 모듈 만 제거하면 안 될까요? –
재미있는 것은이 상황에서 어떤 삭제 프로세스를 실행할 때 처음 할 때 일반적으로 필요한 루핑되는 마지막에서 반복 할 필요가 없다라는 것이다 : 여기 –
다른 통합 문서의 코드를 변경하려는 경우 'ActiveWorkbook'에 대한 참조를 'ThisWorkbook'또는 특정 통합 문서 참조로 변경합니다. – pablete
@pablete는 템플릿에 이것을 가지고있을 때주의하십시오.'ThisWorkbook'은 프로젝트 자체가 아니라 템플릿을 참조 할 것입니다. 때때로 까다로울 수 있습니다. – Mafii