매크로 내에서 매크로 삭제 (Microsoft Excel)
Gene은 매크로 내에서 매크로를 삭제하는 방법을 요청했습니다. 그는 매크로를 사용하여 http://www.formville.com/C17_free-purchase-orders.html [구매 주문]을 작성하는 큰 워크 시트를 가지고 있습니다.
마지막 단계로 매크로는 완료된 구매 주문에 더 이상 필요하지 않은 원본 데이터를 삭제합니다. 이 축소 된 통합 문서는 새 이름으로 저장됩니다. Gene은 SelectionChange 이벤트 핸들러에 저장된 매크로를 삭제하기 위해 저장 직전에 매크로가 필요합니다.
이를 처리 할 수있는 몇 가지 방법이 있습니다. 한 가지 방법은 삭제를 모두 함께 수행하지 않는 것입니다. 대신 매크로에서 새 통합 문서를 만든 다음 필요한 데이터의 복사본을 해당 통합 문서로 전송하십시오. 그런 다음 새 통합 문서의 데이터를 조각화하여 구매 주문으로 저장할 수 있습니다. 기존 통합 문서의 매크로는 프로세스 중에 새 통합 문서에 복사되지 않으므로 삭제에 대해 걱정할 필요가 없습니다.
현재 통합 문서의 모든 워크 시트를 새 통합 문서로 복사하는 것은 매우 쉽습니다. 다음 매크로는 수행 방법을 보여줍니다.
Sub CopyThisWorkbook() Dim CopiedWB As String CopiedWB = "Copy of " & ActiveWorkbook.Name Sheets.Copy ActiveWorkbook.SaveAs Filename:=CopiedWB, _ FileFormat:=xlNormal End Sub
Copy 메서드를 Sheets 컬렉션에 적용하면 활성 통합 문서의 모든 워크 시트가 새 통합 문서에 복사되고 새 통합 문서가 활성화됩니다. 마지막 명령은 새 통합 문서를 새 이름으로 저장합니다.
물론 일부 매크로가 새 통합 문서에 있어야하지만 전부가 아닌 경우 (예 : SelectionChange 이벤트 처리기), 필요하지 않은 매크로를 삭제하고 새 통합 문서에 저장하는 것이 가장 좋습니다. 이름. 다음 예제 매크로는 Sheet1의 워크 시트 코드에서 SelectionChange 이벤트 처리기를 삭제하는 방법을 보여줍니다.
Sub DeleteProcedure() Dim VBCodeMod As CodeModule Dim StartLine As Long Dim HowManyLines As Long Set VBCodeMod = ThisWorkbook.VBProject.VBComponents("Sheet1").CodeModule With VBCodeMod StartLine = .ProcStartLine("Worksheet_SelectionChange", _ vbext_pk_Proc) HowManyLines = .ProcCountLines("Worksheet_SelectionChange", _ vbext_pk_Proc) .DeleteLines StartLine, HowManyLines End With End Sub
매크로가 완료된 후 통합 문서를 저장할 수 있으며 원하는 매크로는 저장된 파일에 없습니다. 이 매크로는 Chip Pearson의 웹 사이트에서 제공하는 정보를 채택하여이 기술에 대한 추가 정보가 필요한 경우 참조해야합니다.
http://www.cpearson.com/excel/vbe.aspx
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (3073)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다.