Microsoft Excel에서 VBA를 사용하여 모듈에서 프로 시저를 삭제
이 기사에서는 모듈에서 다른 매크로를 삭제하는 매크로를 만듭니다.
삭제할 샘플 매크로로 SampleProcedure를 포함하는 Module1을 사용하고 있습니다.
코드 설명
Set VBCM = WB.VBProject.VBComponents (DeleteFromModuleName) .CodeModule 위 코드는 정의 된 모듈의 객체를 생성하는 데 사용됩니다.
ProcStartLine = VBCM.ProcStartLine (ProcedureName, vbext_pk_Proc)
위의 코드는 정의 된 프로 시저의 시작 줄 번호를 가져 오는 데 사용됩니다.
ProcLineCount = VBCM.ProcCountLines (ProcedureName, vbext_pk_Proc)
위의 코드는 정의 된 프로 시저의 줄 수를 가져 오는 데 사용됩니다.
VBCM.DeleteLines ProcStartLine, ProcLineCount 위의 코드는 정의 된 프로 시저 내의 모든 줄을 삭제하는 데 사용됩니다.
아래 코드를 따르세요
Option Explicit Sub DeleteProcedureCode(ByVal DeleteFromModuleName As String, ByVal ProcedureName As String) 'Declaring variables Dim VBCM As CodeModule, ProcStartLine As Long, ProcLineCount As Long Dim WB As Workbook On Error Resume Next 'Creating object of active workbook Set WB = ActiveWorkbook 'Creating object of workbook module Set VBCM = WB.VBProject.VBComponents(DeleteFromModuleName).CodeModule 'Checking whether the procedure exist in the codemodule If Not VBCM Is Nothing Then ProcStartLine = 0 'Function assigning the line no. of starting line for the procedure ProcStartLine = VBCM.ProcStartLine(ProcedureName, vbext_pk_Proc) If ProcStartLine > 0 Then 'Function assign the no. of lines in the procedure ProcLineCount = VBCM.ProcCountLines(ProcedureName, vbext_pk_Proc) 'Delete all the lines in the procedure VBCM.DeleteLines ProcStartLine, ProcLineCount End If Set VBCM = Nothing End If On Error GoTo 0 End Sub Sub CallingProcedure() 'Declaring variables Dim ModuleName, ProcedureName As String 'Getting value for module and procedure name from textboxes ModuleName = Sheet1.TextBox1.Value ProcedureName = Sheet1.TextBox2.Value 'Calling DeleteProcedureCode macro DeleteProcedureCode ModuleName, ProcedureName End Sub
이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.
여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요