Od czasu do czasu otrzymuję plik xls zawierający makro, którego powinienem użyć. Jeśli nie mam pełnego zaufania do nadawcy, chcę spojrzeć na źródło makra, aby sprawdzić, czy rzeczywiście robi to, co powinien.
Jednak w programie Excel 2010 przycisk „edytuj” w obszarze „wyświetl makra” jest wyłączony, chyba że najpierw włączę makra dla arkusza - ale jeśli najpierw włączę makra, mogę co najwyżej dowiedzieć się o złośliwym kodzie dopiero po zakończeniu tego kodu bieganie...
Jak mogę wyświetlić źródło makra przed włączeniem makr dla dokumentu?
Alt
+F11
może spowodować! SECURITY WARNING ... Enable Content
zniknięcie banera „ ”, co oznacza, że wykonanie kodu jest teraz włączone. To jest mylące. Możesz to zrobić, tworząc dokument zon_open()
modułem. Będziesz mógłAlt
+ wejśćF11
i sprawdzić kod bez odpalenia zdarzenia.Podczas gdy odpowiedzi Mokubai i hBy2Py wydają się świetne i rzeczywiście pozwalają pokazać edytor VBA, wydaje się, że przynajmniej w Excelu z Microsoft Office Professional Plus 2016 nadal nie pozwala ci zobaczyć kodu.
Zdarzyło mi się mieć tę wersję i byłem pewien, że otrzymałem złośliwy XLS i chciałem go sprawdzić. Po otwarciu w programie Excel otworzył się jak zwykle w trybie awaryjnym i oczywiście nie miałem zamiaru go wyłączać. Kiedy otworzyłem Edytor VBA, jak wskazali inni respondenci, pokazano mi ... pusty Edytor VBA . Panel „Project explorer” wyświetlał pomocniczo komunikat „Brak otwartych projektów”, mimo że nie zamknąłem jeszcze pliku XLS. Dla celów testowych otworzyłem drugi dokument (jeden z moich prac), który natychmiast pojawił się w VBA Editor i był (właściwie) całkowicie pozbawiony VBA. Jednak dokument z Internetu nie był wymieniony w edytorze VBA .
Zmarnowałem trochę czasu, próbując dowiedzieć się, dlaczego tak jest, i nie znalazłem żadnego powodu. Wygląda na to, że moja wersja programu Excel po prostu nie wysyła modułów VBA do edytora VBA, gdy dokument jest ładowany w trybie awaryjnym. Niestety edytorowi VBA brakuje funkcji „otwórz VBA z dokumentu Office”, więc jasne jest, że Excel jest tutaj mózgiem i musi najpierw rozpakować / zdekodować / cokolwiek XLS.
Rozwiązanie okazało się dość proste.
Ribbon
->Developer
->MacroSecurity
File
->Options
->SecurityCenter
(ostatnia grupa opcji) ->Settings
->Macros
)Efekty:
Jeśli jesteś ciekawy: tak, to rzeczywiście był złośliwy, mały przykład:
BTW. jak widać, natychmiast skomentowałem punkt wejścia i ponownie zapisałem dokument, na wypadek, gdy pozwolę makrom uruchomić się w pewnym momencie później.
źródło