|
でがらしさん今日は、Iranoan です
> 下記のようなメニュー型の挿入マクロを使っています。Aを押すとファイルが挿入
> されますが、BとCを押しても、ファイルが挿入されません。どこか、悪いところがあ
> るでしょうか?
<snip>
> menu
> "&A 2",
> "&B 3",
> "&C 4";
で B, C を選択すると、result は 2, 3 のどちらかになりますが、
> if (result ==0) endmacro;
> else if (result ==1)
の判定後、その判定とは無関係に
> gofiletop;
が実行されます。そして通常これは失敗しないので、result は 1 に書き換わります。
その為、
> else if (result ==2)
は不成立になりますから
> insertfile "c:\\frame.003";
は実行されません。
理由は if など条件判定をした時に実行したい内容は、ブロックにする、{}
で挟んでやる必要が有ります。
> if (result ==0) endmacro;
のようなケースは、実行したい内容が 1 つなので、ブロックにしてやる必要がありませ
んが、これは例外です。
2 つ以上なら、、
else if (result ==1){
insertfile "c:\\frame.002";
gofiletop;
}
といった要領です。
今回のマクロは、条件によって変わるのは、挿入するファイルだけのようなので、次の
ようにすれば、スッキリすると思います。
----------------------------------------------------------------------
menu
"&A 2",
"&B 3",
"&C 4";
if (result ==0) endmacro;
else if (result ==1) insertfile "c:\\frame.002";
else if (result ==2) insertfile "c:\\frame.003";
else if (result ==3) insertfile "c:\\frame.004";
gofiletop;
endmacro;
|
|