// このマクロは Cassava 1.4.x のみで動作します。 // Cassava 1.5 以降では、標準の検索ダイアログの「正規表現検索」をご利用ください。 // http://www.asukaze.net/soft/cassava/help/findmenu.html // ReplaceEsc 2007.10.4 by あすかぜ // 選択範囲内の文字列を置換します。 // // 置換したい範囲を選んで、このマクロを実行してください。 // 入力ダイアログが出るので、元の文字列と置換後の文字列を // 順に入力してください。 // 「\n」と記述することで改行文字を表現できます。 // ここから先は内容を理解した上で変更してください。 function unescape(str){ str = replace(str, "\\\\", "\\〓"); str = replace(str, "\\n", "\n"); str = replace(str, "\\t", "\t"); str = replace(str, "\\〓", "\\"); return str; } // 他のマクロからも、 // ReplaceEsc.execute(oldString, newString); // と書くと実行できます。 function execute(oldString, newString){ T = SelTop; B = SelBottom; L = SelLeft; R = SelRight; oldString = unescape(oldString); newString = unescape(newString); // Cassava Macroでは "\r" の扱いが微妙。要改善 // とりあえず "\n" は "\r\n" にヒットさせる oldString = replace(oldString, "\n", "\x0D\n"); newString = replace(newString, "\n", "\x0D\n"); for(y = T; y <= B; y++){ for(x = L; x <= R; x++){ [x,y] = replace([x,y], oldString, newString); } } } oldString = InputBox("置換する元の文字列を入力してください"); if(oldString == ""){ return; } newString = InputBox("置換後の文字列を入力してください", oldString); if(newString == oldString){ return; } execute(oldString, newString);