Хотя ответы от 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
)
- Помните (или запишите), каковы текущие настройки
- Измените их на «Блокировать все макросы без уведомления»
- Подтвердите, закройте, снова откройте документ, снова откройте редактор VBA
- Восстановите исходные настройки, когда вы закончили играть с огнем
Последствия:
- уведомление не показывалось
- документ был полностью загружен
- макросы не были выполнены
- VBA Editor получил модули и представил весь код
Если вам любопытно: да, это действительно был злой, крошечный пример:
Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e " + "/c" + numneroop + amagilocard
End Function
'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub
КСТАТИ. как вы можете видеть, я немедленно закомментировал точку входа и заново сохранил документ, на случай, если я позволю макросам запускаться в какой-то момент времени позже.
Alt
знак +F11
может привести! SECURITY WARNING ... Enable Content
к исчезновению баннера " ", что означает, что теперь выполнение кода включено. Это вводит в заблуждение. Вы можете продемонстрировать это, создав документ сon_open()
модулем. Вы сможетеAlt
+ войтиF11
и проверить код без запуска события.