概要 - マクロの終端(VBA/ActiveX)

マクロを実行するとき、AutoCAD はコマンド シーケンスの処理を行う前にマクロの最後にスペース追加します。

AutoCAD は、次のメニュー マクロの場合に、あたかも line とスペースキーが入力されたかのように処理します。

line

時にはこの処理が好ましくない場合もあります。たとえば TEXT[文字記入]や DIM[寸法記入]コマンドはスペースバーではなく[Enter]で終了しなければなりません。また、複数のスペース(または[Enter])で終了するコマンドもありますが、テキスト エディタによっては空白で終わる行の作成ができないものがあります。この問題を回避するために、2 種類の特別ルールがあります。

次のマクロを見てください。

erase \;

この項目が単純に円記号(これはユーザ入力を表わします)で終わっていた場合は、AutoCAD は円記号の後には空白を追加しないため、ERASE[削除]の実行は失敗します。このことから、マクロではセミコロン(;)を使用してユーザ入力の後に[Enter]を強制的に付加しています。次にもう少し例を示します。

ucs 
ucs ; 
text \.4 0 DRAFT Inc;;;Main St.;;;City, State;

最初のマクロを選択すると、コマンド プロンプトに対して ucs と入力されて[Spacebar]が押され、次のプロンプトが表示されます。

UCS 原点を指定 または [面(F)/名前の付いた UCS(NA)/オブジェクト(OB)/直前(P)/ビュー(V)/ワールド(W)/X/Y/Z/Z 軸(ZA)] <ワールド>:

2 番目のマクロを選択すると、ucs、[Spacebar]、そしてセミコロン(;)がコマンド プロンプトに対して入力され、既定値のワールド座標系が受け入れられます。画面上では最初と 2 番目の違いは分かりませんが、当然同じメニューに両方を配置することはないでしょう。

3 番目のマクロを選択すると、始点に対するプロンプトが表示され、そこから 3 行の住所を描きます。3 つのセミコロン(;;;)の意味は、最初のものは文字列を終了し、2 つ目が TEXT[文字記入]コマンドを繰り返し、3 つ目が既定の文字の開始位置(直前の行の真下)を指定します。

注: すべての特殊文字は、対応する ASCII コードを使用して入力しなければなりません。