当前位置: 首页 > news >正文

VBA代码解决方案第二十七讲:禁用EXCEL工作簿右上角的关闭按钮

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第二十七讲:禁用EXCEL工作簿右上角的关闭按钮

【分享成果,随喜正能量】219 你看,匆匆一年又是秋;岁月不堪重负,故人不如初。不过是在这人间暂坐,却要经历万千沧桑。。

第二十七讲 禁用EXCEL工作簿右上角的关闭按钮

在EXCEL操作中当我们需要关闭一个文件时,最经常使用的方法是单击文件右上角的“X”,这时就会关闭文件了,如果玩VBA熟练了,往往要出点花样,这里给大家介绍一点,就是禁用文件右上角的“X”,让人无法利用此功能关闭文件。

1 禁用工作簿关闭按钮的代码

好了,我们先看下面的代码:

Private BClose As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean) '第21讲 如何做到如果禁用VBA将无法继续工作

If BClose = False Then

Cancel = True

MsgBox "此功能已经被禁止,文件无法关闭!", vbExclamation, "提示"

End

End If

End Sub

Sub mynz_27() '27禁用EXCEL工作簿右上角的关闭按钮,测试时要将前面的半角引号去掉

BClose = True

MsgBox "可以关闭了。"

End Sub

代码截图:

2 禁用关闭按钮代码的解读及运行效果

代码解析:

1) 第1行代码在模块顶部声明变量BClose为Boolean类型,默认初始值为False。

2) 第2行到第8行代码工作簿的BeforeClose事件过程,通过变量BClose的当前值决定是否能够关闭工作簿,只有当BClose的值为True时,才允许关闭工作簿。如果变量BClose的值为False时将参数Cancel的值设置为True,以禁止关闭操作。

3) 第9行到第12行代码是mynz_27过程,将变量BClose的当前值设置为True后使用Close方法关闭工作簿。

我们看看程序的运行截图,首先,我们单击关闭“X”的按钮,看看结果是怎么样的,在下面的截图中显示了“此功能已经被禁止,文件无法关闭!”,这就明这个功能是无法利用的,点击这个 关闭“X”的按钮,文件时无法关闭的。

那么我们将如何关闭这个工作薄呢?不能让别人无法关闭,自己也无法关闭啊,这时就要利用上述的mynz_27过程了。

我们再回顾一下这个过程:

Sub mynz_27() '27禁用EXCEL工作簿右上角的关闭按钮,测试时要将前面的半角引号去掉

BClose = True

MsgBox "可以关闭了。"

End Sub

非常的简单,起到什么作用呢?我们先试一试,建立一个按钮关联mynz过程,点击一下,会告诉我们“可以关闭了”,虽然菜单没有任何的变化,但这时我们再点击关闭“X”的按钮,可以关闭了。

就这么简单呢.原来在执行上述的mynz_27过程后,BClose = True,就可以关闭文件了,如果我们把上述的关联按钮设置的隐秘一些,是不是就可以自己才能够关闭文件了?这就是玩的花活了。

今日内容回向:

1 禁用关闭按钮的思路是什么?

2 启用关闭按钮如何做到的?

本讲内容参考程序文件:VBA代码解决方案(27).xlsm

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



http://www.lryc.cn/news/606000.html

相关文章:

  • 微信小程序性能优化与内存管理
  • 辐射源定位方法简述
  • 【25-cv-08807】David携Tyrone Acierto 雕塑版权发案
  • ros2--参数指令--rqt
  • sqli-labs:Less-16关卡详细解析
  • 揭秘动态测试:软件质量的实战防线
  • vue+elementui实现问卷调查配置可单选、多选、解答
  • 代码随想录day51图论2
  • Elasticsearch DSL 核心语法大全:match、bool、range、聚合查询实战解析
  • 软件项目中如何编写项目计划书?指南
  • SpringBoot3.x入门到精通系列:1.1 简介与新特性
  • 代码随想录刷题Day21
  • SELinux 核心概念与访问控制机制解析
  • 数据库学习------数据库事务的特性
  • 【计算机组成原理】第二章:数据的表示和运算(上)
  • Python爬虫06_Requests政府采购严重违法失信行为信息记录爬取
  • Android U 软件fota版本后APN更新逻辑
  • CSS入门指南:从选择器到样式布局
  • SQL 中 WHERE 与 HAVING 的用法详解:分组聚合场景下的混用指南
  • Spring AI 系列之二十八 - Spring AI Alibaba-基于Nacos的prompt模版
  • HCIP面试第一章内容总结
  • 【LeetCode 热题 100】4. 寻找两个正序数组的中位数——(解法一)线性扫描
  • 【ARM】PK51关于内存模式的解析与选择
  • 全基因组关联分析(GWAS)中模型参数选择:MLM、GLM与FarmCPU的深度解析
  • 【08】大恒相机SDK C#发开 —— 多相机采集
  • 家政小程序系统开发:满足多元家政需求
  • 智慧油站漏检率↓78%:陌讯多模态融合算法的风险防控实践
  • linux线程封装和互斥
  • WinForm之CheckBox 控件
  • FPGA实现AD9361采集转SRIO与DSP交互,FPGA+DSP多核异构信号处理架构,提供2套工程源码和技术支持