[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[230] セル内の改行削除について

初心者 [2011/10/21 15:32:31]

お手数をお掛けいたしますが、宜しくお願いします。

以前投稿されていた[68] セル内の改行を置換(削除)するには
を拝見したのですが、

同じように実行してみても、セル内の改行が削除できません。

その他方法をお教えいただけないでしょうか。
どうぞ宜しくお願いします。



Re: [230] セル内の改行削除について

あすかぜ [2011/10/21 20:12:10]

ご指摘ありがとうございます。
そのスレッドに載せたマクロは、Cassava 1.5 の仕様変更で動作しなくなっていますね。
マクロにはコメントを追加しておきました。

Cassava 1.5 以降では、下記の手順でセル内改行を削除できます。

1) [検索]-[検索・置換] メニューをクリックし、検索・置換ダイアログを開く
2) 「正規表現検索」にチェックする
3) 「検索する文字列」に「\n」と入力する
4) 「置換後の文字列」は空欄のままとしておく
5) 「すべて置換」ボタンをクリックする

よろしくお願いします。

Re: [230] セル内の改行削除について

初心者 [2011/10/25 11:10:21]

ご連絡ありがとうございました。
確認させていただきましあ。

また、再度お伺いしたいのですが、
セル内に改行を入れたテキスト(改行を含んだ2行以上のテキストです)を検索し置換をしたい場合、
検索ボックスにそれを貼りつけても、改行前の1行目しか貼りつけられていません。
何度やっても同じ症状だったのですが、
こちらはどのように検索すれば宜しいでしょうか。
お手数をお掛けいたしますが、どうぞ宜しくお願いいたします。

Re: [230] セル内の改行削除について

あすかぜ [2011/10/25 23:33:19]

改行を含むテキストの検索も同様に、「正規表現検索」にチェックして改行を「\n」と表現することで実現できます。
コピー&ペーストで「検索する文字列」に貼り付けることはできないので、メモ帳等で

 検索したい1行目の文字列\n2行目の文字列\n3行目の文字列

というような検索キーワードを作って使ってください。
なお、「正規表現検索」にチェックしていると次の記号が特別な意味を持つので、これらの文字を含む場合は「\.」「\[」「\]」のように記号の前に「\」をつけてエスケープしてください。

 . [ ] - ^ * ? + $ \

よろしくお願いします。

Re: [230] セル内の改行削除について

初心者 [2011/10/27 10:08:58]

ご連絡ありがとうございます。
確認させていただきました。

ありがとうございます。

Re: [230] セル内の改行削除について

初心者 [2011/11/01 10:49:26]

お世話になっております。
何度も申し訳ありません。

検索する文字列に、改行にした文字列(100文字以上です)を入れて置換えをする前に検索したところ、その文字列全てがヒットされません。(途中までしか認識していないようです)

申し訳ありませんが、再度お伺いできますでしょうか。

お手数をお掛けいたしますが
どうぞ宜しくお願いいたします。

Re: [230] セル内の改行削除について

あすかぜ [2011/11/02 00:30:01]

ご指摘ありがとうございます。
長い文字列を正規表現検索で検索すると不具合が発生するようです。
バグとして別スレッドを立てておきました。
http://www.asukaze.net/soft/cassava/bbs/index.cgi?t=232


さしあたりは、マクロの replace 関数を使って回避してください。
マクロ内では
 replace("対象の文字列", "検索文字列", "置換文字列");
で置換後の文字列が得られます。
ファイル内の全セルに対して長い文字列を置換する例は次のようになります。


for(y=1; y<=Bottom; y++){
 for(x=1; x<=Right; x++){
  [x,y] = replace([x,y],
    "置換前の文字列置換前の文字列置換前の文字列\n"
    + "置換前の文字列置換前の文字列置換前の文字列\n"
    + "置換前の文字列置換前の文字列置換前の文字列\n"
    + "置換前の文字列置換前の文字列置換前の文字列\n"
    + "置換前の文字列置換前の文字列置換前の文字列\n",
    "置換後の文字列\n");
 }
}


よろしくお願いします。

Re: [230] セル内の改行削除について

あすかぜ [2011/11/02 00:38:47]

このマクロを使うほうが楽かもしれません。
実行するとダイアログボックスが表示されます。改行もそのまま入力して構いません。


a = InputBoxMultiLine("検索文字列を入力してください。");
if(a == ""){
return;
}
b = InputBoxMultiLine("置換文字列を入力してください。");

for(y=1; y<=Bottom; y++){
 for(x=1; x<=Right; x++){
  [x,y] = replace([x,y], a, b);
 }
}

Re: [230] セル内の改行削除について

初心者 [2011/11/02 10:55:01]

ご連絡ありがとうございます。

感動いたしました!
通常の改行入りのテキストが即時削除されます。

本当にありがとうございます。
これからもこちらのソフトを重宝させていただきます。

スレッド一覧に戻る返信