[533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
田中 [2020/01/29 17:22:24]
お世話になっております。
13列目と14列目に半角や全角の英数字記号スペースが入力されております。
行数はランダムです。
・13列目か14列目にビックリマークが必ず入っています。
ビックリマーク以降の文字列を全て消す。
・13列目と14列目にある文字列を全て全角に変換する。
・14列目に入っている文字数(スペースも含め)が15文字以上あれば、
15文字の所でカンマを追加し、15文字以降の文字列は15列目に移動させ、
15列目でも15文字以上あれば、カンマを追加し、15文字以降の文字列を16列目に移動させる。
というマクロを作成したいのですが、上手く作れずにおります。
※上記2点は、正規表現や、メニューバーの文字変換で出来たのですが、マクロで行いたいです。
1つのキーを軸に3つの処理を行いたいです。
何卒ご教授頂けます様お願い致します。
■変更前
13列目 |14列目
アイうえお ABcde☆ |カキくけこABcde● さしすせとたちつてと ナニヌネノ ハヒフヘホ
■変更後
13列目 |14列目 |15列目 |16列目
アイうえお ABcde☆ |カキくけこABcde● さしす|せとたちつてと ナニヌネノ ハ|ヒフヘホ
●メモ帳で見た場合、
アイうえお ABcde☆ ,カキくけこABcde● さしす,せとたちつてと ナニヌネノ ハ,ヒフヘホ
上記の状態になっていて欲しいです。
何卒、宜しくお願い致します。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
あすかぜ [2020/01/29 21:27:12]
マクロを書いてみました。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs533_20200129.cms
期待通りに動くでしょうか?
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
田中 [2020/01/29 22:12:02]
あすかぜ様
早々のご連絡頂き誠に有難う御座います。
早速試させて頂きました所、
『12行目0文字目
文字列定数が終了していません。』
というエラーが出てしまいました。
1つずつ検証致しました所、
for (y = 1; y <= Bottom; y++) {
// ビックリマーク以降の文字列を全て消す。
p = pos([13,y], "!");
if (p > 0) {
[13,y] = left([13,y], p - 1);
}
p = pos([14,y], "!");
if (p > 0) {
[14,y] = left([14,y], p - 1);
}
このマクロでエラーが出ているようで、
他の記述は、期待通りに動いてくれました。
当方では、どのように修正したらよいのか
分からず、誠に申し訳御座いませんが修正して頂けますと幸いで御座います。
何卒、宜しくお願い致します。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
あすかぜ [2020/01/30 21:08:40]
私の環境では昨日のマクロでエラーは発生しないようです。
誤ってマクロファイルを編集して「"」を削除したり追加したりしていないでしょうか?
Cassava Editor のバージョンは最新版 (2.1.5) でしょうか?
お手数おかけしますがご確認よろしくお願いします。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
田中 [2020/01/30 22:43:28]
あすかぜ様
ご連絡頂き誠に有難う御座います。
>誤ってマクロファイルを編集して「"」を削除したり追加したりしていないでしょうか?
もう一度、作成頂いたマクロをメモ帳へコピペし(編集をしていない状態)
実行しましたが、同じエラーが出てしまいました。
>Cassava Editor のバージョンは最新版 (2.1.5) でしょうか?
最新版をインストールし直しましたが、結果は同じでした。
他のパソコンでもCassava Editorをインストールし、
同じようにマクロを実行致しますと、同じエラーが出てしまいます。
p = pos([13,y], "!");
if (p > 0) {
[13,y] = left([13,y], p - 1);
}
p = pos([14,y], "!");
if (p > 0) {
[14,y] = left([14,y], p - 1);
}
の部分を削除すると、他のパソコンでも上手く動作してくれています。
お忙しい中、誠に申し訳御座いません。
他の原因があるのでしょうか。
何卒、ご教授の程宜しくお願い致します。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
田中 [2020/01/31 09:51:17]
あすかぜ様
何度も、申し訳御座いません。
!以降の文字列を消す部分が
!が全角だとエラーが出て、半角にすると希望通り動作致しました。
一旦、半角に変換し
!を含んだ文字列を削除後、全角に戻す方法で
解決致しました。
お手数お掛けし申し訳御座いません。
マクロを組んでくださり、有難う御座います。
今後とも何卒宜しくお願い致します。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
あすかぜ [2020/01/31 19:37:29]
すみません、すでに回避できているようですが、マクロの文字コードの問題のようです。
メモ帳でマクロを編集する際は、「名前を付けて保存」のダイアログで「文字コード」を「ANSI」もしくは「UTF-8(BOM 付き)」のどちらかを指定するようにしてください。
マクロの文字コードを指定もしくは自動判別して BOM なしの UTF-8 も処理できるようにすることを検討したいと思います。
Re: [533] 特定の列を全角にし、文字数によりカンマを追加するマクロ
田中 [2020/02/01 00:05:49]
あすかぜ様
ご連絡頂き誠に有難う御座います。
「文字コード」を「ANSI」と「UTF-8(BOM 付き)」の両方で
保存し、マクロを実行致しましたら、
全角の!でも動作致しました!
このような問題があったとは知らず、大変失礼致しました。
有難う御座います!