Тема: Создать команду с опциями

Здравствуйте.
Как создать команду с опциями (контекстным меню команды.)
Допустим есть команда запускающая макрос

^C^C_-vbarun Module1.Test
Sub Test()
Dim Point1 As Variant
Point1 = ThisDrawing.Utility.GetPoint(, vbCrLf & "точка")
ActiveDocument.ModelSpace.AddPoint (Point1)
End Sub

Нужно что бы после запуска команды и нажатия пр. кнопки имелась возможность выбрать одну из нескольких опций запускающих другой макрос.
Заранее спасибо

(изменено: shprot, 23 марта 2013г. 01:03:10)

Re: Создать команду с опциями

Опции добавил, но как назначить для них выполнение какой либо процедуры? Видимо через GetInput, но что-то делаю не так

Sub Test()
Dim Point1 As Variant
Point1 = ThisDrawing.Utility.GetPoint(, "Первая точка или [Параметры/Толщина]:")

Dim outStr As Variant
outStr = ThisDrawing.Utility.GetInput()

If outStr = "Параметры" Then
MsgBox outStr
Exit Sub
ElseIf outStr = "Толщина" Then
MsgBox outStr
Exit Sub
End If

ActiveDocument.ModelSpace.AddPoint (Point1)
End Sub

Re: Создать команду с опциями

В справке есть готовый пример. Сравни его со своим кодом:

Sub Example_GetInput()
    ' This example prompts for user input of a point. By using the
    ' InitializeUserInput method to define a keyword list, the example can also
    ' return keywords entered by the user.
    
    On Error Resume Next
    
    ' Define the valid keywords
    Dim keywordList As String
    keywordList = "Keyword1 Keyword2"
    
    ' Call InitializeUserInput to set up the keywords
    ThisDrawing.Utility.InitializeUserInput 128, keywordList
    
    ' Get the user input
    Dim returnPnt As Variant
    returnPnt = ThisDrawing.Utility.GetPoint(, "Enter a point(Keyword1, Keyword2): ")
    If Err Then
         If StrComp(Err.Description, "User input is a keyword", 1) = 0 Then
         ' One of the keywords was entered
             Dim inputString As String
             Err.Clear
             inputString = ThisDrawing.Utility.GetInput
             MsgBox "You entered the keyword: " & inputString
         Else
             MsgBox "Error selecting the point: " & Err.Description
             Err.Clear
         End If
    Else
        ' Display point coordinates
        MsgBox "The WCS of the point is: " & returnPnt(0) & ", " & returnPnt(1) & ", " & returnPnt(2), , "GetInput Example"
    End If
    
End Sub

(изменено: shprot, 23 марта 2013г. 09:50:48)

Re: Создать команду с опциями

Спасибо,не до конца разобрался.
Если использовать в место ввода

  returnPnt = ThisDrawing.Utility.GetPoint(, "Введите точку (Keyword1, Keyword2): ")

делает выбор

returnPnt = ThisDrawing.Utility.GetPoint(, "Введите точку [Keyword1/Keyword2]: ")

То

inputString = ThisDrawing.Utility.GetInput


Почему то всегда возвращает "Keyword1" а на "Keyword2" не реагирует, в чем может быть дело?

Re: Создать команду с опциями

Разобрался, ошибка была наименованиях[Keyword1/Keyword2], они не должны иметь одинаковую заглавную букву (помогли на другом форуме), спасибо.