作者: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启动时自动启动窗体相关推荐

  1. 在 Excel 启动时运行宏

    如果您希望每当启动 Microsoft Excel 时都自动执行某些操作,可以录制或编写一个每当打开工作簿时都将运行的宏.有两个办法可以做到这一点: 录制一个宏,然后用 Auto_Open 这一名称保 ...

  2. lxd linux系统视频教程,如何在 Linux 启动时自动启动 LXD 容器

    Q:我正在使用基于 LXD("Linux 容器")的虚拟机.如何在 Linux 系统中启动时自动启动 LXD 容器? 当 LXD 在启动时运行,你就可以随时启动容器.你需要将 bo ...

  3. VBA的代码,在Excel启动时自动执行

     前言: 有时,我们想在程序启动时,就读入某些数据 1.建立一个Auto的 モジュール 2.在里面写如下代码 Private Sub Auto_Open()'Demand Summaryの工数表示 ...

  4. rmi java 服务_javaweb项目启动时自动启动rmi服务器实例

    1.我们先写一个web项目启动时需要运行的类RmiRegisterServlet.java package com.mx.Servlet; import javax.servlet.ServletCo ...

  5. VBA:EXCEL粘贴时跳过有公式单元格

    利用HasFormula属性,如果为真时跳过,如果为假是覆盖!

  6. 解决Word、Excel启动时提示向程序发送命令出现问题

    参考这个https://blog.csdn.net/sinat_37967865/article/details/78704729 问题没有解决,试着切换用户发现其它用户登录没有这个问题,可能是用户配 ...

  7. mysql启动时自动启动event事件

    mysql定时执行-mysql event事件 2012年12月07日  ⁄ mysql基础语法  ⁄ 共 3221字 ⁄ 被围观 167 views+⁄ 发帖人:  admin 分别有liunx,j ...

  8. 打开excel 自动启动宏_Excel启动时自动打开不需要的文件

    打开excel 自动启动宏 Do unwanted files open automatically when Excel starts? Perhaps something changed in y ...

  9. lxd容器运行Android,对于启动Linux时自动启动 LXD 容器的方法解析

    Q:我正在使用基于 LXD("Linux 容器")的虚拟机.如何在 Linux 系统中启动时自动启动 LXD 容器? 当 LXD 在启动时运行,你就可以随时启动容器.你需要将boo ...

最新文章

  1. UIAppearanceContainer 利器
  2. 渗透测试工具——密码攻击工具
  3. 全市场等权中位数_市场指数估值周报20200418
  4. 六级单词词汇表(有注音)
  5. 斑马Zebra LP2844 打印机驱动
  6. 欧洲能源商品期货股票套利
  7. 【SCIR笔记】以文档为额外知识的生成式对话
  8. APICloud入门
  9. 微型计算机原理实验二,微机原理实验2
  10. 合金电阻参数选型资料
  11. 883. 三维形体投影面积C++
  12. 益聚星荣:贝壳三季报曝光了二手房市场有多惨
  13. Java云原生(Spring Native)开发初体验报告
  14. 零成本学arduino——74hc595寄存器教程
  15. 物流信息管理软件测试培训,第四方物流管理系统的分析与软件测试
  16. 北斗导航 | 初尝PPP-RTK禁果
  17. android ro.boot.mac,Android设备ro.boot.serialno的前世今生
  18. ExoPlayer 播放器开发指南(译)
  19. Echarts定制化组件展示网站(包括3d饼环图,3d柱状图,三维柱状图,水滴图)
  20. html5 div 简单布局

热门文章

  1. 卸载AMD software后导致声卡驱动(AMD High Definition Audio)损坏问题的解决办法
  2. 机器视觉: LBP-TOP
  3. python缩进格式作用_缩进(Python很将就格式)
  4. JavaScript语言精髓与编程实践(第2版)
  5. DANet核心内容翻译
  6. 如何成为 Java 技术经理?
  7. Andorid之拍照及相册选取照片回显
  8. android sdk 混淆 修改,Android-SDK默认混淆配置ProGuard
  9. 网络工程、软件工程、计算机科学与技术、物联网专业,主要都学习什么内容?
  10. linux 解压tar.lz文件