Иногда я получаю файл xls, который содержит макрос, который я должен использовать. Если я не полностью доверяю отправителю, я хочу посмотреть на источник макроса, чтобы убедиться, что он действительно выполняет только то, что должен.
Однако в Excel 2010 кнопка «Изменить» в разделе «Просмотр макросов» отключена, если я сначала не включу макросы для листа - но если я сначала включу макросы, то я могу, в большинстве случаев, узнать о вредоносном коде только после того, как этот код будет завершен. Бег...
Как я могу просмотреть источник макроса, прежде чем включать макросы для документа?
Alt
знак +F11
может привести! SECURITY WARNING ... Enable Content
к исчезновению баннера " ", что означает, что теперь выполнение кода включено. Это вводит в заблуждение. Вы можете продемонстрировать это, создав документ сon_open()
модулем. Вы сможетеAlt
+ войтиF11
и проверить код без запуска события.Хотя ответы от Mokubai и hBy2Py кажутся великолепными и действительно позволяют вам показать редактор VBA, кажется, что по крайней мере в Excel из Microsoft Office Professional Plus 2016 все еще не разрешается просматривать код.
Мне довелось владеть этой версией, и я был уверен, что получил вредоносный XLS и хотел проверить его. После его открытия в Excel он открылся в безопасном режиме, как обычно, и, конечно, я не собирался отказываться от этого режима. Когда я открыл VBA Editor, как указали другие респонденты, мне представили ... пустой VBA Editor . Панель «Project Explorer» содержательно отображала «Нет открытых проектов», хотя я еще не закрыл файл XLS. Просто для тестирования я открыл второй документ (одна из моих работ), и он сразу же появился в VBA Editor и был (должным образом) полностью лишен VBA. Однако документ из Интернета не был указан в редакторе VBA .
Я потратил немного времени, пытаясь понять, почему это так, и не нашел причин. Кажется, что моя редакция Excel просто не отправляет модули VBA в редактор VBA, когда документ загружается в безопасном режиме. К сожалению, в редакторе VBA отсутствует некоторая функция «открыть VBA из документа Office», поэтому очевидно, что Excel - это мозг, и он должен сначала распаковать / декодировать / что угодно XLS.
Решение оказалось довольно простым.
Ribbon
->Developer
->MacroSecurity
File
->Options
->SecurityCenter
(последняя группа опций) ->Settings
->Macros
)Последствия:
Если вам любопытно: да, это действительно был злой, крошечный пример:
КСТАТИ. как вы можете видеть, я немедленно закомментировал точку входа и заново сохранил документ, на случай, если я позволю макросам запускаться в какой-то момент времени позже.
источник