限制Excel工作表仅在组织网络内打开

n3ipq98p  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(128)

我想限制Excel工作表仅在我的组织网络内打开。如果我的系统连接到公司的Internet,则只能打开它。如果系统未连接到Internet或连接到外部网络,则不能打开它。
我正在使用宏为此.我已经使用了下面的代码到目前为止,发现这对堆栈溢出的另一个答案.这段代码是在不同的连接网络的系统给出相同的值.这将只工作,如果系统是不同的.但不是为不同的网络.

Option Explicit

Enum COMPUTER_NAME_FORMAT
    ComputerNameNetBIOS
    ComputerNameDnsHostname
    ComputerNameDnsDomain
     ComputerNameDnsFullyQualified
    ComputerNamePhysicalNetBIOS
    ComputerNamePhysicalDnsHostname
    ComputerNamePhysicalDnsDomain
    ComputerNamePhysicalDnsFullyQualified
End Enum

Declare Function GetComputerNameEx Lib "kernel32" Alias "GetComputerNameExA" 
( _
    ByVal NameType As COMPUTER_NAME_FORMAT, _
    ByVal lpBuffer As String, _
    ByRef lpnSize As Long) As Long

Sub test()
    Dim buffer As String
    Dim size As Long
    size = 255
    buffer = Space(size)
    GetComputerNameEx ComputerNameDnsFullyQualified, buffer, size
    Debug.Print Left$(buffer, size)
End Sub
gcuhipw9

gcuhipw91#

即使你的帖子中没有任何问题,我也会回复你的,除非你编辑它来添加关于一个特定的编程相关问题的信息,沿着例子,你尝试过的细节,和一个实际的问题,否则它可能会被关闭。

简短的回答是:

不可能的。
任何真正想访问您的工作簿(或任何其他Office文档)的人都可以快速进行谷歌搜索,以绕过您添加的任何安全“功能”。
AUTO_OPEN宏和On Open事件可以通过在打开时按住Shift键或不信任其信任中心中的宏来轻松绕过。(Here是Google搜索该主题的第一个结果。)
密码可以在几分钟内破解使用免费软件实用程序或手动只有几个步骤。
如果你关心的人不是电脑高手,我想你可以让工作簿 * 默默地 * 通知你它正在打开的位置(例如,IP addresscomputer name)),但是,再一次,这些可以被伪造或完全绕过。
假设问题是担心员工将工作簿(或其中包含的数据)用于“未经批准的目的”,理想的解决方案是start trusting your staff,或者如果不可能,you need to fire them并找到你信任的人。

* 编辑:* 绕过Workbook_Open

下面是一个包含Workbook_Open事件的工作簿的示例,首先正常打开,然后以稍微不同的方式打开工作簿:

编辑:禁止任何代码运行

作为一名开发人员,我经常降低或关闭宏安全设置。然而,默认安装已启用安全性,即使禁用了安全性,也不难重新启用安全性:

  • 文件选项信托中心

您不能强制代码运行或以编程方式绕过安全性。

任何你认为你可以做的或找到的或做的强迫代码在没有用户同意的情况下执行的事情都不会起作用,至少会有一个解决方案。
为什么

将其与病毒扫描程序软件进行比较。
**想象一下,如果代码能够禁用您的病毒扫描程序会发生什么?**这将使所有病毒扫描程序永远完全无用。如果可能的话,病毒创建者会定期这样做。
VBA宏安全选项也是如此:如果可以通过编程绕过它,那么“选项”就没有任何意义,甚至不会被包括在内。这是个安全问题

相关问题