SendCommand メソッド(ActiveX)

処理のため、VB または VBA アプリケーションからコマンド文字列をドキュメントに送信します。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

object.SendCommand Command
object

タイプ: Document

このメソッドが適用されるオブジェクト。

コマンド

アクセス: 入力のみ

タイプ: 文字列

ドキュメントに送信されるコマンド。

戻り値(RetVal)

戻り値はありません。

注意

コマンドを終了させるために、コマンド文字列の最後に、スペースまたは ASCII のキャリッジ リターン制御文字(vbCr)を使用してください。これは、キーボードの[Enter]を押すのと同じです。

このメソッドにより、AutoLISP 式を含む AutoCAD のコマンド ライン機能が処理されます。

指定された図面がアクティブではない場合、図面はアクティブになります。

このメソッドは通常、同期をとりますが、このメソッドで送られたコマンドがユーザに繰り返しを要求する場合(たとえば、スクリーン上で点を選択するなど)、このメソッドは、ユーザが入力を始めると直ちに継続します。このコマンドは次に非同期の処理を続行します。

このメソッドがイベント ハンドラから呼び出される場合、非同期的に処理されます。

このメソッドを使用して、ActiveX メソッドが使用可能なコマンドを発行することは絶対にしないでください。たとえば、SendCommand "VBALOAD" を使用してはいけません。代わりに、LoadDVB メソッドを使用してください。

VBA:

Sub Example_SendCommand()
   ' This example sends a command for evaluation to the AutoCAD command line
   ' of a particular drawing 
   
   ' Create a Circle in the active drawing and 
   ' zoom to display the entire circle
   ThisDrawing.SendCommand "_Circle" & vbCr & "2,2,0" & vbCr & "4" & vbCr
   ThisDrawing.SendCommand "_zoom" & vbCr & "a" & vbCr
   
   ' Refresh view
   ThisDrawing.Regen acAllViewports
   
   MsgBox "A circle command has been sent to the command line of the current drawing."
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_SendCommand()
    ;; This example sends a command for evaluation to the AutoCAD command line
    ;; of a particular drawing 
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create a Circle in the active drawing and 
    ;; zoom to display the entire circle
    (vla-SendCommand doc (strcat "_circle 2,2,0 4 "))
    (vla-SendCommand doc (strcat "_zoom a "))
   
    ;; Refresh view
    (vla-Regen doc acAllViewports)
   
    (alert "A circle command has been sent to the command line of the current drawing.")
)