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

Cassava Editor サポート掲示板

スレッド一覧に戻る
題名:
名前:
この名前を次回も使用する


スレッド一覧に戻る返信

[439] 複数の文字列の一括置換について

miyashita [2018/06/06 19:35:14]

いつも大変お世話になっています。
解決したい問題がありましたので、投稿させて頂きます。


同じセル内に
A1
A2
A3
A4
の文字列が存在するとして、

A1→name
A2→class
A3→削除
A4→mode

のように置き換えをしたいのですが、一括で4つの文字列を変更する方法はございますか?

お手数ですがよろしくお願い致します。

Re: [439] 複数の文字列の一括置換について

あすかぜ [2018/06/06 23:54:58]

通常の検索・置換ダイアログを使う場合は、4 種類それぞれで置換をする必要があります。

一括での置換にはマクロ機能を使用してください。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20180606.cms
上のリンクを右クリックして「対象をファイルに保存」(もしくは「名前を付けてリンク先を保存」)でダウンロードし、Cassava Editor の「Macro」フォルダに置いてください。
その後、対象のファイルを開いて [マクロ(M)]-[bbs439_20180606] メニューを実行すると、「A1」「A2」「A3」「A4」がそれぞれ「name」「class」「削除」「mode」に置き換わります。
メニュー名はマクロのファイル名を変更すればそれにあわせて変わります(拡張子は .cms にしておいてください)。

よろしくお願いします。

Re: [439] 複数の文字列の一括置換について

miyashita [2018/06/07 10:23:00]

早速のご対応ありがとうございます。
問題なく変換ができました。

また、
A1→name
A2→class
A3→削除
A4→mode

に置換をしたいとお伝えいたしましたが、
置き換える文字列に「"」が入っている場合には
エラーになってしまいます。

例えば、

<font size="3" color="#000000"> → 削除(空白に置き換えるの意味です)
<font size="1" color="#000000"> → 削除

のように置き換える場合にはどのようにしたら良いでしょうか。
初めからそのようにお伝えをすればよかったのですが、、申し訳ございません。
お手数ですがよろしくお願い致します。





Re: [439] 複数の文字列の一括置換について

あすかぜ [2018/06/07 21:03:19]

マクロ中では、「"」は「\"」と表現する必要があります。
「<font size="3" color="#000000">」と「<font size="1" color="#000000">」を追加したものを作ってみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20180607.cms

よろしくお願いします。

Re: [439] 複数の文字列の一括置換について

miyashita [2018/06/25 13:39:37]

ありがとうございました。
希望通りの内容で置換ができました。
いつもありがとうございます。

Re: [439] 複数の文字列の一括置換について

こや [2019/11/20 16:36:41]

こんにちは。いつもお世話になります。
上記のマクロを使って複数一括置換をしているのですが
これに加えて、
「これらに当てはまらない場合は空白に置換」
もしくは
「これらに当てはまらない場合は左詰めでセルを削除」
というのはできますでしょうか?

なお、「左詰めでセルを削除」が可能な場合はあくまで選択した列の範囲内だけといいますか、右隣以降の、選択していない範囲はずれこんでこないようにしたいです。

分かりにくくて申し訳ないのですが、よろしければご教示ください。

Re: [439] 複数の文字列の一括置換について

あすかぜ [2019/11/20 23:22:03]

マクロを書いてみました。

何も置換されなかったセルの内容を削除する:
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20191120_01.cms
何も置換されなかったセルを削除して左につめる:
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20191120_02.cms

どちらのマクロも、処理の対象をテーブル全体ではなく選択範囲のみに変更してあります。
希望の動作になるでしょうか。

Re: [439] 複数の文字列の一括置換について

こや [2019/11/20 23:58:44]

ありがとうございます!
完璧な動作で感動しました。
うまく伝えられただろうかとやきもきしていましたが杞憂でした。本当にいつもありがとうございます。

Re: [439] 複数の文字列の一括置換について

こや [2019/11/29 20:17:33]

度々失礼します。
いつも頼ってばかりではと色々工夫したり過去の投稿をチェックしてみたりするのですが…すみません。


同じセル内に下記の状態で表記がある場合。

置換前:A/B/C/D/E/F

A→1
C→2
E→3

結果:1/2/3

上記の置換を行い、これらに当てはまらなかった場合は
左詰めで削除したいです。


また、全く別の件になるので別スレッドを立てた方が良いか迷ったのですが…

決まった●列目以降に、一行目に予め決まった文字を入力した新しい列を複数挿入するマクロが作れるならと思うのですが可能でしょうか?

恐れ入りますが、ご教授下さい。

Re: [439] 複数の文字列の一括置換について

あすかぜ [2019/11/29 23:13:18]

このマクロで動作するでしょうか。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20191129_01.cms

このマクロは Cassava Editor 2.1 で新しく導入した記法を使っているので、以前のバージョンを使っている場合にはバージョンアップをお願いします。
「/」で区切ったそれぞれの文字列が mapping で定義したキーに完全一致した場合、値を置き換えています。

列の挿入には InsertCol() を使ってください。例えば 11 列目から 13 列目に列を挿入する場合は
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs439_20191129_02.cms
のようになります。

よろしくお願いします。

Re: [439] 複数の文字列の一括置換について

こや [2019/12/10 15:44:42]

御礼が遅くなってしまい、申し訳ありません。
ばっちりの動作でした。いつも本当にありがとうございます。

スレッド一覧に戻る返信