dポイントプレゼントキャンペーン実施中!

秀丸マクロで 

テキストを選択範囲して

ABCD


マクロを実行すると テキストの文字を変えないで 
$s = gettext(seltopx,seltopy,selendx,selendy);
でテキストを$sに代入したのを

$s = ABCD


小文字にするマクロを教えてください。

$s = abcd


$s = gettext(seltopx,seltopy,selendx,selendy);
filter "" , "ToLower", "$s";
message $s;

filterを使って小文字にしようと思っているのですが
どうも filterの指定がうまくいってないようです。
小文字になりません。
ヘルプを読んでも 例文がなくわからないのです。

他にも良い方法があれば教えてください。

秀丸は最新版です。


その他編集系文- filter文
http://homepage3.nifty.com/kons/hidemaru/helpsit …

関数- filter( s1, s2, s3, s4 ) 関数
http://homepage3.nifty.com/kons/hidemaru/helpsit …

A 回答 (2件)

こんにちは。



「filter文」と「filter関数」では以下のように用法が異なります。

「filter文」は、
  画面上の選択範囲の文字列に対して変換を行う。
  変換結果は画面上に反映される。

「filter関数」は、
  固定文字列または文字列変数などの文字列に対して変換を行う。
  変換結果は戻り値で取得する。
  ※こちらは画面上の表示には影響しない。

ですので、
 a)画面上の文字列を直接変換する場合  → filter文
 b)取得した文字列に対して変換する場合 → filter関数
という用法になると思います。

今回の目的が、上記a)、b)のどちらか判りませんので両方を行うマクロ
の例を以下に掲載します。宜しければ検証してみて下さい。
※当方は、「秀丸エディタ Ver 8.02」にて検証してみました。

■マクロ例
=========================
//選択範囲の文字列を取得(選択状態は維持する)
//注)第5引数に1を指定しないと選択状態は解除されます。
$s1 = gettext(seltopx, seltopy, selendx, selendy, 1);

//選択範囲の文字列(画面上)を小文字に変換
//※こちらは「画面上」の選択範囲の文字列に対して変換を行います。
//※第3パラメータには何も指定しない(省略)で良いようです。
filter "" , "ToLower"; //←こちらは「filter文」

//取得した文字列(文字列変数)を小文字に変換(その1)
//※こちらは「第4引数に指定した文字列」に対して変換を行います。
$s2 = filter("", "ToLower", "", $s1); //←こちらは「filter関数」

//取得した文字列(文字列変数)を小文字に変換(その2)
//※tolower関数でも小文字への変換が可能です。
//※こちらは「第1引数に指定した文字列」に対して変換を行います。
$s3 = tolower($s1);

//変換結果をメッセージ表示
$mes = "変換前文字列: " + $s1 + "\n";
$mes = $mes + "変換後文字列(1): " + $s2 + "\n";
$mes = $mes + "変換後文字列(2): " + $s3;
message $mes;
=========================

以上です。
    • good
    • 0
この回答へのお礼

解答ありがとうございました。

いろいろフォローがあり完璧に近い回答でした。


今回は

$s = gettext(seltopx, seltopy, selendx, selendy);
$s = tolower( $s );

で やってみることにします。

お礼日時:2011/07/20 10:58

filter文で変換対象となるのは、選択された範囲の文字そのものです。


今回は、filter文ではなくtolowerを直接呼び出してください。
$s = "ABCD";
$s = tolower($s);
message $s;
で、"abcd"が表示されます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!