秀丸マクロでmenu、menuarrayを使うときはresultに注意

Pocket

秀丸でマクロを作っていて少し引っ掛かった部分があったのでメモしておきます。

秀丸でリストボックスを作るときはmenuやmenuarrayを使います。
例えば次のように書いたとします。

menuarray $words,10;
if(result==0)endmacro;
insert $words[result-1];

選択した文字列を挿入するというマクロですがこれだと正しく動きません。
リストが出た状態でEscキーなどを押してキャンセルする場合を想定して「if(result==0)endmacro;」の行があります。
キャンセルされた場合はresultに「0」がセットされるので、この場合はマクロを終了させます。
終了しない場合は次の行に処理が移るのですが、この段階ではresult=1(成功)となってしまうようです。
したがって、$wordsという配列変数では常に[0]が引かれるため、意図した通りになりません。

menuarray $words,10;
#temp=result;
if(#temp==0)endmacro;
insert $words[#temp-1];

このように一度、変数に取り込むとよいです。

[ 2010年10月13日 | カテゴリー: デジタル | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報