Есть ли какой-либо способ экспортировать пользовательскую ленту, хранящуюся в файле .xlsm?

#excel #vba

Вопрос:

У меня есть этот файл .xlsm с пользовательской лентой. Он имеет 8 кнопок, назначенных пользовательским макросам. Есть ли способ извлечь пользовательскую ленту в файл .xlam? Если нет, есть ли какой-либо способ открыть эту пользовательскую ленту из другого файла .xlsm?

Комментарии:

1. Я не совсем уверен, какова конечная цель, но редактор RibbonX может быть полезен.

2. Также смотрите здесь инструкции и пример: contextures.com/excelribbonaddcustomtab.html

Ответ №1:

Я использую этот код для извлечения файла customUI из файла Excel. Он создает копию файла, из которого затем customUI14.xml файл извлекается. Предположение: C:Program Files7-Zip7z.exe имеется в наличии

Я добавил этот фрагмент кода в sourcetools.xla, чтобы не только извлечь модули, но и пользовательский интерфейс для управления версиями.

 Public Sub extractCustomUIToFolder(wb As Workbook, pathTarget As String)
    Dim tmp As String
    tmp = wb.Path amp; "~temp.xlsm"
    wb.SaveCopyAs tmp

    Dim strShellString As String

    strShellString = "e " amp; Chr$(34) amp; tmp amp; Chr$(34) amp; _
                     " -o" amp; Chr$(34) amp; pathTarget amp; "" amp; Chr$(34) amp; _
                     " customUI14.xml -r -aoa"
                     
    Dim exePath As String
    exePath = Chr$(34) amp; "C:Program Files7-Zip7z.exe" amp; Chr$(34) amp; " "
    
    Call Shell(exePath amp; strShellString)
    
    Kill tmp
End Sub
 

Используя соответствующие команды, также можно «повторно импортировать» customUI14.xml файл в xlam

Ответ №2:

Единственная документация, которую я могу найти об импорте и экспорте пользовательских лент, находится здесь

и вот

  1. Нажмите кнопку Файл
  2. Выберите Параметры.
  3. Выберите Настроить ленту.
  4. Выберите Импорт/Экспорт.
  5. Выберите Экспортировать все настройки.
  6. Выберите пункт назначения и имя файла в окне Сохранения файла.
  7. Нажмите кнопку Сохранить, чтобы закончить.