Author |
Topic |
|
ukreni
Ukraine
35 Posts |
Posted - 06/27/2008 : 11:29:05
|
Уважаемые, Мастера MS Visio, т.к. не знаю как правильно задать вопрос опишу ситуацию. В ячейку ShapeSeet можна вставить функцию - Insert>Function>"назва функции". А как в ячейку вставить свою функцию (которая, например, размещена в ThisDocument)? Ее в списке Select Function нет (если возможно, то как ее в этот список добавить?). И еще один вопрос, если эта функция имеет входные параметры [Function ttt(s as string) as string], то как поступить в данной ситуации? P.S.: речь идет о Function, а не о Sub. |
|
Tumanov
Russia
1198 Posts |
Posted - 06/27/2008 : 15:56:34
|
Insert>Function> использует только функции Visio. Свои вставить в принципе нельзя. Для использования своего кода можно вызвать макрос из ThisDocument с помощью CALLTHIS("procedure",["project"],[arg1,arg2,...]) Для того, чтобы сотворить подобие функции, разработчики рекомендуют возвращать результат (макросом) в какую-нибудь другую ячейку шейп-листа. В ту же самую ячейку результат вернуть нельзя. В SDK приводится вот такой пример использования Callthis: quote: Example 3 Use the following procedure in the ThisDocument class module. Sub A(shpObj As Visio.Shape) MsgBox "Click OK." End Sub Sub B(shpObj As Visio.Shape, strA As String) MsgBox strA End Sub Sub C(shpObj As Visio.Shape, strA As String, strB As String) MsgBox strA & strB End Sub Use any of the following syntax in a shape's EventDblClick cell with the preceding procedures. CALLTHIS("ThisDocument.A",) CALLTHIS("ThisDocument.B",,"Click") CALLTHIS("ThisDocument.C",,"Click", " OK.")
Можно также использовать RunAddon и RunAddonWArgs. |
|
|
|
Topic |
|
|
|