excel - 如何从 VBA 代码操作 Excel 2010 UI?
问题描述
我有一个基于 Excel 的应用程序 - 用 VBA 编写。我想在运行时为应用程序创建一个自定义 UI。
例如,当用户打开我的 excel 时,应运行 VBA 方法以将新选项卡、组和控件添加到 Excel UI。关闭 Excel 后,应删除该自定义 UI。
excel 文件本身是从 csv 和 txt 文件自动生成的 - 因此我无法在 XLS (zip) 文件中嵌入 CustomUI.xml 文件,因为 StackOverflow 帖子建议很少。
我遇到了可以在运行时操作功能区的 VBA 代码....用 VBA 编写 Excel 插件,然后放置一个触发它的按钮
并尝试以下方法在Add-Ins
选项卡下创建我的自定义 UI
Sub CreateMyMenu()
Dim myCB As CommandBar
Dim myCBtn1 As CommandBarButton
Dim myCBtn2 As CommandBarButton
Dim myCPup1 As CommandBarPopup
Dim myCPup2 As CommandBarPopup
Dim myCP1Btn1 As CommandBarButton
Dim myCP1Btn2 As CommandBarButton
' Delete the CommandBar if it exists already
On Error Resume Next
Application.CommandBars("MyUI").Delete
' Create a new CommandBar
Set myCB = CommandBars.Add(name:="MyUI", Position:=msoBarFloating)
' Add button 1 to this bar
Set myCBtn1 = myCB.Controls.Add(Type:=msoControlButton)
With myCBtn1
.Caption = "My Tool"
.Style = msoButtonCaption '<- force caption text to show on your button
End With
' Show the command bar
myCB.Visible = True
End Sub
当我运行这个子时,用户界面是这样创建的......
有没有办法:
- 控制“自定义工具栏”以外的组名?
- 控制 UI 位置(不是在加载项选项卡下,而是在新创建的选项卡上)?
- 如何删除“菜单命令”组和按钮?(我是不是以某种方式做到了?)
解决方案
推荐阅读
- javascript - Promise 处理 get 调用的 http 错误(在 foreach 中)
- python - 在python中将数据保存在列表中的不同变量中
- database - 处理交易中的多个不可逆操作?
- kotlin - 虽然我可以使用 io.grpc:protoc-gen-grpc-kotlin 生成存根,但我无法实现它
- android - 当我在 Windows 10 中将 android studio 从 4.1 更新到 4.1.1 时
- c - 带有 rust-bindgen 的未定义符号,但可以用 cc 编译
- android - google play上的license tester需要的支付方式
- sql - 如何使用 CAST 和 SQL 中另一个表中的信息添加新列?
- django-rest-framework - GeoDjango 和移动应用程序。查找地址和地理位置
- python - Python外推错误