2008-11-07 23 views
38

Jak mogę programowo usunąć (znane) hasło z projektu Excel VBA?Jak usunąć hasło z projektu VBA?

Aby było jasne: Chcę usunąć hasło z projektu VBA, a nie ze skoroszytu lub arkuszy roboczych.

+0

Czy jakieś googling - wydaje się, że ma bezpośredni sposób - trzeba użyć SendKeys kludge [http://www.mrexcel.com/forum/showthread.php?t = 49034] (http: //www.mrexcel.com/forum/showthread.php? t = 49034) –

+3

Zaznaczona odpowiedź NIE jest najlepsza ... najlepsza odpowiedź nadszedł lata później przez Uygara Y –

+1

@JeremyThompson - ta odpowiedź nie odpowiada na to pytanie. Wyjaśnia, jak ręcznie usunąć nieznane hasło. To pytanie zadaje pytanie, jak _programowo_ usunąć _identyfikowane_ hasło. –

Odpowiedz

9

Ma prostą metodę, która wykorzystuje funkcje SendKeys do usuwania ochrony projektu VBA. W ten sposób dostać się do projektu, więc trzeba by kontynuować przy użyciu SendKeys aby wymyślić sposób, aby usunąć ochronę hasłem: http://www.pcreview.co.uk/forums/thread-989191.php

I oto ten, który używa bardziej zaawansowanych, nieco bardziej niezawodną metodę usuwania zabezpieczenia . Ponownie, odblokuje on tylko projekt VB. http://www.ozgrid.com/forum/showthread.php?t=13006&page=2

nie próbowałem żadnej z powyższych metod, ale może to zaoszczędzić trochę czasu, czy to, co trzeba zrobić ...

+1

Mam kod. Co zrobić z? Nie mogę otworzyć VBEditor, ani wykonać coś, ponieważ projekt jest zablokowany, więc żaden nowy skrypt nie jest możliwy do wykonania !? – serhio

+0

+ 1 :) @serhio: Inny sposób korzystania z [APIS] (http://stackoverflow.com/questions/16174469/unprotect-vbproject-from-vb-code/16176557#16176557) –

+1

[Odpowiedź Uygara Y poniżej] (https : //stackoverflow.com/a/7835861/3358272) jest nadal istotną odpowiedzią, która działa z Office 2016. Fakt, że działa całkowicie i łatwo podważa wszelkie oczekiwania dotyczące używania haseł Office do zabezpieczania dokumentów. Nigdy w nich nie wierzyłem, zakładając, że można je wyłączyć godzinami pracy komputera, ale jego odpowiedź zadziałała dla mnie z dwoma * minutami * pracy. Hasła trzymają ludzi uczciwych i nie-komputerowych, ale to głównie wąż-olej, IMHO. – r2evans

2

Znalazłem ten here, który opisuje, jak ustawić hasło projektu VBA. Powinieneś być w stanie go zmodyfikować, aby usunąć hasło do projektu VBA.

Ten nie używa klawiszy SendKeys.

Daj mi znać, jeśli to pomoże! JFV

98

Innym sposobem, aby usunąć hasło projektu VBA jest;

  • Otwórz plik xls za pomocą edytora szesnastkowego. (tj. Hex Edit http://www.hexedit.com/)
  • Szukaj DPB
  • Wymień DPB do DPX
  • Zapisz plik.
  • Otwórz plik w programie Excel.
  • Kliknij "Tak", jeśli pojawi się okno komunikatu.
  • Ustaw nowe hasło z Właściwości projektu VBA.
  • Zamknij i otwórz ponownie plik, a następnie wpisz nowe hasło, aby usunąć ochronę.

UPDATE: Dla programu Excel 2010 (działa dla MS Office Pro Plus 2010 [14.0.6023.1000 64bit]),

  • otwieramy plik XLSX z 7zip

Jeśli skoroszytu jest chroniony:

  • Przeglądaj folder xl
  • Jeśli skoroszyt jest chroniony, kliknij prawym przyciskiem myszy i wybierz workbook.xml Edycja
  • Znajdź część <workbookProtection workbookPassword="XXXX" lockStructure="1"/> (XXXX jest zaszyfrowane hasło)
  • Usuń XXXX część. (<workbookProtection workbookPassword="" lockStructure="1"/>)
  • Zapisz plik.
  • Gdy 7zip poprosi o aktualizację archiwum, powiedz Tak.
  • Zamknij 7zip i ponownie otwórz swój XLSX.
  • Kliknij pozycję Ochrona skoroszytu na karcie Recenzja.
  • Opcjonalnie: Zapisz plik.

Jeśli arkusze są chronione:

  • Przejdź do xl/worksheets/ folderu.
  • Kliknij prawym przyciskiem myszy numer Sheet1.xml, sheet2.xml itd., A następnie wybierz opcję Edytuj.
  • Znajdź części <sheetProtection password="XXXX" sheet="1" objects="1" scenarios="1" />
  • Usuń zaszyfrowanego hasła (tj. <sheetProtection password="" sheet="1" objects="1" scenarios="1" />)
  • zapisać plik.
  • Gdy 7zip poprosi o aktualizację archiwum, powiedz Tak.
  • Zamknij 7zip i ponownie otwórz swój XLSX.
  • Kliknij opcję Arkusz chroniący przed chowaniem na karcie Recenzja.
  • Opcjonalnie: Zapisz plik.
+0

To zadziałało dla mnie. Musiałem również kilkakrotnie kliknąć "Ok" podczas przeglądania kodu VBA. –

+6

I jeszcze jeden dodatek do oryginalnej odpowiedzi: Jeśli masz jakiś plik xlsx, otwórz go w Excelu i "Zapisz jako" xls. A następnie wykonaj powyższe kroki ... –

+6

Jeśli masz plik '.xlsx' możesz go rozpakować, wykonaj wyszukiwanie/zamień w pliku' xl/vbaProject.bin', a następnie ponownie zip. –

2

Znalazłem inny sposób rozwiązania tego, aby uniknąć hasła do projektu VBA, bez utraty hasła Excel.

użycie Hex-edytor XVI32 dla procesu

czy typ pliku jest pliki xlsm:

  1. Otwórz plik xlsm z 7-Zip (prawy przycisk myszy -> 7-Zip -> Otwórz archiwum).
  2. Skopiuj xl/vbaProject.bin plik z pliku (można przeciągać i upuszczać z 7-Zip), nie zamykaj 7-Zip
  3. otwieramy plik vbaProject.bin z HexEdit
  4. Szukać „DPB =” i zastąpienie go „DPX =”
  5. zapisać plik
  6. skopiować ten plik z powrotem do 7-Zip (ponownie, przeciągnij i upuść działa)
  7. otworzyć plik XLSX w programie Excel, jeśli prośba o "Kontynuuj ładowanie projektu", kliknij Tak. Jeśli pojawi się monit z błędami, kliknij OK.
  8. Naciśnij Alt + F11, aby otworzyć edytor VBA.
  9. Podczas naciśnięcia pojawi się błąd "Nieoczekiwany błąd (40230)", wystarczy kliknąć OK (6 lub 7 razy), aż zniknie.
  10. Następnie otworzy Automatycznie