Eliminarea parolei dintr-un proiect VBA (Programare, Vba, Securitate, Excel, Protecție Cu Parolă)

Barry-Jon a intrebat.

Cum pot elimina în mod programatic o parolă (cunoscută) dintr-un proiect Excel VBA?

Pentru a fi clar: vreau să elimin parola din proiectul VBA, nu din registrul de lucru sau din orice foaie de lucru.

Comentarii

  • Am făcut câteva căutări pe Google – se pare că nu există o modalitate directă – trebuie să folosiți un kludge sendkeys http://www.mrexcel.com/forum/showthread.php?t=49034 –  > Por DJ..
  • Răspunsul marcat NU este cel mai bun…. cel mai bun răspuns a venit ani mai târziu de către Uygar Y –  > Por Jeremy Thompson.
  • @JeremyThompson – acest răspuns nu răspunde la această întrebare. Acesta explică cum să eliminați manual o parolă necunoscută. Această întrebare întreabă cum să în mod programatic eliminați o cunoscută cunoscută. –  > Por Charles Wood.
  • dacă niciunul dintre răspunsurile de mai jos nu funcționează pentru dvs. încercați-l pe acesta – user2140173
  • Office 365 Excel (2016 în acest moment al acestui msg). Editare efectuată folosind Notepad++ (x64) cu plugin Hexedit (x64) 1) Folosind 7-zip, deschideți fișierul xl prin rt clk ‘ open archive * ‘ 2) Drill down în ‘ xl ‘ 3) Rt clk ‘ vbaProject.bin ‘, deschideți ca: ‘ open outside * ‘ 4) Deschideți folosind Notepadd++ 5) Comutați la HexEdit 6) Găsiți DPB= și redenumiți în DPX= 7) Salvați editarea și actualizați arhiva 8) Deschideți fișierul xl, selectați yes atunci când vi se cere să continuați (eroare xl găsit) 9) Creați un nou pwd în visual basic (se găsește sub dev/visual basic: tools/vbaproject properties) 10) Salvați și redeschideți. Viola! –  > Por turtlkky.
6 răspunsuri
Jon Fournier

Acesta are o metodă simplă care utilizează SendKeys pentru a deproteja proiectul VBA. Acest lucru v-ar intra în proiect, deci ar trebui să continuați să utilizați SendKeys pentru a găsi o modalitate de a elimina protecția prin parolă:http://www.pcreview.co.uk/forums/thread-989191.php

Și iată una care folosește o metodă mai avansată și oarecum mai fiabilă pentru desprotejare. Din nou, vă va debloca doar proiectul VB.http://www.ozgrid.com/forum/showthread.php?t=13006&page=2

Nu am încercat niciuna dintre aceste metode, dar s-ar putea să vă economisiți ceva timp, dacă este ceea ce trebuie să faceți…

Comentarii

  • Am codul. Ce să fac cu el? Nu pot să deschid VBEditor, nici să execut ceva, pentru că proiectul este blocat, deci, orice script nou nu este posibil de executat!? –  > Por serhio.
  • + 1 🙂 @serhio: O altă modalitate folosind APIS –  > Por Siddharth Rout.
  • Răspunsul lui Uygar Y de mai jos este încă un răspuns relevant care funcționează cu Office 2016. Faptul că funcționează complet și ușor subminează orice așteptări pe care le-ar putea avea cineva cu privire la utilizarea parolelor Office pentru securizarea documentelor. Nu am avut niciodată prea multă încredere în ele, presupunând că pot fi dezactivate cu ore de muncă la calculator, dar răspunsul său a funcționat pentru mine cu două minute de lucru. Parolele îi țin departe pe cei cinstiți și pe cei care nu sunt pricepuți la calculatoare, dar este mai mult ulei de șarpe, IMHO. –  > Por r2evans.
Uygar Y

