Patrick은 매크로를 작성하고 있으며 특정 만료 날짜에 도달하면 매크로가 스스로 삭제되기를 원합니다. 이 작업에 접근 할 수있는 몇 가지 방법이 있습니다. 먼저 다음과 같은 방식으로 특정 날짜 이전에만 작동하는 매크로를 작성할 수 있습니다.

Sub MyMacro()



ExpirationDate = #6/1/2013#     If Now() < ExpirationDate Then

'Rest of macro goes here

End if End Sub

아이디어는 (이 경우) 현재 날짜가 2013 년 6 월 1 일 이전이면 매크로의 본문이 실행된다는 것입니다. 6 월 1 일 이후이면 매크로가 실행되지 않습니다. 물론이 방법은 실제로 매크로를 삭제하지 않습니다. 특정 날짜 이전에 매크로가 실행되고 있는지 확인하기 만하면됩니다.

실제로 매크로 코드를 제거하려면 다른 접근 방식을 취해야합니다.

Private Sub Workbook_Open()

Dim VBComp As VBIDE.VBComponent     Dim VBComps As VBIDE.VBComponents

'Delete if Past Date     If Date >= #6/1/2013# Then         Set VBComps = ActiveWorkbook.VBProject.VBComponents

For Each VBComp In VBComps             Select Case VBComp.Type                 Case vbext_ct_StdModule, vbext_ct_MSForm, _                   vbext_ct_ClassModule                     VBComps.Remove VBComp                 Case Else                     With VBComp.CodeModule                         .DeleteLines 1, .CountOfLines                     End With             End Select         Next VBComp     End If

Set VBComps = Nothing     Set VBComp = Nothing End Sub

이 코드는 원래 Chip Pearson이 작성한 매크로에서 수정되었으며 다음 주소의 그의 사이트에서 사용할 수 있습니다.

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

매크로가 작동하도록하려면 Microsoft Visual Basic for Applications 확장성에 대한 참조가 있는지 확인해야합니다. (VB 편집기에서 도구 | 참조를 선택한 다음 사용 가능한 참조에서 Microsoft Visual Basic for Applications Extensibility를 선택하면됩니다.)

통합 문서가 열릴 때 매크로가 실행되고 날짜가 2013 년 6 월 1 일보다 크거나 같으면 VBProject의 각 구성 요소가 삭제됩니다. 이것은 매크로가 매우 강력하다는 것을 의미합니다. 단일 프로시 저나 모듈뿐만 아니라 모든 것을 삭제하기 때문입니다.

물론이 매크로에는 몇 가지 유의해야 할 사항이 있습니다.

첫째, 사용자가 통합 문서를 열 때 매크로를 사용하지 않도록 선택하면이 코드가 실행되지 않고 매크로가 삭제되지 않습니다.

둘째, 이러한 방식으로 매크로를 삭제하면 통합 문서가 변경됩니다. 즉, 통합 문서가 닫히면 변경 내용을 저장할 것인지 묻는 메시지가 표시됩니다. 그렇지 않으면 삭제 내용이 저장되지 않으며 다음에 통합 문서를 열 때 매크로가 다시 실행됩니다.

_ 참고 : _

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

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

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

이 팁 (3123)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Self-Deleting_Macros [Self-Deleting Macros].