Запуск основных функций VBA с помощью Application.Run - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу запускать интегрированные функции 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 не будет работать.

1 Ответ

0 голосов
/ 05 февраля 2020

Итак, .dll в обсуждении VBA, вы можете просто использовать:

Dim testC As Color
   testC = RGB(1, 1, 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...