金額を三桁事にカンマ区切りしたいNo.00528
ことだま さん 16/10/04 23:34
 
金額計算のマクロで、取得した数値を、三桁事にカンマ区切りしているのですが、
現在は、replaceallで正規表現を使って、(?<=[0-9])(?=([0-9]{3})+$)を,にして置
き換えております。

一旦、取得した数値をエディタ内にペーストして置き換えているのですが、
エディタにペーストせずに置き換えするか、他の方法で三桁事にカンマ区切りする良
い方法はないでしょうか。

[ ]
RE:00528 金額を三桁事にカンマ区切りしたNo.00529
秀まるお2 さん 16/10/05 09:17
 
 文字列変数の中身を正規表現で置換することは可能です。

 秀丸エディタや秀丸メールに付属のHmJre.dll(っていう正規表現
ライブラリ)をloaddllでロードして、そこに備わってるマクロ用の関数を呼び
出せばいいです。

 どういう関数があるかは、HmJre.dllのヘルプ(HmJre.chm)に書いてありまし
て、今回の例だと、ReplaceRegular関数を使えばいいです。

    loaddll "hmjre.dll";
    $s = "1234567";
    $result = dllfuncstr("ReplaceRegular"
                 , "(?<=[0-9])(?=([0-9]{3})+$)"    //検索文字列
                 , $s                              //置換元文字列
                 , 0                               //開始位置
                 , ","                             //置換文字列
                 , 2                               //すべて置換
                 );
    message $result;

 ってな具合で置換できました。

[ ]
RE:00529 金額を三桁事にカンマ区切りしたNo.00530
ことだま さん 16/10/05 13:53
 
ありがとうございます。

お知らせ頂いた方法で上手くいきました。

[ ]