VBA窗体最大化最小化按钮实现

简介: VBA窗体最大化最小化按钮实现

打开excel,找到开发工具 ,然后点击 Visual Basic进入代码编辑器窗口:

点击插入>>用户窗体,如下图所示:

如果此时运行,得到的效果如下所示,是没有最大化和最小化窗口的:

下面我们就来添加最大化最小化功能的实现。

双击窗体,进入代码编辑界面,输入以下代码:

Option Explicit
Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME As Long = &H40000 '(恢复大小)
Private Const WS_MINIMIZEBOX As Long = &H20000 '(最小化)
Private Const WS_MAXIMIZEBOX As Long = &H10000 '(最大化)
Private Sub UserForm_Initialize()
   Dim hWndForm As Long
   Dim IStyle As Long
   hWndForm = FindWindow("ThunderDFrame", Me.Caption)
   IStyle = GetWindowLong(hWndForm, GWL_STYLE)
   IStyle = IStyle Or WS_THICKFRAME '还原
   IStyle = IStyle Or WS_MINIMIZEBOX '最小化
   IStyle = IStyle Or WS_MAXIMIZEBOX '最大化
   SetWindowLong hWndForm, GWL_STYLE, IStyle
End Sub

将鼠标置于Sub函数内部,按F5按键运行,得到如下效果:

这里需要说明的是,以上代码支持在64位操作系统运行,如果是32位系统,在导入库的时候,应使用下面一段代码:

Private Declare  Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare  Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare  Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

与前面一段代码相比,发现唯一的区别在于,Declare后面少了PtrSafe,其原因是:Microsoft 提供了一个 Win32API.txt 文件,其中包含 1,500 个 Declare 语句以及一个用于剪切所需 Declare 语句并将其粘贴到您的代码中的工具。不过,这些语句适用于 32 位系统,必须使用下文讨论的信息将其转换为 64 位。现有 Declare 语句在 64 位 VBA 中不会进行编译,直到使用 PtrSafe 属性将它们标记为对 64 位安全。

具体可参阅MicroSoft Office 官方资料:32 位和 64 位版本的 Office 2010 之间的兼容性

目录
相关文章
|
Python
python使用pip镜像源加速安装包(清华、阿里、中科大)
python使用pip镜像源加速安装包(清华、阿里、中科大)
10431 0
python使用pip镜像源加速安装包(清华、阿里、中科大)
|
搜索推荐 安全 前端开发
满血上阵!DeepSeek x 魔笔低代码平台创造专属知识空间
本文介绍了如何结合阿里云百炼和多端低代码开发平台魔笔,快速构建一个基于 DeepSeek 的智能化专属知识空间应用。通过使用DeepSeek R1等先进推理模型,该应用能够实现精准的知识推理与智能问答,极大提升信息处理效率。教程涵盖了从创建百炼智能体、获取必要配置参数到在魔笔平台上搭建及发布应用的全过程,并展示了如何对应用进行内容客制化以满足特定需求。此外,还探讨了未来扩展方向,如生产环境部署、多租户隔离以及多样化的用户身份认证方案,旨在为企业和个人提供更加安全、便捷的知识管理解决方案。
满血上阵!DeepSeek x 魔笔低代码平台创造专属知识空间
|
11月前
|
前端开发 IDE 数据库连接
最新PyCharm 安装详细图文教程:小白也能轻松搞定
PyCharm 来自 JetBrains,是一款专为 Python 打造的专业集成开发环境(IDE)。我们用这个工具可以高效地编写、调试并运行 Python 代码,同时还能使用虚拟环境管理、数据库连接以及前端相关功能。无论是在入门阶段练习基础语法,还是在工程化场景中搭建完整项目,PyCharm 用起来都很顺手。
2062 16
|
存储 Java 程序员
Java 基础知识点全面梳理包含核心要点及难点解析 Java 基础知识点
本文档系统梳理了Java基础知识点,涵盖核心特性、语法基础、面向对象编程、数组字符串、集合框架、异常处理及应用实例,帮助初学者全面掌握Java入门知识,提升编程实践能力。附示例代码下载链接。
609 0
Linux 操作系统
在 Linux 中,UID(用户 ID)是标识用户身份的重要概念。UID 唯一标识每个用户,通过 UID 可区分不同用户类别:UID 0 为超级用户,1-999 为系统用户,1000 及以上为普通用户。因此,正确选项为:UID 标识用户、可区分用户类别、普通用户 UID 大于 1000。
|
算法 API 开发者
沪深A股实时行情API接入指南
逐笔Tick数据接口,查询A股上市公司的最新成交明细,确保获取市场的最新交易信息。返回示例如下:
|
人工智能 C# C++
在 Visual Studio 上体验腾讯云 AI 代码助手
本文介绍如何在 Visual Studio 2022 中安装和使用腾讯云 AI 代码助手。首先,通过扩展管理器搜索并安装插件,重启 VS 完成安装。接着,在工具栏的“工具”中找到并启动助手,快捷键为 ALT + T。测试时输入问题如冒泡排序,助手会生成 C# 代码并可直接运行。建议优化默认代码语言为 C#、增加代码插入功能,并统一显示位置以提升用户体验。
2210 1
|
前端开发
Typora更换炫酷主题(含主题下载云盘链接)
Typora更换炫酷主题(含主题下载云盘链接)
4846 0
Typora更换炫酷主题(含主题下载云盘链接)
|
缓存 PHP C语言
宝塔PHP8.1安装fileinfo拓展失败解决办法
在宝塔面板安装PHP8.1后,fileinfo扩展安装失败,手动尝试也报错。通过分析错误信息,在Makefile中修改CFLAGS添加`-std=c99`,并执行`make clean`清除缓存后,重新编译安装成功。最后在php.ini中启用fileinfo扩展并重启PHP服务。注意需调整CFLAGS为`-std=c99 -g`,去掉`-O2`。
2367 0