概要 - キーワードを要求する(ActiveX)

GetKeyword メソッドは、AutoCAD のコマンド プロンプトに対してキーワードを入力するようにユーザに要求します。

このメソッドは、ユーザの入力を要求する文字列のパラメータだけを受け取ります。キーワードおよび入力パラメータは、InitializeUserInput メソッドの呼び出しによって定義されます。

AutoCAD のコマンド プロンプトでユーザからキーワードを取得する

次の例では、InitializeUserInput メソッドの最初のパラメータを 1 に設定して NULL 入力([Enter]を押す)を認めないで、ユーザにキーワードの入力を要求しています。2 番目のパラメータは、有効なキーワードの一覧を設定します。

AutoLISP
(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))
)
VBA (AutoCAD のみ)
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 入力)場合に既定値が指定されるようにすると、さらに使いやすくなります。次の例では、小さな修正箇所がありますので注意してください。

AutoLISP
(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))
)
VBA (AutoCAD のみ)
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