Создать общую библиотеку функций VBA в Excel

1281
Nils Tiebos

В нашей компании у нас есть много разных файлов Excel для отслеживания наших проектов. Мы хотели бы реализовать некоторые функции VBA в этих файлах, написанных нами, ИТ-отделом. Мы хотим, чтобы мы могли написать функции, а затем поместить их в какую-то центральную библиотеку на сервере, чтобы пользователи могли использовать их во всех существующих и будущих файлах Excel без каких-либо дополнительных знаний о Excel.
В идеале они использовали бы эти функции так же, как теперь они используют существующие функции Excel, такие как Sum (), Avg (), Dayofweek (), ... Таким образом, они просто напечатали бы cell = VBAFunction1 (), и функция будет использоваться.

Есть ли способ централизовать это, или нам придется копировать каждую функцию в раздел VBA каждого листа Excel?

2

1 ответ на вопрос

1
duDE

Вы можете написать свою библиотеку как COM DLL в C #, VB.NET или более старых VB. Эта библиотека должна быть зарегистрирована regsvr32и может использоваться во всех VBA / VBScripts следующим образом:

Dim oLib : Set oLib = CreateObject( "myLib.myInterface" ) 

где myLib - это имя вашего myLib.dll.

Если вы сделаете это таким образом, функции будут доступны во всплывающем окне с предложенными функциями? Или это будет полностью зависеть от "Public" и от того, что ты сказал? Raystafarian 8 лет назад 0
@Raystafarian: все функции библиотеки DLL доступны через определенные пользователем интерфейсы: https://msdn.microsoft.com/en-us/library/office/bb687915.aspx duDE 8 лет назад 1