如何在 Excel 中保护宏并保护您的 VBA 代码

  • 配置信任中心,以控制如何在每个 Excel 工作簿中启用或阻止宏。
  • 使用密码保护您的 VBA 代码,如有必要,请使用证书对您的项目进行数字签名。
  • 它结合了可信文档、签名和单元格保护,以降低共享账本和企业环境中的风险。

在 Excel 中保护宏

当你每天都使用电子表格时,很容易就会构建出一个庞大的公式、引用和自动化流程系统。在这种情况下, excel宏 它们能帮你避免重复劳动,成为你最好的帮手。但是,正如它们能为你节省大量时间一样,如果管理不当,它们也可能成为安全问题的隐患。

这就是为什么它如此重要 在 Excel 中保护宏保护代码、控制宏的运行权限、决定哪些文件受信任,以及最终平衡自动化和安全性,这些都是关键所在。下文将解释宏的安全工作原理、Excel 提供的保护选项、如何对宏进行数字签名,以及在使用共享工作簿和 Excel Online 时存在的限制。

Excel中的宏究竟是什么?为什么它可能存在危险?

Excel 中的宏 简而言之,它是一系列指令,程序会自动执行这些指令来完成重复性任务。这些指令通常用以下语言编写: Visual Basic 应用程序 (VBA)此外,还有一些较旧的 Excel 4.0 宏(XLM),在某些情况下仍然受支持。

这种自动化方式使您能够 节省时间并最大限度地减少人为错误因为与其手动重复一百次相同的操作,不如编写一次程序,需要时再运行。问题在于,这些功能也可能被用于恶意目的。例如,下载和安装恶意软件、未经许可修改文件或窃取用户信息。

从安全角度来看,任何包含宏的文件,只要是从第三方收到的,都应该予以考虑。 可能存在危险。 至少在你能够 验证其来源正因如此,Office 才内置了警报、阻止和文档信任机制。这可以防止未经用户事先授权的代码运行。

总之,宏是Excel中实现流程自动化的关键组件,但它们也是潜在的攻击途径,因此建议…… 熟练掌握所有工具 该计划旨在管理和保护它们。

Excel 网页

将工作簿转换为受信任文档以启用宏

当你打开一个 Excel 工作簿 包含 VBA 代码或 XLM 宏,通常是 安全警告 在功能区下方。该通知表明该文件包含宏。默认情况下,宏不会运行,直到您做出决定。

如果您能识别文件的来源并确定其内容合法,您可以将该特定书籍设为…… 可靠文件这样,每次打开 Excel 时,宏就可以自动运行,而无需 Excel 再次询问。

在Excel工作簿中,一般流程非常简单:

  1. 首先,你点击 启用内容 在打开文件时出现的警告栏中。
  2. 接下来,您需要接受安全对话框,该对话框会询问您是否要信任该文档。确认后,Excel 会将该文件标记为安全文件。
  3. 一旦被认定为可靠, 宏已启用 无需另行通知,即可将文件添加到该书中。如果您始终使用相同的内部文件,并且知道这些文件来自您自己的组织或您信任的来源,这将非常方便。

如果您想停止信任之前标记的工作簿或其他文件,没有办法单独撤销对单个特定文档的信任;您必须…… 删除所有受信任文档 从 Office 安全选项中重新显示所有警告。

从信任中心配置宏安全性

保护 Excel 宏的最全面方法是审查其配置。 信托中心此面板集中显示了与宏、活动内容、VBA 访问和其他类似功能相关的所有安全选项。

请注意,如果您使用的是公司或教育机构管理的计算机,系统管理员可能拥有…… 阻止更改某些选项在这种情况下,有些参数您无法自行修改,因为它们是通过组策略或其他管理工具进行管理的。

要在 Excel 的“信任中心”访问宏选项,通常的路径如下:

  1. 开启分页 档案.
  2. 进入 选项.
  3. 在侧边栏中,选择类别 信托中心从那里你可以按下按钮 信任中心设置 然后在新窗口中,输入该部分 宏配置.
  4. 在本节中,您将找到几个选项,这些选项决定了 Excel 在检测到文件中的宏时如何运行。选择正确的选项对于获得更好的工作环境至关重要。 非常严格且安全 或者选择更灵活但风险更大的方案。

我们将详细审查每种可用的替代方案,但请注意,并非所有 Office 应用程序都显示与 Excel 完全相同的选项,有些应用程序还专门针对…… VBA宏 OA 宏 Excel 4.0(XLM).

宏Excel

Excel宏配置选项

