第十套教程序言:阻止对Sub和Functions的直接访问

本文介绍了如何在VBA高级应用中防止Sub和Functions的直接访问,通过设置模块为private和过程为Private来控制程序的安全性,以转盘游戏为例,展示了如何在教程中实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【分享成果,随喜正能量】引擎利用后退的力量,引发更大的动能;空气经过压缩,更具爆破的威力。所谓"退一步想,海阔天空。"正可点破我们迷妄执着的盲点。。

《VBA高级应用30例》(10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,今日内容是第5个专题“利用VBA制作一个转盘游戏”,今日讲解:第十套教程序言:阻止对Sub和Functions的直接访问3b41ba0cf3aaf6b7503bb9d53103a680.jpeg

序言阻止对Sub和Functions的直接访问

在VBA的应用中,过程是使用各种Function和Sub进行构建的,每个Function和Sub都有特定的任务。一般情况下,授权任何用户访问这些核心功能是很方便的(甚至是建议的)。如下截图,通过在EXCEL界面按下Alt+F8 我们可以看到各个过程名称:

972278fcc30bd89bc199965939f71b30.jpeg

但是,我们也建议程序的构建者可以在以上视图中隐藏自己认为不能直接提供给用户的部分过程。事实上也如此,当应用程序中的所有Sub都显示给用户时,这的确有一定的风险。一些Sub很可能只有在其他Sub或函数中的适当位置调用时才能工作,因此将它们暴露给用户可能会导致严重的问题。为应用程序执行内务管理工作的Sub不属于此列表,因此应在视图中隐藏。所以,我们可以从列表中删除那些特定的过程。下面是控制对话框中显示内容的两种方法。

1 设置模块为private

通过添加文本:Option Private Module。在模块顶部添加上述语句后,该模块中的所有子模块都将从宏列表中删除。但是,仍然可以从该对话框启动它们,只需键入它们的名称并单击“运行”。

2 设置过程为Private

Private Sub mynzC()

    MsgBox "Hello Word VBA!"

End Sub

使用此方法的缺点是,无法从包含Sub的模块外部访问Sub。当Sub仅从模块内部调用时,这没有问题。

本文提供的应用程序代码如下:

0f1f75ca6c23e8950f8e2fb9dc774251.jpeg

a3a3e45d0911c955606c756fa31ad6b2.jpeg

10edf5d2a11186a93cd3c8110d8edf6f.jpeg

72b8a236f7c82c6cdb4d75d3e3258bb6.jpeg

我们按下Alt+F8,此时对话框中仅仅显示了mynzA一个过程。

bbdcb5d3903c5138914591201e45b256.jpeg

Ø本讲内容参考程序文件:高级应用00.xlsm

d04efb37eda08c184a6353efe856862e.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


a6d37db99d8707947fdbdde3ad8d261d.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值