Время от времени я получаю файл xls, содержащий макрос, который мне следует использовать. Если у меня нет полного доверия к отправителю, я хочу посмотреть на источник макроса, чтобы убедиться, что он действительно делает только то, что должен.
Однако в Excel 2010 Кнопка «редактировать» в разделе «просмотреть макросы» отключена, если я сначала не включу макросы для листа — но если я сначала включу макросы, то я смогу узнать о вредоносном коде только после того, как этот код завершит работу …
Как просмотреть исходный код макроса перед включением макросов для документа?
Вы можете просмотреть все макросы в документе, используя вкладку «Разработчик» в Word, чтобы обеспечить легкий доступ к подпрограммам Visual Basic, встроенным в документ.
Сначала вам нужно убедиться, что вкладка разработчика включена. Перейдите в Файл -> Параметры, затем:
В разработчике Вкладка, которая должна появиться, теперь должна быть кнопка «Visual Basic», которую вы можете щелкнуть, чтобы перейти в редактор Visual Basic.
Просматривая дерево документа слева от редактора, вы должны увидеть весь код и модули, встроенные в документ, без необходимости предварительно включать макросы.
Я обычно делаю это с документами, которым не доверяю.
Примечание. Я сделал это в Word, та же функция доступна в Excel, и возможность ее включения находится в том же место.
Во всех версиях всех приложений Office с 2003 г. и, возможно, ранее Alt + F11 откроет редактор VBA. Нет необходимости включать вкладку «Разработчик» на ленте для Office 2007 и новее, чтобы это работало.
1
Хотя ответы от Mokubai и hBy2Py кажутся отличными и действительно позволяют вам показать редактор VBA, похоже, что по крайней мере в Excel от Microsoft Office Professional Plus 2016 по-прежнему не позволяет просматривать код.
Эта версия принадлежит мне, и я был уверен, что получил вредоносный XLS и хотел осмотрите это. После открытия в Excel он открылся в безопасном режиме, как обычно, и, конечно, я не собирался отказываться от этого режима. Когда я открыл редактор VBA, как указывали другие респонденты, мне представили … пустой редактор VBA . Панель «Обозреватель проекта» услужливо отображала «Нет открытых проектов» , хотя я еще не закрыл файл XLS. Просто ради тестирования я открыл второй документ (одна из моих работ), и он сразу же появился в редакторе VBA и (правильно) полностью лишен VBA. Однако документ из Интернета не был указан в редакторе VBA .
Я потратил некоторое время, пытаясь понять, почему это так, и не нашел причин. Похоже, моя версия Excel просто не отправляет модули VBA в редактор VBA, когда документ загружается в безопасном режиме. К сожалению, в редакторе VBA отсутствует некоторая функция «открывать VBA из документа Office», поэтому ясно, что Excel — это мозг, и он должен сначала распаковать/декодировать/независимо от XLS.
Решение оказалось чтобы быть довольно простым.
- Щелкните
Лента
->Разработчик
->MacroSecurity
- в качестве альтернативы
Файл
->Параметры
->SecurityCenter
( последняя группа параметров) ->Настройки
->Макросы
) - Запомните (или запишите), каковы текущие настройки
- Измените их на «Блокировать все макросы без уведомления».
- Подтвердите, закройте, повторно откройте документ, снова откройте редактор VBA.
- Восстановите исходный настройки, пока вы закончили играть с огнем
Эффекты:
- уведомление не отображалось
- документ был полностью загружен
- макросы не выполнялись
- Редактор VBA получил модули и представил весь код
Если вам интересно: да, это действительно был вредоносный, крошечный пример:
Функция marcopoloko () marcopoloko = Left («Конвертер CM в дюймы», 2) + Right («fed.ex», 4) + "e" + "/c" + numneroop + amagilocardEnd Function'Sub Workbook_Open () 'Если xlTickMarkOutside> 0 Then'Shell marcopoloko + "" "", xlXmlExportSuccess'End If'End Sub
Кстати. как вы можете видеть, я немедленно закомментировал точку входа и повторно сохранил документ на случай, если я разрешаю запуск макроса в какой-то момент позже.
Редактировать макрос
Для редактирования макроса, прикрепленного к книге Microsoft Excel, вы используете редактор Visual Basic.
Важно: Прежде чем вы сможете работать с макросами, вы должны включить вкладку «Разработчик». Для получения дополнительной информации см. Показать вкладку «Разработчик».
Изменить настройки безопасности макросов
Для редактирования и запуска макросов , необходимо установить уровень безопасности для временного включения всех макросов:
-
На вкладке Разработчик на вкладке Код , нажмите Macro Security .
-
В Настройки макроса нажмите Включить все макросы (не рекомендуется, может быть запущен потенциально опасный код) , а затем нажмите OK .
Предупреждение: Чтобы предотвратить запуск потенциально опасного кода, мы рекомендуем вам вернуться к любой из настроек, отключающих все макросы, после завершения работы с макросами..
Редактировать макрос
-
На вкладке Разработчик в группе Код нажмите Макросы .
-
В поле Имя макроса щелкните макрос, который вы хотите изменить.
-
Нажмите Изменить . Откроется редактор Visual Basic.
Совет. Чтобы получить помощь, пока вы работая в редакторе Visual Basic, в меню Справка щелкните Справка Microsoft Visual Basic или нажмите клавишу F1.
раздел>