Retirar Senha Das Planilhas

You might also like

You are on page 1of 2

Option Explicit Option Compare Text '=============================================================================== == ' Copyright Smix Informtica (suporte@simix.com.

br) ' Modificado: 13/11/2013 11:45:18 '=============================================================================== == Dim Dim Dim Dim Dim Dim WithEvents clsInterface As smxScriptInput.Interface objExcel As Object objPlan As Object sPasta As String sPastaTemp As String sSenha As String

Sub Main If Not s_SelecionarOpcoes() Then Exit Sub Debug.Clear Set objExcel = CreateObject("Excel.Application") sPastaTemp = sPasta & "Temp\" If Not Fso.FolderExists(sPastaTemp) Then Fso.CreateFolder sPastaTemp s_ProcessarPasta Debug.Print Debug.Print "Concludo!" gtLimpeza: On Error Resume Next objExcel.Quit Set objExcel = Nothing Exit Sub errMain: Debug.Print "Cancelado: " & Err.Description MsgBox Err.Description, vbExclamation, Fso.GetBaseName(NomeArquivo) GoTo gtLimpeza End Sub Private Sub s_ProcessarPasta() Dim sArquivo As String Debug.Print "Verificando pasta..." sArquivo = Dir(sPasta & "*.xlsx") While sArquivo <> "" s_ProcessarArquivo sPasta & sArquivo sArquivo = Dir Wend End Sub Private Sub s_ProcessarArquivo(ByVal sArquivo As String) On Error GoTo errProcessarArquivo Dim objPasta As Object Dim sArquivoTemp As String

Debug.Print Fso.GetBaseName(sArquivo) & "..." sArquivoTemp = sPastaTemp & Fso.GetFileName(sArquivo) If Fso.FileExists(sArquivoTemp) Then Fso.DeleteFile sArquivoTemp Set objPasta = objExcel.Workbooks.Open(Filename:=sArquivo, Password:=sSenha) objPasta.SaveAs Filename:=sArquivoTemp, Password:="", WriteResPassword:="" objPasta.Close SaveChanges:=False Set objPasta = Nothing Fso.CopyFile sArquivoTemp, sArquivo Exit Sub errProcessarArquivo: MsgBox "Erro ao processar o arquivo " & Fso.GetFileName(sArquivo) & vbNewLin e & "Talvez ele esteja com outra senha!" & vbNewLine & Err.Description, vbExclam ation End Sub Private Function s_SelecionarOpcoes() As Boolean Set clsInterface = New smxScriptInput.Interface With clsInterface.Campos .Add "Pasta", etdPasta, "Pasta", , , , True .Add "Senha", etdTexto, "Senha" End With clsInterface.Caption = Fso.GetBaseName(NomeArquivo) clsInterface.Show If clsInterface.Ok = False Then Set clsInterface = Nothing Exit Function End If sPasta = clsInterface.Campos("Pasta").Conteudo sSenha = clsInterface.Campos("Senha").Conteudo Set clsInterface = Nothing s_SelecionarOpcoes = True End Function

You might also like