VBAのReplace関数みたいなのを作ってみた。
$buf = "tanaka suzuki yamada sato"; call Replace $buf, " ", "\n"; message $$return; endmacro; Replace: ##a = hidemaruhandle(0); openfile "/h"; ##b = hidemaruhandle(0); insert $$1; replaceallfast $$2, $$3; selectall; $$buf = gettext(seltopx,seltopy,selendx,selendy); setactivehidemaru ##a; closehidemaruforced ##b; return $$buf;
VBAのReplace関数の特徴は、検索語をすべて置換するということ。てことは、元の文字列を1文字ずつチェックするより、秀丸の置換機能を使うのが最も簡単だろうと。なので、ステルスで新規ファイルを開き、元の文字列をそこに挿入し、一括置換した。
ずいぶん前にも、ステルスで開いたファイルの操作で悩んだことがあったけど、今回もちょっと苦労した。新規ファイルを保存しないで閉じたいのだけど、なんかうまくいかなかった。結果的に、以前のメモを見て、上記のようにしたらうまくいった。
上記のように改行コード(\n)も、普通の文字として置換できた。おそらく、タブ(\t)とかでもいけるんだろうな。秀丸の置換機能を使っているのだから、複数文字列にも対応できるだろう。テストしてないけど。