VBA智慧办公9——图例控件教程

如图,利用VBA进行可视化交互界面的设计,在界面中我们用到了label,button,text,title等多个工具,在进行框图效果的逐一实现后可进行相应的操作和效果实现。
VBA(Visual Basic for Applications)是一种用于编写Windows应用程序的编程语言,可以用于创建可视化交互界面。以下是一些步骤,可以帮助您使用VBA创建可视化交互界面:
- 创建一个新的VBA项目:打开Visual Basic for Applications(VBA)编辑器,创建一个新的VBA项目。
- 添加一个新的模块:在项目中创建一个新的模块,用于存储可视化交互界面的代码。
- 编写可视化交互界面的代码:在模块中编写可视化交互界面的代码,例如使用VBA的图形库创建图形界面。
- 添加交互事件:在可视化交互界面中添加交互事件,例如单击按钮时显示一个消息框。
- 添加用户输入:在可视化交互界面中添加用户输入,例如使用VBA的文本框控件接收用户输入。
- 添加用户输出:在可视化交互界面中添加用户输出,例如使用VBA的文本框控件显示用户输出。
- 添加用户交互:在可视化交互界面中添加用户交互,例如使用VBA的按钮控件响应用户单击。
- 调试和测试:在编写完代码后,使用VBA的调试器和测试器调试和测试可视化交互界面,确保其正常运行。
- 发布和部署:将可视化交互界面发布到Windows应用程序商店或其他目标平台上,以便用户可以下载和使用它。
以上是一些基本的步骤,但是VBA还提供了许多其他功能和控件,可以用于创建更复杂的可视化交互界面。
以下图案例为操作相关举例:

点击上方工具箱

仔细研读工具箱,共分为两行,第一行从左往右分别为:选定对象、标签、文本框、复合框、列表框、复选框、选项按钮、切换按钮;第二行从左往右分别为:框架、命令按钮、TabStrip、多页、滚动条、旋转按钮、图像、RefEdit。

分析下图表格:在复选框内进行密码的输入,再点击确定后实现密码验证判断是否正确。

