価格形式数字を、カンマを入れて桁揃え整No.30280
hum さん 11/09/12 19:17
 
秀まるおさん
いつもお世話になります。

話が長くなってしまってすみません。
では、サンプル変換元を変換結果希望に
するマクロをよろしくお願いいたします。

-------サンプル変換元----------
\123456789 品名ひんめいヒンメイ
\12345678  品名ひんめいヒンメイ
\1234567   品名ひんめいヒンメイ
\123456    品名ひんめいヒンメイ
\12345     品名ひんめいヒンメイ
\1234      品名ひんめいヒンメイ
\123       品名ひんめいヒンメイ
\12        品名ひんめいヒンメイ
\1         品名ひんめいヒンメイ
\123,456,789 品名ひんめいヒンメイ
\ 12,345,678 品名ひんめいヒンメイ
\ 1,234,567 品名ひんめいヒンメイ
\ 123,456 品名ひんめいヒンメイ
\ 12,345 品名ひんめいヒンメイ
\ 1,234 品名ひんめいヒンメイ
\ 123 品名ひんめいヒンメイ
\ 12 品名ひんめいヒンメイ
\ 1 品名ひんめいヒンメイ
明細めいさい    \123456789
明細めいさい    \12345678
明細めいさい    \1234567
明細めいさい    \123456
明細めいさい    \12345
明細めいさい    \1234
明細めいさい    \123
明細めいさい    \12
明細めいさい    \1
価格合計消費税手数料    \123,456,789
価格合計消費税手数料    \ 12,345,678
価格合計消費税手数料    \ 1,234,567
価格合計消費税手数料    \ 123,456
価格合計消費税手数料    \ 12,345
価格合計消費税手数料    \ 1,234
価格合計消費税手数料    \ 123
価格合計消費税手数料    \ 12
価格合計消費税手数料    \ 1
割引わりびき手数料    \-12,345,678
割引わりびき手数料    \-1,234,567
割引わりびき手数料    \-123,456
割引わりびき手数料    \-12,345
割引わりびき手数料    \-1,234
割引わりびき手数料    \-123
割引わりびき手数料    \-12
割引わりびき手数料    \-1
-------サンプル変換元-----------

----------変換結果希望---------------------
\123,456,789 品名ひんめいヒンメイ
\ 12,345,678 品名ひんめいヒンメイ
\  1,234,567 品名ひんめいヒンメイ
\    123,456 品名ひんめいヒンメイ
\     12,345 品名ひんめいヒンメイ
\      1,234 品名ひんめいヒンメイ
\        123 品名ひんめいヒンメイ
\         12 品名ひんめいヒンメイ
\          1 品名ひんめいヒンメイ
\123,456,789 品名ひんめいヒンメイ
\ 12,345,678 品名ひんめいヒンメイ
\  1,234,567 品名ひんめいヒンメイ
\    123,456 品名ひんめいヒンメイ
\     12,345 品名ひんめいヒンメイ
\      1,234 品名ひんめいヒンメイ
\        123 品名ひんめいヒンメイ
\         12 品名ひんめいヒンメイ
\          1 品名ひんめいヒンメイ
明細めいさい                 \123,456,789
明細めいさい                 \ 12,345,678
明細めいさい                 \  1,234,567
明細めいさい                 \    123,456
明細めいさい                 \     12,345
明細めいさい                 \      1,234
明細めいさい                 \        123
明細めいさい                 \         12
明細めいさい                 \          1
価格合計消費税手数料         \123,456,789
価格合計消費税手数料         \ 12,345,678
価格合計消費税手数料         \  1,234,567
価格合計消費税手数料         \    123,456
価格合計消費税手数料         \     12,345
価格合計消費税手数料         \      1,234
価格合計消費税手数料         \        123
価格合計消費税手数料         \         12
価格合計消費税手数料         \          1
割引わりびき手数料           \-12,345,678
割引わりびき手数料           \ -1,234,567
割引わりびき手数料           \   -123,456
割引わりびき手数料           \    -12,345
割引わりびき手数料           \     -1,234
割引わりびき手数料           \       -123
割引わりびき手数料           \        -12
割引わりびき手数料           \         -1
----------変換結果希望---------------------

