Pergunta

Como posso programaticamente remover uma senha (conhecido) a partir de um projeto do Excel VBA?

Para ser claro:. Eu quero remover a senha do projeto VBA, não o livro ou qualquer planilhas

Foi útil?

Solução

Isto tem um método simples usando SendKeys para desproteger o projeto VBA. Isto levá-lo para o projeto, então você teria que continuar usando SendKeys para descobrir uma maneira de remover a proteção por senha: http://www.pcreview.co.uk/forums/thread-989191.php

E aqui está um que usa um método mais avançado, um pouco mais de confiança para desproteger. Mais uma vez, ele só irá desbloquear o projeto VB para você. http://www.ozgrid.com/forum/showthread.php?t = 13006 & page = 2

Eu não tentei qualquer método, mas isso pode poupar algum tempo se é o que você precisa fazer ...

Outras dicas

Outra forma de remover a senha do projeto VBA é;

  • arquivo xls aberto com um editor hexadecimal. (Ie. Hex Editar http://www.hexedit.com/ )
  • Procure DPB
  • Substitua DPB para DPx
  • Salve o arquivo.
  • Abrir arquivo em Excel.
  • Clique em "Sim" se tiver qualquer caixa de mensagem.
  • Definir nova senha de propriedades do projeto VBA.
  • Feche e arquivo novamente aberta, em seguida, digite sua nova senha para desproteger.

UPDATE: para o Excel 2010 (Works para MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),

  • Abra o arquivo XLSX com 7zip

Se pasta de trabalho está protegida:

  • Procure a pasta xl
  • Se a pasta de trabalho está protegido, clique workbook.xml direito e selecione Editar
  • Encontre a parte <workbookProtection workbookPassword="XXXX" lockStructure="1"/> (XXXX é sua senha criptografada)
  • parte Remove XXXX. (Ie. <workbookProtection workbookPassword="" lockStructure="1"/>)
  • Salve o arquivo.
  • Quando 7zip pede-lhe para atualizar o arquivo, dizer Sim .
  • Fechar 7zip e re-aberto seu XLSX.
  • Clique em Proteger pasta de trabalho sobre a revisão guia .
  • Opcional:. Salvar seu arquivo

Se planilhas são protegidos:

  • Procure a pasta xl/worksheets/.
  • clique com o botão direito do Sheet1.xml, sheet2.xml, etc e selecione Editar .
  • Encontre a parte <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • Remova a senha criptografada (ie. <sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • Salve o arquivo.
  • Quando 7zip pede-lhe para atualizar o arquivo, dizer Sim .
  • Fechar 7zip e re-aberto seu XLSX.
  • Clique em desproteger folha na revisão .
  • Opcional:. Salvar seu arquivo

Eu encontrei outra maneira de resolver este a senha evitar de Projeto VBA, com a perder a senha excel.

uso Hex-editor XVI32 para o processo

Se o tipo de arquivo é arquivos xlsm:

  1. Abra o arquivo XLSM com 7-Zip (clique direito -> 7-Zip -> Abrir arquivo).
  2. Copie o xl / arquivo vbaProject.bin fora do arquivo (você pode arrastar e soltar a partir de 7-Zip), não feche 7-Zip
  3. Abra o arquivo vbaProject.bin com HexEdit
  4. Pesquise "DPB =" e substituí-la por "DPx ="
  5. Salve o arquivo
  6. Copie este arquivo de volta para 7-Zip (novamente, arrastar e soltar obras)
  7. Abra o arquivo XLSX no Excel, se for solicitado a "Continuar carregar projecto", clique em Sim. Se solicitado com erros, clique em OK.
  8. Pressione Alt + F11 para abrir o editor VBA.
  9. Embora imprensa que irá mostrar erro “Erro inesperado (40230)”, basta clicar em OK (6 ou 7 vezes) até que ele vai embora.
  10. Em seguida, ele irá abrir automaticamente

Eu encontrei este aqui que descreve como definir a senha do projeto VBA. Você deve ser capaz de modificá-lo para retirar a senha do projeto VBA.

Este não usa SendKeys.

Deixe-me saber se isso ajuda! JFV

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top