Peter는 정기적으로 마스터 워크 시트를 새 통합 문서의 사본에 복사해야합니다. 그는 VBA로 잘 할 수 있습니다. 그러나 그가 복사하는 워크 시트에는 연결된 코드가 있으며 코드도 복사됩니다.

Peter는 사본에있는 코드를 원하지 않지만 원본에 그대로두기를 원합니다. 그는 매크로에 방금 복사 한 워크 시트의 워크 시트 코드를 삭제할 수있는 방법이 있는지 궁금합니다.

이 작업을 수행하는 방법은 완성 된 통합 문서 (복사중인 통합 문서)의 모양에 따라 다릅니다. 주로 완성 된 통합 문서에 매크로 (모든 매크로)가 포함됩니까? 대답이 ‘아니요’이면 매크로가 포함되어 있지 않으므로 새 통합 문서를 XLSX 형식으로 저장하여 작업을 쉽게 수행 할 수 있습니다. 이렇게하면 Excel이 모든 매크로를 자동으로 제거합니다. 통합 문서를 저장할 때 다음과 유사한 줄을 코드에 포함하여이를 수행 할 수 있습니다.

ActiveWorkbook.SaveAs FileName:="MyExcelFile.xlsx", _   FileFormat:=xlOpenXMLWorkbook

그러나 워크 시트 코드 만 제거하고 다른 매크로 코드는 그대로두고 새 통합 문서를 저장하려는 경우 다른 접근 방식을 취해야합니다. 이 경우 매크로에 다음 줄을 포함 할 수 있습니다.

ActiveWorkbook.VBProject.VBComponents("Sheet1")

여기에서는 새 통합 문서가 활성 통합 문서이고 삭제할 코드가있는 워크 시트의 이름이 Sheet1이라고 가정합니다. 다음 줄을 사용하여 동일한 작업을 수행 할 수도 있습니다.

wsName = ActiveSheet.CodeName With ThisWorkbook.VBProject.VBComponents(wsName).CodeModule     .DeleteLines 1, .CountOfLines End With

wsName은 문자열 변수로 선언되어야합니다.

프로그래밍 방식으로 다른 코드 모듈에 영향을 줄 수있는 다른 방법의 경우 Chip Pearson의 우수한 정보를 참조하면 잘못 될 수 없습니다.

http://cpearson.com/excel/vbe.aspx

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (7612)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.