Private Sub loginCmd_Click()
If UserForm1.tpassword = "" Then
MsgBox "登录密码不能为空", 48, "警告"
Exit Sub
End If
If Sheet13.Range("c3").Value = UserForm1.tpassword.Text Then
Unload Me
Sheet7.Visible = xlSheetVisible
MsgBox "恭喜,密码正确,欢迎您使用本系统", 64, "登录成功"
'Sheet7.Activate
UserForm2.ShowApplication.Visible = True
Else
MsgBox "对不起,请您核对密码是否正确,请与管理员联系", 32, "警告"
Exit Sub
End If
End Sub
这段代码是一个简单的用户登录程序,当用户点击登录按钮时,程序会检查用户输入的密码是否为空,如果为空则会弹出一个警告框,否则会将用户的密码与表格中的密码进行比较,如果匹配则会弹出一个登录成功的消息框,否则会弹出一个登录失败的消息框。
Private Sub UserForm_Initialize()hWnd = FindWindow(vbNullString, Me.Caption)SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE '置顶Application.Visible = Falsetpassword.SetFocus
End Sub
这段代码定义了一个名为UserForm的窗体,并在窗体的Initialize事件中初始化了窗体的属性,包括窗体的句柄、窗体的位置、窗体的大小等。
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = 2
Private Const SWP_NOSIZE = 1
Dim hWnd As Long
这段代码定义了一个名为FindWindow的函数,用于在Windows操作系统中查找窗口句柄。该函数接受两个参数,第一个参数是窗口类名,第二个参数是窗口名称。该函数返回窗口句柄的值,如果找不到窗口则返回-1。
该函数使用了PtrSafe关键字来声明该函数的返回值类型为Long类型,以便在函数内部进行位运算。
该函数还定义了一个名为SetWindowPos的函数,用于设置窗口的位置和大小。该函数接受五个参数,分别是窗口句柄、窗口插入位置、X坐标、Y坐标和宽度和高度。如果窗口不在屏幕上,则该函数将设置窗口为最顶层窗口,并将其位置设置为屏幕左上角。如果窗口大小不能被改变,则该函数将设置窗口大小为最大宽度和高度。
该函数使用了常量HWND_TOPMOST和SWP_NOMOVE来表示最顶层窗口和不允许移动窗口的标志。
该函数还定义了一个名为hWnd的变量,用于存储窗口句柄的值。
以上,即可完成基于VBA的登陆初始化界面的初步过程。
相关文章:
VBA智慧办公9——图例控件教程
如图,利用VBA进行可视化交互界面的设计,在界面中我们用到了label,button,text,title等多个工具,在进行框图效果的逐一实现后可进行相应的操作和效果实现。 VBA(Visual Basic for Applications&a…...
Presto VS Spark
环境配置 5个节点,每个节点10G内存。 测试SQL,每个执行3次,求平均,对比计算性能。 版本信息 Spark:2.3.1Presto: 0.208 10亿量级查询性能对别 Spark: spark-sql> select sex,count(1) from conta…...
为什么我们能判断声音的远近
想象一下,当我们走在路上时,听到了头顶的鸟儿在树梢间的叫声,即使无法透过浓密的树叶看见它,也可以大致知道鸟儿的距离。此时身后传来由远到近自行车铃铛声,我们并不需要回过头去看,便为它让开了道路。这些…...
那些关于DIP器件不得不说的坑
了解什么是DIP DIP就是插件,采用这种封装方式的芯片有两排引脚,可以直接焊在有DIP结构的芯片插座上或焊在有相同焊孔数的焊位中。其特点是可以很方便地实现PCB板的穿孔焊接,和主板有很好的兼容性,但是由于其封装面积和厚度都比较…...
论文笔记:基于U-Net深度学习网络的地震数据断层检测
0 论文简介 论文:基于U-Net深度学习网络的地震数据断层检测 发表:2021年发表在石油地球物理勘探 1 问题分析和主要解决思路 问题:断层智能识别,就是如何利用人工智能技术识别出断层。 解决思路:结合U-N…...
kafka单节点快速搭建
1.搭建使用centos7主机,关闭防火墙和selinux服务 2.创建kafka存放目录 mkdir /etc/kafka 3.从kafka官网下载安装包 我这里下载了3.3.1版本的kafka,放到kafka目录中 下载地址:Apache Kafka 4.解压安装包并更改名称 tar -zxvf /etc/kaf…...
【MySQL】(6)常用函数
文章目录 日期函数获取日期日期计算 字符串函数charsetconcatlengthsubstringreplaceinstrstrcmpltrim, rtrim, trim 数学函数absbin, hexconvceiling, floorrandformatmod 其他函数user() 查询当前用户密码加密md5()password() database() 查看当前数据库ifnull() 日期函数 函…...
Linux学习 Day1
注意: 以下内容均为本人初学阶段学习的内容记录,所以不要指望当成查漏补缺的字典使用。 目录 1. ls指令 2. pwd指令 3. cd指令 4. touch指令 5. mkdir指令(重要) 6. rmdir指令 && rm 指令(重要ÿ…...
Hibernate中的一对多和多对多关系
Hibernate的一对多和多对多 Hibernate是一个优秀的ORM框架,它简化了Java应用程序与关系型数据库之间的数据访问。在Hibernate中,我们可以使用一对多和多对多的关系来处理复杂的数据模型。本文将介绍Hibernate中的一对多和多对多,包括配置和操…...
Linux系统之部署Samba服务
Linux系统之部署Samba服务 一、Samba服务介绍1.Samba服务简介2.NFS和CIFS简介3.Smaba服务相关包4.samba监听端口4.samba相关工具及命令 二、环境规划介绍1.环境规划2.本次实践介绍 三、Samba服务端配置1.检查yum仓库2.安装smaba相关软件包3.创建共享目录4.设置共享目录权限5.新…...
回顾产业互联网的发展历程,技术的支撑是必不可少的
从以新零售、全真互联网为代表的产业互联网的概念诞生的那一天开始,互联网的玩家们就一直都在寻找着它们的下一站。尽管在这个过程当中,遭遇到了很多的困难,走过了很多的弯路,但是,产业互联网的大方向,却始…...
关于gas费优化问题
关于gas费优化问题 首先我们先来看一下这段代码 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GasGolf{uint public total;//[1,2,3,4,5,100]function sum(uint[] memory nums) external{for(uint i 0;i<nums.length;i1){bool isEven nums[i] % 2…...
Linux——中断和时间管理(中)
目录 驱动中的中断处理 中断下半部 软中断 tasklet 工作队列 驱动中的中断处理 通过上一节的分析不难发现,要在驱动中支持中断,则需要构造一个 struct irqaction的结构对象,并根据IRQ 号加入到对应的链表中(因为 irq_des 已经在内核初始…...
嵌入式软件中常见的 8 种数据结构详解
目录 第一:数组 1、数组的应用 第二:链表 1、链表操作 2、链表的应用 第三:堆栈 1、堆栈操作 2、堆栈的应用 第四:队列 1、队列操作 2、队列的应用 第五:哈希表 1、哈希函数 2、哈希表的应用 第六&#…...
vue 修改当前路由参数并刷新界面
项目中经常用到的需求是在当前页面修改路由中的参数,并刷新页面。 我们只用this. r o u t e r . r e p l a c e 或者 t h i s . router.replace或者this. router.replace或者this.router.go是不行的,需配合下面的代码 方法一: this.$router.…...
视频处理之视频抽帧的python脚本
在计算机视觉研究中,处理视频的时候,往往需要将视频抽帧成图片。如果多个视频都存放在一个文件夹里,并且希望抽帧出来的图片,以一个视频对应一个文件夹的形式存放,可以用以下代码,抽帧频率可自己手动修改&a…...
【youcans 的 OpenCV 学习课】22. Haar 级联分类器
专栏地址:『youcans 的图像处理学习课』 文章目录:『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】22. Haar 级联分类器 3. Haar 特征及其加速计算3.1 Haar 特征3.2 Haar 特征值的计算3.3 积分图像3.4 基于积分图像加速计算 Haar 特…...
如何避免知识盲区 《人生处处是修行》 读书笔记
如何避免知识盲区 多元化学习:不要只关注自己擅长的领域,应该尝试学习其他领域的知识,例如文学、艺术、科学等。 拓宽阅读:阅读不同领域的书籍、文章、博客等,可以帮助你了解更多的知识和观点。 参加培训和课程&…...
vue返回上一页自动刷新方式
再vue中,返回上一页时:如果页面是打开的状态,页面不会自动刷新,会保持着上次跳转的状态不更新; 原因:vue-router的切换不同于传统的页面切换,而是路由之间的切换,其实就是组件之间的…...
查询SERVER正在执行的SQL语句
--方法一 select * from master..sysprocesses SELECT distinct [Spid] session_Id, ecid, [Database] DB_NAME(sp.dbid), [User] nt_username, [Status] er.status, [Wait] wait_type, [Individual Query] SUBSTRING(qt.text, er.statement_start_offset / 2,…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
