Я создаю макрос, чтобы добавить кнопку меню к выбранному объекту формы Visio, поэтому всякий раз, когда пользователь щелкает поле правой кнопкой мыши, появляется параметр и вызывается макрос. Я создал пару свойств объекта, которые будут использоваться вызываемым действием.
Я могу сделать это (УСПЕШНО) вручную, используя редактор ShapeSheet -> View Sections -> Actions -> и настроив действие со значением Action =CALLTHIS("ThisDocument.myFunction",,Prop.IPAddress)
sub myFunction (shpObj as Visio.shape, strIPAddress as String)
'working code with the functionsI want it to do. here I use the strIPAddress passed as an argument
Я пытаюсь автоматизировать это, создав макрос, который делает то же самое:
Public Sub AddActionToShape()
Dim vsoShape1 As Visio.Shape
Dim intActionRow As Integer
'Performs this action to the selected item
Set vsoShape1 = Application.ActiveWindow.Selection(1)
'create row in the action section (http://office.microsoft.com/en-gb/visio-help/HV080902125.aspx)
intActionRow = vsoShape1.AddRow(visSectionAction, visRowLast, visTagDefault)
'add action to the row (http://msdn.microsoft.com/en-us/library/office/ff765539(v=office.15).aspx)
'HERE IS THE PROBLEM
**vsoShape1.CellsSRC(visSectionAction, intActionRow, visActionAction).FormulaU = """myFunction(vsoShape1, vsoShape1.Prop.IPAddress)"""**
vsoShape1.CellsSRC(visSectionAction, intActionRow, visActionMenu).FormulaU = """My Function"""
End Sub
Мой вопрос:
Какое значение я должен указать в FormulaU, чтобы ссылаться на подпрограмму, определенную в моем макросе, при передаче параметров. Если я не должен использовать этот атрибут FormulaU, укажите мне правильный.