前回は、コマンドマクロの特殊文字の中で、ユーザー入力待ち状態を作る特殊文字「¥」を紹介しました。
具体的にはどう使っているのか、ということで、サンプルのコマンドマクロもあわせて紹介しました。
^C^C_-INSERT;sample;¥;;¥
このコマンドマクロの中で、ユーザー入力待ち状態がどのように使われているのかを理解すればOKです。
きっと別のコマンドマクロを自分で作成する時にも、きちんとユーザー入力待ち状態を活用出来るはずです。
このユーザー入力待ち状態の考え方は、コマンドマクロをマスターする為にどうしても覚えておきたい部分。
ちょっと面倒ではありますが、ぜひここで覚えて頂きたいと思ってます。
ということで、今回はコマンドの具体的な流れと、コマンドマクロの流れを実際に追いかけてみることにしましょう。
■コマンドマクロの流れ
まず、コマンド冒頭の「^C」キーの効果を再確認する為に、線分を引いている途中の状態からスタートします。
この状態で、作成したコマンドマクロを実行すると、まずは「^C」が2回繰り返されるので、「ESC」キーが2回押されます。
その次に「-INSERT」コマンドを実行して「Enter」を押すことで、ブロック挿入コマンドが実行されます。
これは後で詳しく説明をするつもりですが、通常の「INSERT」コマンドではなく「-INSERT」というのがポイント。
コマンドの頭に-を付けることによって、ダイアログBOXが表示されるコマンドでも、コマンドラインの中で実行する事が出来るようになります。
これを考えてずにそのまま「INSERT」を実行しても、単純にブロック挿入のダイアログBOXが表示されるだけ。
それ以降は全てユーザーの入力が必要になるので、ダイアログBOXはコマンドマクロには必要ないんです。
コマンドライン上でブロック挿入コマンドを実行すると、まずはブロック名を入力する状態になります。
ここでブロック名「sample」と入力して「Enter」を押すことによって、ブロック名の入力が完了しました。
ここでようやく今回のテーマである「ユーザー入力待ち状態」になる訳ですが、これはブロックの挿入位置を画面から指定するシーンです。
座標による数値入力をすると、決められた位置にしか挿入出来ないので、やっぱりここは画面をクリックしたいところ。
こうしたタイミングで「¥」を配置しておくことによって、一端コマンドマクロを中断して、ユーザーの入力を待つことが出来るんです。
これが非常に大きな意味を持ってくる訳です。
このユーザー入力待ちの処理が出来ないと、恐らく実現出来ないコマンドマクロは結構な数になると思います。
ちょっと長くなってしまったので、コマンドマクロの後半は次回に続くことにします。