O altă modalitate de a elimina parola proiectului VBA este;

  • Deschideți fișierul xls cu un editor hexagonal. (de exemplu, Hex Edit http://www.hexedit.com/)
  • Căutați DPB
  • Înlocuiți DPB cu DPx
  • Salvați fișierul.
  • Deschideți fișierul în Excel.
  • Faceți clic pe „Yes” (Da) dacă apare vreo casetă de mesaj.
  • Setați o nouă parolă din VBA Project Properties.
  • Închideți și deschideți din nou fișierul, apoi introduceți noua parolă pentru a-l deproteja.

UPDATE: Pentru Excel 2010 (Funcționează pentru MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),

  • Deschideți fișierul XLSX cu 7zip

Dacă registrul de lucru este protejat:

  • Răsfoiți dosarul xl
  • Dacă registrul de lucru este protejat, faceți clic dreapta workbook.xml și selectați Edit
  • Găsiți porțiunea <workbookProtection workbookPassword="XXXX" lockStructure="1"/> (XXXX este parola criptată)
  • Eliminați XXXX partea. (de ex. <workbookProtection workbookPassword="" lockStructure="1"/>)
  • Salvați fișierul.
  • Când 7zip vă cere să actualizați arhiva, spuneți Da.
  • Închideți 7zip și redeschideți fișierul XLSX.
  • Faceți clic pe Protect Workbook (Protejați registrul de lucru) pe Revizuire fila
  • Opțional: Salvați fișierul.

Dacă foile de lucru sunt protejate:

  • Răsfoiți la xl/worksheets/ folder.
  • Faceți clic dreapta pe Sheet1.xml, , sheet2.xml, , etc. și selectați Editare.
  • Găsiți porțiunea <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • Eliminați parola criptată (de ex. <sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • Salvați fișierul.
  • Când 7zip vă cere să actualizați arhiva, spuneți Da.
  • Închideți 7zip și redeschideți fișierul XLSX.
  • Faceți clic pe Unprotect Sheet pe Revizuiți din tabul Review.
  • Opțional: Salvați fișierul.

Comentarii

  • Și încă o completare la răspunsul inițial: Dacă aveți un fișier xlsx, deschideți-l în Excel și „Salvați ca” xls. Și apoi urmați pașii de mai sus… –  > Por Uygar Y.
  • Dacă aveți un fișier .xlsx fișier îl puteți de asemenea să îl descompuneți, să faceți căutarea/înlocuirea pe xl/vbaProject.bin fișier și apoi re-descompuneți. –  > Por Sander Steffann.
  • Acest truc nu pare să mai funcționeze în Excel 2010 (V 14.0.6129.5000). Deși pot intra în VBA-Editor, la deschiderea modulului primesc mesajul de eroare „eroare neașteptată (40230)” – -.  > Por Andreas J.
  • Poți totuși să scrii un program și să faci pașii de mai sus în aplicația pe care o scrii, nu-i așa? –  > Por Uygar Y.
  • Tocmai am folosit acest lucru cu Office Pro Plus 2016 (Office pe 32 de biți pe os pe 64 de biți). Am primit erorile „40230”, dar acestea au încetat odată ce am intrat în Project Properties și am dezactivat/reactivat protecția prin parolă. –  > Por r2evans.
Joji Thomas Eapen

Am găsit o altă modalitate de a rezolva acest lucru pentru a evita parola de proiect VBA, fără a pierde parola Excel.

utilizați Hex-editor XVI32 pentru acest proces

dacă tipul de fișier este XLSM:

  1. Deschideți fișierul XLSM cu 7-Zip (click dreapta -> 7-Zip -> Open archive).
  2. Copiați fișierul xl/vbaProject.bin din fișier (puteți trage și plasa din 7-Zip), nu închideți 7-Zip
  3. Deschideți fișierul vbaProject.bin cu HexEdit
  4. Căutați „DPB=” și înlocuiți-l cu „DPx=”
  5. Salvați fișierul
  6. Copiați din nou acest fișier în 7-Zip (din nou, funcția de tragere și fixare funcționează)
  7. Deschideți fișierul XLSX în Excel, dacă vi se solicită „Continue Loading Project” (Continuă să încarci proiectul), faceți clic pe Yes (Da). Dacă vi se solicită erori, faceți clic pe OK.
  8. Apăsați Alt+ F11 pentru a deschide editorul VBA.
  9. În timp ce apăsați, va afișa eroarea „Unexpected error (40230)”, faceți clic pe OK (de 6 sau 7 ori) până când dispare.
  10. Apoi se va deschide automat

Comentarii

  • Acest truc a funcționat pentru mine… dar cu o mică modificare… la pasul:9 eroarea nu mai pleca nici după 20-25 de click-uri. Am salvat fișierul în altul și a funcționat. –  > Por Anupam Maiti.
  • Acest lucru a funcționat pentru mine în Excel 2016 64 bit. Și nu aveți nevoie cu adevărat de un editor hexagonal. Puteți căuta și înlocui (pasul 4) folosind notepad++ sau orice editor de text similar. Comentariul anterior este, de asemenea, adevărat. „Eroare neașteptată (40230)” dispare după salvarea ca un nou fișier XLSM și redeschiderea Excel. –  > Por Mike.
  • Am avut o xls fișier și Excel 2016. Folosind ajutorul lui Mikes a funcționat atunci când am schimbat fișierul din xls la xlsm. Nu am avut nevoie de 7-zip de a obține un fișier bin. –  > Por Timo.
JFV

Am găsit acest lucru aici care descrie cum să setați parola proiectului VBA. Ar trebui să puteți să o modificați pentru a dezactiva Parola proiectului VBA.

Aceasta nu utilizează SendKeys.

Anunțați-mă dacă vă ajută!JFV

Timo

Cei 2 cenți ai mei despre Excel 2016:

  1. deschideți fereastra xls fișier cu Notepad++
  2. Căutați DPB= și înlocuiți-l cu DPx=
  3. Salvați fișierul
  4. Deschideți fișierul, deschideți editorul VB, modulele de deschidere nu vor funcționa (error 40230)
  5. Salvați fișierul ca xlsm
  6. Funcționează

Aveesh

După ce am deschis fișierul xlsm cu 7 zip, am extras vbaproject.bin și în Notepad ++ am înlocuit DpB cu DPx și am salvat din nou, am primit o mulțime de erori vbaproject și parola proiectului vba a dispărut, dar nu există coduri / formulare.

Am dat click dreapta pentru a exporta și am putut reimporta într-un proiect nou.