GJ.*_*GJ. 17 vba macros microsoft-excel microsoft-excel-2010
我偶尔会收到一个 xls 文件,其中包含一个我应该使用的宏。如果我对发件人没有完全信任,我希望查看宏的来源,以验证它确实只做它应该做的事情。
但是,在 Excel 2010 中,除非我首先为工作表启用宏,否则“查看宏”下的“编辑”按钮将被禁用 - 但如果我首先启用宏,那么我最多只能在该代码完成后找出恶意代码跑步...
如何在为文档启用宏之前查看宏的源代码?
Mok*_*bai 15
您可以使用 Word 中的“开发人员”选项卡查看文档中的所有宏,以便轻松访问嵌入在文档中的 Visual Basic 例程。
首先,您需要确保启用了开发人员选项卡。转到文件 - >选项然后:

在现在应该出现的开发人员选项卡上,现在应该有一个“Visual Basic”按钮,您可以单击它以进入 Visual Basic 编辑器。
浏览编辑器左侧的文档树,您应该能够看到嵌入在文档中的所有代码和模块,而无需先启用宏。
我倾向于用我不信任的文件来做这件事。
注意:我已经在 Word 中完成了此操作,Excel 中提供了相同的功能,并且启用它的选项位于同一个位置。
在自 2003 年和可能更早的所有 Office 应用程序的所有版本中,Alt+F11将打开 VBA 编辑器。无需在 Office 2007 和更新版本的功能区中启用“开发人员”选项卡即可使用。
虽然 Mokubai 和 hBy2Py 的答案看起来很棒,并且确实允许您显示 VBA 编辑器,但似乎至少在 Excel 中Microsoft Office Professional Plus 2016的 Excel 中仍然不允许您查看代码。
我碰巧拥有该版本,并且我确信我收到了恶意 XLS 并且想要检查它。在 Excel 中打开它后,它像往常一样以安全模式打开,当然我无意忽略该模式。正如其他受访者所指出的那样,当我打开 VBA 编辑器时,我看到的是...空 VBA 编辑器。尽管我还没有关闭 XLS 文件,但“项目资源管理器”面板很有帮助地显示“没有打开的项目” 。只是为了测试,我打开了第二个文档(我的作品之一),它立即显示在 VBA 编辑器中,并且(正确地)完全没有任何 VBA。但是, VBA编辑器中没有列出来自互联网的文档。
我浪费了一些时间试图弄清楚为什么会这样,但没有找到原因。当文档以安全模式加载时,我的 Excel 版本似乎根本不将 VBA 模块发送到 VBA 编辑器。遗憾的是,VBA 编辑器缺少一些“从 Office 文档打开 VBA”功能,因此很明显 Excel 是这里的大脑,它必须首先解压/解码/任何 XLS。
事实证明,解决方案非常简单。
Ribbon-> Developer->MacroSecurityFile-> 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
Run Code Online (Sandbox Code Playgroud)
顺便提一句。如您所见,我立即注释掉了入口点并重新保存了文档,以防我允许宏在稍后的某个时间点运行。
| 归档时间: |
|
| 查看次数: |
37966 次 |
| 最近记录: |