У меня есть приложение на основе Excel - написано на VBA.
Я хотел бы создать пользовательский интерфейс для приложения во время выполнения.
например, когда пользователь открывает мое Excel, должен быть запущен метод VBA, чтобы добавить новую вкладку, группы и элементы управления в пользовательский интерфейс Excel. И после закрытия Excel этот пользовательский интерфейс должен быть удален.
Сам файл Excel автоматически генерируется из файлов csv и txt - поэтому я не могу встроить файл CustomUI.xml в файл XLS (zip), как предложено в нескольких сообщениях StackOverflow.
Я столкнулся с кодом VBA, который может манипулировать лентой во время выполнения .... Напишите Excel Addin с VBA, а затем вставьте кнопку, которая вызывает его
и попробовал следующее для создания моего пользовательского интерфейса в Add-Ins
tab
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
Когда я запускаю этот саб, пользовательский интерфейс создается следующим образом ...
Есть ли способ:
- Управление именем группы, отличной от «Пользовательских панелей инструментов»?
- Управление положением пользовательского интерфейса (не на вкладке «Надстройки», а на вновь созданной вкладке)?
- Как удалить группу «Команды меню» и кнопку? (я сделал это как-то?)