【VBA研究】EXCEL启动时自动启动窗体
作者:iamlaosong
VBA编程时为了界面美观,我们经常用到窗体Form(比如欢迎窗口),那么,如何做到让VBA窗体在EXCEL启动时自动运行呢?
方法有二:
第一,双击ThisWorkbook,输入以下代码(Open事件):
Private Sub Workbook_Open()
Application.Visible = False ' 关闭应用对象,只保留窗体。
Welcome.Show
End Sub
第二,也可以插入一个模块,输入下面自启动代码:
Sub Auto_Open()
UserForm1.Show
End Sub
两种方法都可以启动VBA窗体(关闭窗体:Unload UserForm1或者UserForm1.Hide)。
上面两个过程其实就是一个自启动过程,除了启动窗体,还可以干很多其他的事情,比如增加菜单,总之,一些需要在Excel启动后就完成的功能都可以放在这些过程中。下面是一个增加菜单的程序:
Open事件:
Private Sub Workbook_Open()
AddNewMenu
End Sub
模块中AddNewMenu过程,本过程也可以直接放在Open方法中,这样写是为了可读性。
'添加菜单项
'与添加新菜单一样,在添加菜单项及子菜单时,使用Add方法,且指定合适的控件类型,其代码清单如下:
Sub AddNewMenu()Dim HelpMenu As CommandBarControlDim NewMenu As CommandBarPopupDim MenuItem As CommandBarControlDim SubMenuItem As CommandBarButtonOn Error Resume Next'如果菜单已存在,则删除该菜单CommandBars(1).Controls("循环取货(&X)").Delete'利用ID属性查找帮助菜单Set HelpMenu = CommandBars(1).FindControl(ID:=30010)If HelpMenu Is Nothing Then'如果该菜单不存在,则将新菜单添加到末尾'设置新菜单为临时的Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)Else'将新菜单添加到帮助菜单之前Set NewMenu = CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=HelpMenu.Index, Temporary:=True)End If'添加菜单标题并指定热键NewMenu.Caption = "循环取货(&X)"'添加第一个菜单项Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)With MenuItem.Caption = "导入看板(&K)..."'添加快捷键.ShortcutText = "Ctrl+Shift+K".FaceId = 590 ' 不同的数值代表不同的图标.OnAction = "ImpKanban"End With'添加第二个菜单项Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)With MenuItem.Caption = "导入清单(&Q)..."'添加快捷键.ShortcutText = "Ctrl+Shift+Q".FaceId = 162.OnAction = "ImpQingdan"End With'添加第三个菜单项'本菜单有子菜单项,因此其类型为msoControlPopupSet MenuItem = NewMenu.Controls.Add(Type:=msoControlPopup)With MenuItem.Caption = "数据报表(&R)..."'添加分隔线.BeginGroup = TrueEnd With'添加子菜单'添加第一个子菜单Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)With SubMenuItem.Caption = "月汇总(&M)".FaceId = 110.OnAction = "MonthRpt"End With'添加第二个子菜单Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)With SubMenuItem.Caption = "季度汇总(&Q)".FaceId = 222.OnAction = "SeasonRpt"End With
End Sub
【VBA研究】EXCEL启动时自动启动窗体相关推荐
- 在 Excel 启动时运行宏
如果您希望每当启动 Microsoft Excel 时都自动执行某些操作,可以录制或编写一个每当打开工作簿时都将运行的宏.有两个办法可以做到这一点: 录制一个宏,然后用 Auto_Open 这一名称保 ...
- lxd linux系统视频教程,如何在 Linux 启动时自动启动 LXD 容器
Q:我正在使用基于 LXD("Linux 容器")的虚拟机.如何在 Linux 系统中启动时自动启动 LXD 容器? 当 LXD 在启动时运行,你就可以随时启动容器.你需要将 bo ...
- VBA的代码,在Excel启动时自动执行
前言: 有时,我们想在程序启动时,就读入某些数据 1.建立一个Auto的 モジュール 2.在里面写如下代码 Private Sub Auto_Open()'Demand Summaryの工数表示 ...
- rmi java 服务_javaweb项目启动时自动启动rmi服务器实例
1.我们先写一个web项目启动时需要运行的类RmiRegisterServlet.java package com.mx.Servlet; import javax.servlet.ServletCo ...
- VBA:EXCEL粘贴时跳过有公式单元格
利用HasFormula属性,如果为真时跳过,如果为假是覆盖!
- 解决Word、Excel启动时提示向程序发送命令出现问题
参考这个https://blog.csdn.net/sinat_37967865/article/details/78704729 问题没有解决,试着切换用户发现其它用户登录没有这个问题,可能是用户配 ...
- mysql启动时自动启动event事件
mysql定时执行-mysql event事件 2012年12月07日 ⁄ mysql基础语法 ⁄ 共 3221字 ⁄ 被围观 167 views+⁄ 发帖人: admin 分别有liunx,j ...
- 打开excel 自动启动宏_Excel启动时自动打开不需要的文件
打开excel 自动启动宏 Do unwanted files open automatically when Excel starts? Perhaps something changed in y ...
- lxd容器运行Android,对于启动Linux时自动启动 LXD 容器的方法解析
Q:我正在使用基于 LXD("Linux 容器")的虚拟机.如何在 Linux 系统中启动时自动启动 LXD 容器? 当 LXD 在启动时运行,你就可以随时启动容器.你需要将boo ...
最新文章
- UIAppearanceContainer 利器
- 渗透测试工具——密码攻击工具
- 全市场等权中位数_市场指数估值周报20200418
- 六级单词词汇表(有注音)
- 斑马Zebra LP2844 打印机驱动
- 欧洲能源商品期货股票套利
- 【SCIR笔记】以文档为额外知识的生成式对话
- APICloud入门
- 微型计算机原理实验二,微机原理实验2
- 合金电阻参数选型资料
- 883. 三维形体投影面积C++
- 益聚星荣:贝壳三季报曝光了二手房市场有多惨
- Java云原生(Spring Native)开发初体验报告
- 零成本学arduino——74hc595寄存器教程
- 物流信息管理软件测试培训,第四方物流管理系统的分析与软件测试
- 北斗导航 | 初尝PPP-RTK禁果
- android ro.boot.mac,Android设备ro.boot.serialno的前世今生
- ExoPlayer 播放器开发指南(译)
- Echarts定制化组件展示网站(包括3d饼环图,3d柱状图,三维柱状图,水滴图)
- html5 div 简单布局
热门文章
- 卸载AMD software后导致声卡驱动(AMD High Definition Audio)损坏问题的解决办法
- 机器视觉: LBP-TOP
- python缩进格式作用_缩进(Python很将就格式)
- JavaScript语言精髓与编程实践(第2版)
- DANet核心内容翻译
- 如何成为 Java 技术经理?
- Andorid之拍照及相册选取照片回显
- android sdk 混淆 修改,Android-SDK默认混淆配置ProGuard
- 网络工程、软件工程、计算机科学与技术、物联网专业,主要都学习什么内容?
- linux 解压tar.lz文件