Как манипулировать пользовательским интерфейсом Excel 2010 из кода VBA? - PullRequest
1 голос
/ 02 июня 2019

У меня есть приложение на основе 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

Когда я запускаю этот саб, пользовательский интерфейс создается следующим образом ...

enter image description here

Есть ли способ:

  1. Управление именем группы, отличной от «Пользовательских панелей инструментов»?
  2. Управление положением пользовательского интерфейса (не на вкладке «Надстройки», а на вновь созданной вкладке)?
  3. Как удалить группу «Команды меню» и кнопку? (я сделал это как-то?)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...