precisa de código vba para apagar todo o código depois de executar todo o código

-3

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.

Milton
fonte

Respostas:

0

Se você precisar salvar sem macro, use o formato .xlsx em vez do formato .xlsm :

Sub qwerty()
    Dim s As String
    s = Replace(ActiveWorkbook.FullName, "xlsm", "xlsx")
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=s, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Application.Quit
End Sub
Estudante de Gary
fonte