[ ]
RE:30280 価格形式数字を、カンマを入れてNo.30283
アルビレオ さん 11/09/12 21:03
 
ユーザーのアルビレオです。

もう今さらですが、新たにツリーを作って仕切りなおすなら秀丸マクロ掲示板の
方がよかったかなー、と。
せっかくここに書いたので、今回はここで話が進むと思いますが

[ ]
RE:30283 価格形式数字を、カンマを入れてNo.30284
秀まるお2 さん 11/09/12 21:20
 
 マクロ掲示板は、本来は「マクロ作者さんのサポート用」のつもりなので、
マクロについての質問ということでしたらここの会議室で大丈夫です。

 マクロの例は…、もうちょっとお待ちください。

 (なぜだか急に忙しくなってます)

[ ]
RE:30280 価格形式数字を、カンマを入れてNo.30285
秀まるお2 さん 11/09/12 23:10
 
 以下のマクロで一応うまく置換しました。

while( 1 ) {
    replaceallfast "(\\\\( *))((-|)([0-9]+))([0-9]{3})(?![0-9])"
                 , "\\1\\2,\\3", regular;
    if( result == 0 ) break;
}
replaceallfast "(\\\\( )+)((-|)[0-9]+)", "\\\\\\2", regular;

replaceallfast "^\\\\(([0-9,]){10})( +)", "\\\\ \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){9})( +)", "\\\\  \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){8})( +)", "\\\\   \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){7})( +)", "\\\\    \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){6})( +)", "\\\\     \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){5})( +)", "\\\\      \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){4})( +)", "\\\\       \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){3})( +)", "\\\\        \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){2})( +)", "\\\\         \\1 ", regular;
replaceallfast "^\\\\(([0-9,]){1})( +)", "\\\\          \\1 ", regular;

gofiletop;
while(1) {
    searchdown2 "(?<=^(.+))\\\\", regular;
    if( !result ) {
        break;
    }
    if( selecting ) escape;
    if( x < 29 ) {
        insert leftstr( "                             ", 29 - x );
    }
}
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){10})(?![0-9,])"
    , "\\\\ \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){9})(?![0-9,])"
    , "\\\\  \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){8})(?![0-9,])"
    , "\\\\   \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){7})(?![0-9,])"
    , "\\\\    \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){6})(?![0-9,])"
    , "\\\\     \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){5})(?![0-9,])"
    , "\\\\      \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){4})(?![0-9,])"
    , "\\\\       \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){3})(?![0-9,])"
    , "\\\\        \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){2})(?![0-9,])"
    , "\\\\         \\2", regular;
replaceallfast "(?<=^(.+))\\\\( *)(([0-9,]){1})(?![0-9,])"
    , "\\\\          \\2", regular;

replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){9})(?![0-9,])"
    , "\\\\ -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){8})(?![0-9,])"
    , "\\\\  -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){7})(?![0-9,])"
    , "\\\\   -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){6})(?![0-9,])"
    , "\\\\    -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){5})(?![0-9,])"
    , "\\\\     -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){4})(?![0-9,])"
    , "\\\\      -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){3})(?![0-9,])"
    , "\\\\       -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){2})(?![0-9,])"
    , "\\\\        -\\3", regular;
replaceallfast "(?<=^(.+))\\\\( *)-( *)(([0-9,]){1})(?![0-9,])"
    , "\\\\         -\\3", regular;

endmacro;

[ ]
RE:30285 価格形式数字を、カンマを入れてNo.30286
hum さん 11/09/13 09:26
 
秀まるおさん
いつもお世話になります。

>以下のマクロで一応うまく置換しました。

        ↑かっこいいです。
解決しました。ありがとうございました。m(_ _)m
数年来悶々と、たまっていた「なんでできないのかな〜。」
に決着がつきました。

また機会があれば宜しくお願いいたします。

[ ]