在信任中心,您会看到一系列复选框和选择按钮,用于决定如何处理宏。每个选项都侧重于不同程度的平衡。 安全和舒适.

  • 禁用所有宏而不通知在这种模式下,不仅会阻止任何宏的执行,还会隐藏安全警报,因此 Excel 只会阻止代码运行,而不会向用户显示任何消息。
  • 禁用所有宏并发出通知在这里,Excel 仍然会阻止宏的自动执行,但每次打开包含宏的文件时都会显示安全警告,您可以选择是否手动启用宏。这种设置提供了一个合理的平衡,因为 避免悄无声息地执行 虽然可能存在危险代码,但同时它允许您通过一两次点击激活您知道可靠的宏,而无需不断修改整体设置。
  • 禁用除数字签名的宏之外的所有宏在这种情况下,如果文件包含未签名的代码,Excel 会阻止所有宏并显示安全警报。 允许自动执行 那些拥有您信任的发布者颁发的有效数字签名的宏。
  • 启用所有宏(不建议这样做,可能会执行潜在的危险代码)顾名思义,在这种模式下,Excel 会运行它找到的任何宏,而无需征求确认,这会使您的计算机…… 特别容易受到恶意代码的攻击.

除了这四个主要的通用行为选项外,Excel 还包含一个与旧版宏相关的字段。 Excel 4.0(XLM)具体来说,您可以找到类似的选项 启用 VBA 宏时,也启用 Excel 4.0 宏。.

最后,该选项也包含在同一个代码块中。 信任对 VBA 项目对象模型的访问它控制是否允许其他应用程序自动访问 Excel 中的 VBA 对象模型。

对宏的 VBA 代码进行密码保护

除了决定是否运行宏之外,确保宏安全的另一个关键方面是 保护你自己的代码这样我们就能避免 q这样一来,其他用户未经许可就无法查看、修改或复制它。Excel 允许您在 VBA 项目级别设置密码来实现这一点。

保护宏代码的典型步骤是打开包含要锁定的 VBA 项目的 Excel 工作簿,然后转到“设置”选项卡。 程序员 从功能区。然后您可以单击按钮 Visual Basic中 打开与该书关联的 VBA 编辑器。

进入 Visual Basic 编辑器后,您需要在左侧面板中选择您的项目并访问菜单。 工具,在这里您可以找到选项 VBAProject 的属性 (具体名称可能因安装语言而异,但它指的是当前项目的属性。)

在属性对话框中,您会看到几个选项卡;您需要用来阻止代码的选项卡是“阻止代码”选项卡。 保护其中,您可以选择该选项 锁定项目以供查看这样可以防止其他用户在不输入密码的情况下查看项目内容。

勾选该复选框后,您需要编写一个 密码保护 请在相应字段中输入密码,并在确认字段中再次输入密码,以确保没有拼写错误。输入两次密码后,即可点击。 接受关闭 VBA 编辑器并返回 Excel。

为了正确施加保护,重要的是: 关闭 Excel 文件 然后再次打开它。

宏Excel

使用证书对宏进行数字签名

除了密码保护之外,另一种保护宏的有效方法是使用 数字签名Office 使用 Microsoft Authenticode 技术,允许宏开发人员对其项目或文件进行数字签名。

数字签名过程基于…… 数字证书 该证书用于识别宏的作者。当对包含宏的 VBA 项目或文档进行签名时,该证书可保证文件来自特定的签名者,并且自签名以来文件内容未被修改。

在计算机上安装证书后,您可以使用它来签署宏项目,以便其他用户打开这些文件时,Excel 可以对其进行身份验证。 检查签名的有效性 如果发布者被标记为可信,则应将内容视为可靠内容。

获取用于签署宏的证书主要有两种方法。

  • 你可以诉诸于 商业证书签发机构。 这将为您提供一份在企业或公共场合均可使用的认可证书。
  • 您还可以获得证书 通过贵公司的内部安全管理员或 IT 部门。

获得相应的证书后,下一步是在VBA编辑器中访问数字签名选项, 将证书与项目关联起来从那时起,每次您分发包含该项目的文件时,签名都会确保文件的完整性和来源。您还可以将其与信任中心中的“仅签名宏”设置结合使用,以显著提高保护级别。

在共享工作簿和在线 Excel 中使用宏和保护

在当今许多工作环境中,使用以下方法很常见 共享的Excel工作簿 通过 Microsoft Teams 或 OneDrive 等服务,多位同事可以从不同地点同时编辑同一个文件。

在此背景下,出现了两个非常常见的问题:如何 保护细胞和配方 如何防止其他用户意外删除它们?宏可以在以下情况下使用? 在线Excel 当这本书通过 Teams 分享时?

关于第一个问题,Excel 提供了工作表和工作簿保护工具,允许您将某些单元格标记为保护。 受阻 然后设置密码,只有特定人员才能更改这些设置。这样,您就可以只解锁数据输入单元格,同时保护其余部分,防止他人修改公式。

这样,您的同事就可以在您选择的范围内写入内容,但他们将无法…… 删除或修改公式 文件运行的关键信息,当书籍内容复杂或包含复杂的计算时非常有用。

如果你需要宏正常工作,就必须用以下方式打开文件: 完整版Excel 即使文件存储在 Teams 或 OneDrive 中,该宏也会安装在计算机上。工作簿仍然可以共享,但宏将从桌面应用程序运行,而不是从在线环境运行。

向同事解释这一点很重要,这样他们才能明白有些自动化功能无法通过浏览器使用。在这种情况下,最佳策略通常是结合使用…… 细胞保护 使用方法清晰明了,必要时可从桌面版 Excel 运行宏以应用更高级的操作。