12

Иногда я получаю файл xls, который содержит макрос, который я должен использовать. Если я не полностью доверяю отправителю, я хочу посмотреть на источник макроса, чтобы убедиться, что он действительно выполняет только то, что должен.

Однако в Excel 2010 кнопка "редактировать" в разделе "просмотр макросов" отключена, если я сначала не включу макросы для листа - но если я сначала включу макросы, то смогу узнать о вредоносном коде самое большее только после того, как этот код будет завершен. Бег...

Как я могу просмотреть источник макроса, прежде чем включать макросы для документа?

3 ответа3

10

Вы можете просмотреть все макросы в документе, используя вкладку Разработчик в Word, чтобы предоставить вам простой доступ к подпрограммам Visual Basic, встроенным в документ.

Для начала вам необходимо убедиться, что вкладка «Разработчик» включена. Перейдите в Файл -> Параметры, затем:

вкладка разработчика

На вкладке "Разработчик", которая должна появиться, теперь должна быть кнопка "Visual Basic", которую можно нажать, чтобы перейти в редактор Visual Basic.

Просматривая дерево документов слева от редактора, вы сможете увидеть весь код и модули, встроенные в документ, без необходимости сначала включать макросы.

Я склонен делать это с документами, которым я не доверяю.

Примечание. Я сделал это в Word, такая же функция доступна в Excel, и опция ее включения находится в том же месте.

9

Во всех версиях всех приложений Office с 2003 года и, возможно, ранее, Alt+F11 откроет редактор VBA. Нет необходимости активировать вкладку «Разработчик» на ленте для Office 2007 и новее, чтобы это работало.

0

Хотя ответы от 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 из офисного документа", поэтому ясно, что Excel - это мозг, и он должен сначала распаковать / декодировать / что угодно XLS.

Решение оказалось довольно простым.

  1. Нажмите Ribbon -> Developer -> MacroSecurity
  2. в качестве альтернативы, File -> Options -> SecurityCenter(последняя группа параметров) -> Settings -> Macros)
  3. Запомните (или запишите), какие текущие настройки
  4. Измените их на "Блокировать все макросы без уведомления"
  5. Подтвердите, закройте, снова откройте документ, снова откройте редактор VBA
  6. Восстановите исходные настройки, пока вы закончите играть с огнем

Последствия:

  • уведомление не показывалось
  • документ был полностью загружен
  • макросы не были выполнены
  • 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

КСТАТИ. Как вы можете видеть, я немедленно закомментировал точку входа и заново сохранил документ, на случай, если я позволю макросам запускаться в какой-то момент времени позже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .