关山难越,谁悲失路之人;萍水相逢,尽是他乡之客。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程教程 > HTML/CSS > 正文

VBA|插入自定义按钮、控件、创建自定义工具栏

guanshanw 2023-02-21 13:57 520 浏览 11 评论

可以在加载项选项卡中插入自定义按钮、创建自定义工具栏,效果如下:

Sub 插入自定义按钮()
Dim cmb As Office.CommandBar
Dim bt As Office.CommandBarButton
Set cmb = Application.CommandBars("Formatting")
Set bt = cmb.Controls.Add(Type:=Office.MsoControlType.msoControlButton)
With bt
.Caption = "右对齐"
.FaceId = 2950
.Style = msoButtonIconAndCaption
.OnAction = "Right"
End With
End Sub

下面的Right 过程是自定义按钮的回调函数。

Sub Right()
Selection.HorizontalAlignment = Excel.Constants.xlRight
End Sub

添加控件:

Sub 添加控件() '添加的控件用回调函数响应
 On Error Resume Next
 Dim cmb As Office.CommandBar
 Dim pop As Office.CommandBarPopup
 Dim bt As Office.CommandBarButton
 Dim combo As Office.CommandBarComboBox
 Dim drop As Office.CommandBarControl
 Dim txt As Office.CommandBarControl
 Application.CommandBars("Everything").Delete
 '添加子菜单控件
 Set cmb = Application.CommandBars.Add(Name:="Everything", Position:=msoBarFloating, temporary:=True)
 Set pop = cmb.Controls.Add(Type:=Office.MsoControlType.msoControlPopup)
 pop.Caption = "子菜单"
 pop.Controls.Add ID:=2520 '新建按钮
 pop.Controls.Add ID:=3 '打开按钮
 pop.Controls.Add ID:=23 '保存按钮
 '子菜单第2个位置添加一个用户自定义按钮,用enuAction回调函数响应
 Set bt = pop.Controls.Add(Type:=Office.MsoControlType.msoControlButton, Before:=2)
 With bt
 .Caption = "用户按钮!"
 .FaceId = 2950
 .Style = msoButtonIconAndCaption
 .OnAction = "MenuAction"
 End With
 '添加一个组合框控件,用MenuAction回调函数响应
 Set combo = cmb.Controls.Add(Type:=Office.MsoControlType.msoControlComboBox)
 With combo
 .Caption = "星期"
 .AddItem "Monday"
 .AddItem "Tuesday"
 .AddItem "Wednesday"
 .AddItem "Thursday"
 .AddItem "Friday", 3
 .AddItem "Saturday", 1
 .ListIndex = 3
 .OnAction = "MenuAction"
 End With
 '添加一个下拉框控件,用MenuAction回调函数响应
 Set drop = cmb.Controls.Add(Type:=Office.MsoControlType.msoControlDropdown)
 With drop
 .Caption = "Office版本"
 .AddItem "2003"
 .AddItem "2007"
 .AddItem "2010"
 .AddItem "2013"
 .AddItem "2016"
 .ListIndex = 2
 .OnAction = "MenuAction"
 End With
 '添加一个文本框控件,用MenuAction回调函数响应
 Set txt = cmb.Controls.Add(Type:=Office.MsoControlType.msoControlEdit)
 With txt
 .Caption = "住址:"
 .Text = "北京市朝阳区"
 .OnAction = "MenuAction"
 End With
 cmb.Visible = True
End Sub
Public Sub MenuAction() '响应控件的回调函数
 MsgBox Application.CommandBars.ActionControl.Caption
End Sub


创建自定义工具栏:

Sub 创建自定义工具栏()
Dim cmb As Office.CommandBar
Dim i As Integer
Set cmb = Application.CommandBars.Add(Name:="NewBar",
Position:=Office.MsoBarPosition.msoBarTop)
For i = 1 To 5
Application.CommandBars("Standard").Controls(1).Move cmb
Next i
cmb.Visible = True
End Sub

创建自定义工具栏()在word中也有效:

-End-

相关推荐

Web前端培训:五种JavaScript富文本编辑器的比较

开发自己的基于web的文本编辑器背后可能有不同的原因,但是,你总能找到一个工具来创建符合你的需求和资金的在线文本编辑器。在本文中,我们将简要回顾五个JavaScript富文本编辑器,帮助你找到满足期望...

前端开发教程之计算机基础知识

前端开发工程师,是时下很火的一个职业,不仅适合男生也合适女生;想从事软件行业,成为程序员、程序媛;前端开发工程师是介入工程开发的很好的一个入口,今天小编带大家进入前端开发,本文涉及入门html、cs...

