在 VBA 中保护宏

Iqra Hasnain 2024年2月15日
  1. 防止在 VBA 中查看宏
  2. 防止宏在 VBA 中执行
在 VBA 中保护宏

我们将介绍如何保护宏在 VBA 中不被查看和执行。我们还将介绍为宏设置密码的不同步骤。

防止在 VBA 中查看宏

保护我们的数据非常重要;我们永远不知道有人会如何使用它。由于我们可以通过简单地输入密码来保护工作簿和工作表,因此我们还可以保护 Excel 中的宏不被查看。

首先,我们将在所需的工作表上添加一个命令按钮。

在工作表中添加命令按钮

然后,我们将创建一个我们想要防止查看的简单宏。如下所示,我们将创建一个简单的宏,它将为工作表内的单元格赋值。

Private Sub CommandButton1_Click()
Range("D1").Value = "This is a protected cell"
End Sub

输出:

在 VBA 中创建要保护的宏

现在我们将从 VBA 的菜单栏中选择工具。将弹出一个列表,然后选择 VBAProject Properties

当 VBA 项目属性打开时,我们将看到 GeneralProtection 选项卡。

在 VBA 步骤 1 中保护宏

我们必须选择保护选项卡并检查锁定项目以供查看

我们必须输入两次密码才能确认。然后,我们必须选择 OK,如下所示。

在 VBA 步骤 2 中保护宏

保存更改并关闭 Excel 文件,然后再次打开它。当我们尝试在 VBA 中查看代码时,会弹出一个对话框。

要在 VBA 中查看文件,我们必须输入正确的密码。

密码框

我们仍然可以通过单击命令按钮来执行代码,但是除非我们输入正确的密码,否则我们将无法查看或编辑代码。

防止宏在 VBA 中执行

在某些情况下,我们只想保护宏不被 VBA 执行。对于这种情况,我们可以使用 Application.InputBox 作为密码保护工具。

当用户在框中输入正确的单词时,它将执行代码。否则,它将显示错误消息并停止代码执行。

让我们看一个例子,我们将尝试使用 VBA 将值放入 Excel 中的某个单元格。如下所示,我们将使用上述方法来保护 VBA 代码不被执行。

Sub Pass()
Dim password As Variant
passcode = Application.InputBox("Enter Pass Code", "Password Protected")

Select Case passcode
    Case Is = False
    Case Is = "password"
        Range("B1").Value = "Code executed!"
    Case Else
        MsgBox "Incorrect Pass Code"
End Select
End Sub

输出:

防止在 VBA 中执行

通过这种方式,我们可以在 VBA 的帮助下轻松保护我们的宏不被查看和执行。