マクロ呼び出し+「call」での呼び出しNo.04481
マボカル さん 04/09/14 11:04
 
会議室の皆様。こんにちは。マボカルと申します。ある作業の為に
以下のような構造のマクロで動かそうと思っていますが、それが可能
なのかどうか質問させて頂きます。

Aのマクロ*********************
call result1;
execmacro "Bのマクロ.mac";
call result2;
execmacro "Bのマクロ.mac";
call result3;
execmacro "Bのマクロ.mac";
*******************************

Bのマクロ*********************
result1:
(処理)
result2:
(処理)
result3:
(処理)
*******************************

質問の主旨はAのマクロ実行中に、ある処理だけをBのマクロを呼び
出してそこで処理を行いたいのですが、問題はBのマクロの中でも
特定の処理だけ「call」で飛んで実行したいと思っているわけです。

Bのマクロ内での特定の処理というのは、結局Aのマクロで要求する
作業と関わっているので、Aのマクロで要求していた作業(つまり
「call」の行き先)を記憶させておいて、Bのマクロ内で「call」で
飛ばせたいのです。

Aのマクロで記憶させておいた「call」の行き先情報をクリップボード
に入れておいてBのマクロまで行くのは成功していますが、Bのマクロ
で、クリップボードに入っている「call」の行き先情報を取り出して
Bのマクロ内で反映させるにはどうしたらいいのでしょうか。私の
説明がお分かりいただけたでしょうか?

色々といじってみてはいますが、ずっとエラーが出ていて困っており
ます。どなたかご教授頂けたらと思っております。

[ ]
RE:04481 マクロ呼び出し+「call」での呼No.04482
ENCODINGSHIFTJIS さん 04/09/14 14:37
 
▲ Bマクロを細かく分ける場合
                 $entry="1";
execmacro "BASE"+$entry+".mac";
                 $entry="2";
execmacro "BASE"+$entry+".mac";
                 $entry="3";
execmacro "BASE"+$entry+".mac";

▲ Bの中で振り分ける場合
beginclipboardread;
   $entry=getclipboard;
if($entry=="result1")then goto result1;
if($entry=="result2")then goto result2;
if($entry=="result3")then goto result3;

テスト実行はしていません


[ ]
RE:04482 マクロ呼び出し+「call」での呼No.04483
マボカル さん 04/09/14 15:32
 
ENCODINGSHIFTJISさん

貴重なアイディアのご提供有難うございました。私の求める作業では
ENCODINGSHIFTJISさんからご教授いただいた2番目の「Bの中で振り
分ける場合」が適切な方法だと思います。

>▲ Bの中で振り分ける場合
>beginclipboardread;
>   $entry=getclipboard;
>if($entry=="result1")then goto result1;
>if($entry=="result2")then goto result2;
>if($entry=="result3")then goto result3;

なぜならBのマクロ内で動かしたい項目が70以上もあって、1番目の
「Aの中で振り分ける場合」だと、マクロファイルを70以上も作らな
くてはならないからです。

クリップボードからの情報を反映させる方法として「if」文で振り分
けているわけですね。なるほど。私は今までBのマクロの中で「call」
文を使って振り分けようとしていたので、どうも上手く行きませんで
した。いいアイディアをご提供頂いて、なんとか最後までマクロを
作れそうです。本当にどうもありがとうございました。


[ ]