GetKeyword メソッドは、AutoCAD のコマンド プロンプトに対してキーワードを入力するようにユーザに要求します。
このメソッドは、ユーザの入力を要求する文字列のパラメータだけを受け取ります。キーワードおよび入力パラメータは、InitializeUserInput メソッドの呼び出しによって定義されます。
次の例では、InitializeUserInput メソッドの最初のパラメータを 1 に設定して NULL 入力([Enter]を押す)を認めないで、ユーザにキーワードの入力を要求しています。2 番目のパラメータは、有効なキーワードの一覧を設定します。
(vl-load-com)
(defun c:Ch3_KeyWord()
(setq acadObj (vlax-get-acad-object)
doc (vla-get-ActiveDocument acadObj)
utilityObj (vla-get-Utility doc))
(vla-InitializeUserInput utilityObj 1 "Line Circle Arc")
(setq keyWord (vla-GetKeyword utilityObj "\nEnter an option [Line/Circle/Arc]: "))
(alert (strcat "Keyword: " keyWord))
)
Sub Ch3_KeyWord() Dim keyWord As String ThisDrawing.Utility.InitializeUserInput 1, "Line Circle Arc" keyWord = ThisDrawing.Utility.GetKeyword(vbCrLf & "Enter an option [Line/Circle/Arc]: ") MsgBox "Keyword: " & keyWord, , "GetKeyword Example" End Sub
キーワード プロンプトで、ユーザが[Enter]を押した(NULL 入力)場合に既定値が指定されるようにすると、さらに使いやすくなります。次の例では、小さな修正箇所がありますので注意してください。
(vl-load-com)
(defun c:Ch3_KeyWord2()
(setq acadObj (vlax-get-acad-object)
doc (vla-get-ActiveDocument acadObj)
utilityObj (vla-get-Utility doc))
(vla-InitializeUserInput utilityObj 0 "Line Circle Arc")
(setq keyWord (vla-GetKeyword utilityObj "\nEnter an option [Line/Circle/Arc] <Arc>: "))
(if (= keyWord "")(setq keyWord "Arc"))
(alert (strcat "Keyword: " keyWord))
)
Sub Ch3_KeyWord2() Dim keyWord As String ThisDrawing.Utility.InitializeUserInput 0, "Line Circle Arc" keyWord = ThisDrawing.Utility.GetKeyword(vbCrLf & "Enter an option [Line/Circle/Arc] <Arc>: ") If keyWord = "" Then keyWord = "Arc" MsgBox "Keyword: " & keyWord, , "GetKeyword Example" End Sub