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

Cassava Editor サポート掲示板

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


スレッド一覧に戻る返信

[472] 任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?

江川 [2018/12/27 17:57:04]

いつもお世話になっております。
教えていただきたいのですが、
任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?
入れ替える際に同じ行の別のセルは同じように入れ替わっても入れ替わらなくても大丈夫です。
イメージとしてはセルをまたいだ任意の文字列を置換するような感じです。

========================================

■マクロ実行前

1行目|更新情報|管理番号|配置番号|内容1|内容2
2行目|  新 |11111111|   1 |test1|テスト1
3行目|  新 |11111111|   1 |test1|テスト2
4行目|  新 |11111111|   1 |test1|テスト3
5行目|  新 |11111111|   1 |test1|テスト4
6行目|  新 |11111111|   1 |test1|テスト5

========================================

■マクロ実行後 (内容2のセルを指定の並びに変更 test12345→test15432)

1行目|更新情報|管理番号|配置番号|内容1|内容2
2行目|  新 |11111111|   1 |test1|テスト1
3行目|  新 |11111111|   1 |test1|テスト5
4行目|  新 |11111111|   1 |test1|テスト4
5行目|  新 |11111111|   1 |test1|テスト3
6行目|  新 |11111111|   1 |test1|テスト2

========================================

よろしくお願いいたします。

Re: [472] 任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?

あすかぜ [2018/12/27 23:02:31]

データの中では 1・2・3・4・5 の数値が分かれて入っているので、「1→1」「2→5」「3→4」「4→3」「5→2」という文字ごとの置換をすれば必要なデータになるでしょうか?

変換前・変換後の文字列を入力すると、カーソルのある列に対し1文字ずつ置換をするマクロを作ってみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs472_20181227.cms
例として作っていただいた表の5列目でマクロを実行し、「test12345」「test15432」を入力すれば、おおむねマクロ実行後の状態になると思います。
(ヘッダ行の「内容2」の「2」が「5」に変換されて「内容5」になりますが)

もし、より細かい変換の条件などが必要であれば教えてください。
よろしくお願いします。

Re: [472] 任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?

江川 [2018/12/28 12:30:06]

年末の忙しい中対応いただきありがとうございます。

セルのまとまりを並び替えれたらありがたいです。
文字列も品名になるので任意の文字列で変換できるとありがたいです


========================================

■マクロ実行前

1行目 |更新情報|管理番号|配置番号|内容1|内容2
2行目 |  新 |11111111|   1 |test1|りんご
3行目 |  新 |11111111|   1 |test1|みかん
4行目 |  新 |11111111|   1 |test1|なし
5行目 |  新 |11111111|   1 |test1|ぶどう
6行目 |  新 |11111111|   1 |test1|れもん
7行目 |  新 |11111111|   1 |test1|ぶどう
8行目 |  新 |11111111|   1 |test1|みかん
9行目 |  新 |11111111|   1 |test1|なし
10行目|  新 |11111111|   1 |test1|ぶどう
11行目|  新 |11111111|   1 |test1|れもん
========================================

■マクロ実行後 (内容2のみかん,なし,ぶどうと縦に3つ並んでいるものをぶどう,なし,みかんに並び替え)


1行目 |更新情報|管理番号|配置番号|内容1|内容2
2行目 |  新 |11111111|   1 |test1|りんご
3行目 |  新 |11111111|   1 |test1|ぶどう←変更
4行目 |  新 |11111111|   1 |test1|なし ←変更
5行目 |  新 |11111111|   1 |test1|みかん←変更
6行目 |  新 |11111111|   1 |test1|れもん
7行目 |  新 |11111111|   1 |test1|ぶどう
8行目 |  新 |11111111|   1 |test1|ぶどう←変更
9行目 |  新 |11111111|   1 |test1|なし ←変更
10行目|  新 |11111111|   1 |test1|みかん←変更
11行目|  新 |11111111|   1 |test1|れもん

========================================

説明がわかりにくく申し訳ありません。
よろしくお願いいたします。

Re: [472] 任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?

あすかぜ [2018/12/28 22:22:22]

カーソル列の内容をすべて「,」区切りで連結し、文字列置換をして、再度「,」で各セルのデータを分割する、というマクロを書いてみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs472_20181228.cms
このマクロで、縦に並んだ文字列を置換できると思います。
いただいた例であれば、5列目でマクロを実行し、「みかん,なし,ぶどう」「ぶどう,なし,みかん」を入力するとぶどうとみかんが入れ替わります。

データの中に「,」があると正しく動作しないので、その場合は区切り文字を他の文字に変更する必要があります。
また、部分一致ではなくセル全体を比較しているので、12/27 の最初の例では、「test12345」「test15432」ではなく「テスト1,テスト2,テスト3,テスト4,テスト5」「テスト1,テスト5,テスト4,テスト3,テスト2」と入力する必要があります。

よろしくお願いします。

Re: [472] 任意の文字列の複数のセルを入れ替えるマクロは可能でしょうか?

江川 [2018/12/28 23:57:57]

早速対応いただきありがとうございます。
理想的なものでした。
ありがとうございます。

スレッド一覧に戻る返信