vue.js简单前端感想

目前前端框架五花八门,从传统的javascript到现在的angularvuereact,再到flux等等。个人觉得重要的不是掌握好多门前端技术,重要的是打好javascript基础。现在越来越多...

16岁全栈开发者:我从开发游戏到写加密货币投资机器人的心路历程

选自Medium作者:NunoMartins机器之心编译参与:LuoSainan、一鸣全栈开发者听起来是个很高大上的程序员岗位,似乎没有几年工作经验是Hold不住的。但是,有个葡萄牙少年16...

微软推出 VSCode 新特性,为 TS 和 JS 用户提供 AI 辅助开发功能

除了开发人员非常喜欢的IntelliSense和代码完成之外,今年早些时候,微软还发布了IntelliCode,提供了一组AI辅助开发功能。VSCode团队现在宣布了一项新的实验性扩展,将I...

JavaScript主流框架3月趋势总结

框架使用情况我们首先来看看主流框架的使用趋势。下图显示了前四大框架(Angular,AngularJS,React和Vue)最近一个月的npm下载量趋势。你可以点击查看大图。框架增长率(上个月)增...

webstorm是什么软件

●WebStorm是一款由JetBrains开发的集成开发环境(IDE),它是专门为开发Web应用程序而设计的。它提供了许多功能,例如代码自动完成、错误突出显示、重构、调试、版本控制等,可...

认识Vue

什么是VueVue.js是一套用于构建用户界面的渐进式JavaScript框架,也是一个创建单页应用的Web应用框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue...

Java的未来在哪里

我是码农小胖哥。天天有编程干货分享。觉得写的不错可以点个赞,转发一下,关注一下。Java已经流行很多年了。很多的新兴语言都以Java作为标杆。那么Java主要在哪些场景使用呢?用于Web编程大...

jQuery 都过时了,那还学它干嘛

请问现在我还需要学习jQuery吗?听你在知乎说jQuery已经过时了,是不是就不用学了?短答案:jQuery还是可以学一学的,学了之后对写代码和封装库很有帮助。现在的「新人」依然可以学习...

一碟Vue小菜,您确定不要尝尝吗?

各位小伙伴,好长时间不见了,大家都过得怎么样?小编最近一直在忙新工作的事情,换了工作又要花一段时间适应,而且新项目的工作挺重的,每天加班都要加到八九点,而且当然是没有加班费的啦。不开心虽然最近没有写文...

前端培训哪个机构比较好?

目前,前端开发领域非常热门,前端工程师是IT行业中非常抢手的职业之一。前端技术不断地发展和变化,需要不断地学习和更新知识。因此,如果你的前端技能过硬且经验丰富那么工作机会还是有很多的。那么有很多小伙伴...

在八维教育,网站工程专业中教授的web前端框架有哪些?

在八维教育,网站工程专业中教授的web前端框架有哪些?这是一个问题,也是很多人关心的话题。1:web前端框架的定义Web前端框架,通常指的是由一群人搭建一个网站,他们能够通过简单的代码编写出优美的网页...

花了几天时间,把 Vue 改成了 Angular

最近规划一款预期规模会比较大、有较高复杂程度的企业级产品,Web框架最终选择了Vue。可以考虑的Web框架,基本就是众所周知的那三个:Angular最严谨,API很规范,一看就是大厂的作品...

React、Vue、Angular 经典前端框架讲解

前端框架是一种用于简化Web应用程序开发的工具。它们通过提供一些常用功能和组件来加速开发速度和提高代码质量。捷云介绍三种经典前端框架:React、Vue和Angular,并分析它们的优缺点。一...

已有11位网友发表了看法:

  • 关山导航

    关山导航  评论于 [2023-05-30 11:56:25]  回复

    vba在word顶部添加自定义按钮

  • 访客

    访客  评论于 [2023-06-23 10:36:35]  回复

    棒棒棒,受教了,已学会添加控件了,不知能否分享一下自定以控件的批量删除?也就是Application.CommandBars.Add(Name:="NewBar",Position:=Office.MsoBarPosition.msoBarTop)的反操作怎么实现?

  • 访客

    访客  评论于 [2023-06-23 10:38:03]  回复

    很棒的分享,受教了,已学会添加控件了,不知能否分享一下自定以控件的批量删除?也就是Application.CommandBars.Add(Name:="NewBar",Position:=Office.MsoBarPosition.msoBarTop)的反操作怎么实现?

取消回复欢迎 发表评论: