Я хочу запускать интегрированные функции VBA, такие как VBA.RGB (), с помощью команды Application.Run (). Этот метод хранится в C: \ Program Files (x86) \ Common Files \ Microsoft Shared \ VBA \ VBA7.1 \ VBE7.DLL
Согласно этой статье Microsoft, запуск методов, хранящихся в DLL, должен быть выполнимым с Application.run: https://docs.microsoft.com/en-us/office/vba/api/Excel.Application.Run
Но как именно я могу это сделать? Ни одна из строк кода, приведенных ниже, не работает.
Sub RunFunction()
Dim ExampleValue As Variant
ExampleValue = Application.Run("RGB", 1, 1, 1)
ExampleValue = Application.Run("C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.DLL!RGB", 1, 1, 1)
ExampleValue = Application.Run("VBE7.DLL!RGB", 1, 1, 1)
ExampleValue = Application.Run("VBE7!RGB", 1, 1, 1)
End Sub
Я бы хотел избежать оборачивания всех этих стандартных функций в некоторые функции модуля.
Редактировать - чтобы дополнительно указать мой вопрос:
В конце дня я хотел бы создать функцию, похожую на CallByName, которая способна запускать интегрированные функции VBA из имени функции, заданного в виде строки. CallByName требует, чтобы объект вызывал методы или свойства. Пример: CallByName Workbooks, "Add", VbMethod
Вы не можете вызывать методы VBA таким способом. CallByName VBA, "RGB", VbMethod, 1, 1, 1
не будет работать.