キー入力するまで範囲選択できるようにすNo.00741
Gavo さん 99/09/15 22:26
 
 Gavoと申します。初心者でマクロの作り方を勉強中です。

 コピーのマクロでは、範囲を選択してからカットやコピーのキーを押して
クリップボードにコピーするものは多く見られますが、コピーのキーを押して
から範囲を選択してカット又はコピーをしたいのです。

 次のようなマクロを書いて見たのですが、beginselのあとで処理が進んでしまって
範囲選択をできません。どなたかよい方法をお教えください。よろしくお願いします。

=====================================−
beginsel;
#pp = inputchar("範囲選択OK?");
if (#pp==0x1D) {
menu "1: カット", "2: コピー", "3: ペースト";
if(result==0) endmacro;
else if(result==1) cut;
else if(result==2) copy;
else if(result==3)  paste;
}
endmacro;
=======================================

[ ]
RE:00741 キー入力するまで範囲選択できるNo.00742
杉浦 まさき さん 99/09/15 23:33
 
Gavo さん、はじめまして。
杉浦 まさき と申します。

> コピーのマクロでは、範囲を選択してからカットやコピーのキーを押して
>クリップボードにコピーするものは多く見られますが、コピーのキーを押して
>から範囲を選択してカット又はコピーをしたいのです。

「カットやコピーのキー」が何を指すのか分かりませんが、
お望みのことは多分 inputpos コマンドを使えばできると思います。


[ ]
RE:00741 キー入力するまで範囲選択できるNo.00743
きいろいまふらあ さん 99/09/16 00:44
 
きいろいまふらあです。

inputpos というコマンドを使うと、マクロの実行中にキャレットを移動したり
任意の範囲を選択したりできます。

//begin
message "範囲を選択してからリターンキーを押して下さい。";
inputpos "処理範囲選択後リターン";
title 0;
if(!selecting)endmacro;
menu "1: カット", "2: コピー", "3: ペースト";
if(result==0) endmacro;
else if(result==1) cut;
else if(result==2) copy;
else if(result==3)  paste;
}
endmacro;
//end

#00741のマクロをベースに作ると、上のような感じになるでしょうか?
本当に範囲選択を最後にやりたければ、順序を工夫してみて下さい。
menuと条件分岐が離れる場合は、resultを別の変数に一度格納しておくと
よいです。

[ ]
RE:00742 キー入力するまで範囲選択できるNo.00744
Gavo さん 99/09/16 12:41
 
>Gavo さん、はじめまして。
>杉浦 まさき と申します。
>
>> コピーのマクロでは、範囲を選択してからカットやコピーのキーを押して
>>クリップボードにコピーするものは多く見られますが、コピーのキーを押して
>>から範囲を選択してカット又はコピーをしたいのです。
>
>「カットやコピーのキー」が何を指すのか分かりませんが、
>お望みのことは多分 inputpos コマンドを使えばできると思います。
>

杉浦 まさきさん 初めまして。 Gavoです。

inputposを使うと思っていたような処理が出来ました。
ありがとうございました。

これからも、このフォーラムを通じて秀丸の使い方を覚えていきたいと
思っていますので、よろしくお願いします。

[ ]
RE:00743 キー入力するまで範囲選択できるNo.00745
Gavo さん 99/09/16 12:45
 
>きいろいまふらあです。
>
>inputpos というコマンドを使うと、マクロの実行中にキャレットを移動したり
>任意の範囲を選択したりできます。
>
>//begin
>message "範囲を選択してからリターンキーを押して下さい。";
>inputpos "処理範囲選択後リターン";
>title 0;
>if(!selecting)endmacro;
>menu "1: カット", "2: コピー", "3: ペースト";
>if(result==0) endmacro;
>else if(result==1) cut;
>else if(result==2) copy;
>else if(result==3)  paste;
>}
>endmacro;
>//end
>
>#00741のマクロをベースに作ると、上のような感じになるでしょうか?
>本当に範囲選択を最後にやりたければ、順序を工夫してみて下さい。
>menuと条件分岐が離れる場合は、resultを別の変数に一度格納しておくと
>よいです。

 きいろいまふらあさん、初めまして。 Gavoです。

 書いていただいたマクロの1行目に beginsel;を追加したら思っていた
ようなマクロが出来ました。有り難うございました。

 これからも、このフォーラムを利用させていただきたいと思って
いますので、これからもよろしくお願いします。



[ ]