Eu preciso de um código vba no Excel 2007, que irá remover todo o código vba depois de executar toda a função. Eu estou desenhando um exemplo aqui:
Option Explicit
Private Sub Workbook_Open()
'Runs a macro 10 seconds after Excel is opened
Call SaveBook
Application.OnTime Now + TimeValue("00:00:9"), "ThisWorkbook.SaveBook"
Application.OnTime Now + TimeValue("00:00:10"), "ThisWorkbook.Delete"
Application.OnTime Now + TimeValue("00:00:11"), "ThisWorkbook.Main"
End Sub
Sub SaveBook()
ActiveWorkbook.Save
End Sub
Sub delete()
Dim NM As String
Dim CTS As Integer
Dim CNT2 As Integer
Dim CNT3 As Integer
CNT3 = 1
CNT2 = 1
CTS = Sheets.Count
Do Until CNT2 = CTS + 1
NM = Sheets(CNT3).Name
If Name = "Report" Then
Range("A1").Select
CNT3 = CNT3 + 1
Else
Sheets(NM).Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.delete
Application.DisplayAlerts = True
End If
CNT2 = CNT2 + 1
Loop
End Sub
Sub Main()
RemoveCodeFrom "Sheet3"
End Sub
Private Sub RemoveLinesFrom(vbCompName As String)
Dim vbProj As VBIDE.VBProject
Dim vbComp As VBIDE.VBComponent
Set vbProj = ThisWorkbook.VBProject
For Each vbComp In vbProj.VBComponents
If StrComp(vbComp.Name, vbCompName, vbTextCompare) = 0 Then
Dim CodeMod As VBIDE.CodeModule
Set CodeMod = vbComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
End If
Next
End Sub
Aqui, tudo está bem, mas o que eu preciso é que, aos 11 segundos, todo o código vba seja apagado. É possível. Por favor me ajude. Eu preciso do código para fins de segurança do meu arquivo. Quero proteger o acesso indesejado ao meu arquivo.