Как установить IDL, чтобы пользователи могли сказать, что параметр является «необязательным» в VBA? - PullRequest
2 голосов
/ 25 августа 2011

В IDL я определяю метод:

[id(1), helpstring("BLAH")] HRESULT SomeMethod([in, optional, defaultvalue(NULL)] IDispatch* para);

Когда я использую этот метод в VBA, подсказка на экране показывает только:

SomeMethod([para As Object])

Что мне нужно, так это,есть некоторые признаки того, что этот параметр является «необязательным», или, по крайней мере, говорят, что есть параметр по умолчанию «NULL».Вот так:

SomeMethod([[optional]para As Object])

или хотя бы

SomeMethod([para As Object = NULL])

Кто-нибудь может помочь?Спасибо.

1 Ответ

0 голосов
/ 03 ноября 2011

В VBA необязательные параметры указаны в скобках. т.е.

MsgBox (приглашение [, кнопки] [, заголовок] [, файл справки, контекст])

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

Скобки указывают на то, что параметр является необязательным. Нет другого индикатора .

В качестве обходного пути вы можете добавить «option_» в начало переменных, которые вы хотите отобразить как необязательные. например:

Function DoSomething(Optional optional_Value As String) As String

Теперь в Intellisense вы можете видеть слово "option_" как часть имени переменной.

...