2008-11-07 86 views
38

¿Cómo puedo eliminar mediante programación una contraseña (conocida) de un proyecto de Excel VBA?¿Cómo elimino la contraseña de un proyecto de VBA?

Para ser claros: Quiero eliminar la contraseña del Proyecto VBA, no el libro de trabajo ni ninguna hoja de trabajo.

+0

hecho un poco de google - parece que no hay manera directa - usted tiene que utilizar un SendKeys kludge [http://www.mrexcel.com/forum/showthread.php?t = 49034] (http: //www.mrexcel.com/forum/showthread.php? t = 49034) –

+3

La respuesta marcada NO es la mejor ... la mejor respuesta ha venido años después por Uygar Y –

+1

@JeremyThompson - esa respuesta no responde a esta pregunta. Explica cómo eliminar manualmente una contraseña desconocida. Esta pregunta pregunta cómo _programar_motgicamente una _conocida_ contraseña. –

Respuesta

9

Tiene un método simple que usa SendKeys para desproteger el proyecto de VBA. Esto se conseguiría en el proyecto, por lo que tendría que continuar en el uso de SendKeys para encontrar una manera de eliminar la protección por contraseña: http://www.pcreview.co.uk/forums/thread-989191.php

Y aquí es uno que utiliza un método más avanzado, algo más fiable para la eliminación de la protección . Nuevamente, solo desbloqueará el proyecto VB por usted. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2

No he probado uno u otro método, pero esto puede ahorrar algo de tiempo si es lo que hay que hacer ...

+1

Tengo el código. ¿Qué hacer con? No puedo abrir VBEditor, ni ejecutar algo, porque el proyecto está bloqueado, por lo tanto, ¿no es posible ejecutar ningún script nuevo? – serhio

+0

+ 1 :) @serhio: Otra forma de utilizar [APIS] (http://stackoverflow.com/questions/16174469/unprotect-vbproject-from-vb-code/16176557#16176557) –

+1

[Respuesta de Uygar Y a continuación] (https : //stackoverflow.com/a/7835861/3358272) sigue siendo una respuesta relevante que funciona con Office 2016. El hecho de que funcione completamente y socava fácilmente cualquier expectativa que pueda tener sobre el uso de contraseñas de Office para proteger documentos. Nunca he tenido mucha fe en ellos, asumiendo que podrían ser desactivados con horas de trabajo en la computadora, pero su respuesta funcionó para mí con dos * minutos * de trabajo. Las contraseñas mantienen a la persona honesta y sin conocimientos informáticos, pero en su mayoría es aceite de serpiente, en mi humilde opinión. – r2evans

2

Encontré este here que describe cómo configurar la contraseña del proyecto VBA. Debería poder modificarlo para desarmar la contraseña del proyecto de VBA.

Éste no usa SendKeys.

¡Avíseme si esto es útil! JFV

98

Otra manera de eliminar VBA proyecto es la contraseña;

  • Abra el archivo xls con un editor hexadecimal. (es decir. Hex Editar http://www.hexedit.com/)
  • Buscar DPB
  • Reemplazar DPB a DPx
  • Guardar archivo.
  • Abrir archivo en Excel.
  • Haga clic en "Sí" si aparece un cuadro de mensaje.
  • Establezca una nueva contraseña desde Propiedades del proyecto VBA.
  • Cierre y abra de nuevo el archivo, luego escriba su nueva contraseña para desproteger.

ACTUALIZACIÓN: Para Excel 2010 (Obras para MS Office Pro Plus 2010 [14.0.6023.1000 64 bits]),

  • Abrir el archivo XLSX con 7zip

si el libro está protegido:

  • Navegue en la carpeta xl
  • Si el libro está protegido, haga clic derecho y seleccione workbook.xmlEditar
  • Encuentra la porción <workbookProtection workbookPassword="XXXX" lockStructure="1"/> (XXXX es su contraseña encriptada)
  • Retire XXXX parte. (es decir, <workbookProtection workbookPassword="" lockStructure="1"/>)
  • Guarde el archivo.
  • Cuando 7zip le pide que actualice el archivo, diga .
  • Cierre 7zip y vuelva a abrir su XLSX.
  • Haga clic en Protect Workbook en Revise tab.
  • Opcional: Guarde su archivo.

Si las hojas de trabajo están protegidos:

  • Examinar para xl/worksheets/ carpeta.
  • Haga clic con el botón derecho en Sheet1.xml, sheet2.xml, etc. y seleccione Editar.
  • Encuentra la porción <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • Retire la contraseña encriptada (es decir. <sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • Guarde el archivo.
  • Cuando 7zip le pide que actualice el archivo, diga .
  • Cierre 7zip y vuelva a abrir su XLSX.
  • Haga clic en Desproteger hoja en revisión tab.
  • Opcional: Guarde su archivo.
+0

Esto funcionó para mí. También tuve que hacer clic en "Ok" varias veces al ver el código VBA. –

+6

Y una adición más a la respuesta original: si tiene algún archivo xlsx, ábralo en Excel y "Guardar como" xls. Y luego siga los pasos anteriores ... –

+6

Si tiene un archivo '.xlsx' también puede descomprimirlo, hacer la búsqueda/reemplazo en el archivo' xl/vbaProject.bin' y luego volver a comprimirlo. –

2

Encontré otra manera de solucionar este problema para evitar la contraseña de VBA Project, sin perder la contraseña de Excel.

uso editor hexadecimal XVI32 para el proceso

si el tipo de archivo es archivos XLSM:

  1. Abrir el archivo XLSM con 7-Zip (click derecho -> 7-Zip -> Archivo abierto).
  2. Copiar el xl/VBAProject.bin presentar fuera del archivo (que puede arrastrar y soltar desde el 7-Zip), no cierre 7-Zip
  3. Abrir el archivo VBAProject.bin con HexEdit
  4. Buscar "DPB =" y sustituirla por "DPx ="
  5. Guardar el archivo
  6. Copia el archivo de nuevo en 7-Zip (de nuevo, arrastre y obras gota)
  7. Abrir el archivo XLSX en Excel, si se le pide "Continuar cargando proyecto", haga clic en Sí. Si se le solicitan los errores, haga clic en Aceptar.
  8. Presione Alt + F11 para abrir el editor de VBA.
  9. Mientras presiona, se mostrará el error "Error inesperado (40230)", simplemente haga clic en Aceptar (6 o 7 veces) hasta que desaparezca.
  10. A continuación, se abrirá automáticamente
Cuestiones relacionadas