[ 新規に投稿する ]

列の挿入についてNo.09708
styth さん 21/12/20 09:01 [ コメントを投稿する ]
   手動で、ある列に対して、列選択して、tabキーを押しました。
 列の挿入は出来ます。

 この操作をマクロでしたいので、マクロの記録をしました。
 記録されたマクロは、

 setcompatiblemode 0x0F;
 filter "" , "Indent";

 でした。

 マクロの記録後の画面は、A列に空列が挿入されます。
 任意の列に、空列を挿入したいのですが、上記マクロを実行しても、列の挿入は出来ませんでした。
 マクロでどう書けば良いんでしょうか?

 filter "" , "Indent";
 を
 tab;
 にしても、同じでした。

 よろしくお願いいたします。
[ ]
RE:09708 列の挿入についてNo.09709
秀丸担当 さん 21/12/20 11:27 [ コメントを投稿する ]
  TSVモードでの列の選択時でのタブ挿入は、マクロでは表せない特殊な動作になっていました。
マクロでも表せる操作にするとしたら、「複数選択化」してから左キーで先頭だけの幅ゼロにして、そこに複数の入力とするとできました。

例:
setcompatiblemode 0x0010000F;
selectcolumn;
tomultiselect;
left;
insert "\t";
escape;
endmacro;

TSVモードではないですが、BOX選択時の動作で、キー操作の記録できるものとできないものがあります。
[その他]→[動作環境]→[編集]→[高度な編集1]→[BOX選択中にキーを押すとその文字を各行に挿入する]の設定によります。
TSVモードの列挿入は、「BOX選択のまま(矛盾が出る可能性あり,V8.81以前と同等)」に似ていますが、これにも該当しない特殊な動作でした。
BOX選択時の挿入の記録では警告が出ますが、列挿入でも警告を出すか、「自動的に複数選択に変換(幅ゼロ)」相当にできないか検討します。
[ ]
RE:09709 列の挿入についてNo.09710
styth さん 21/12/21 07:57 [ コメントを投稿する ]
   ありがとうございます。できました。
 ところで、例示頂いたマクロを参考に、以下のマクロを実行しました。

setcompatiblemode 0x0012000F;
selectcolumn;
tomultiselect;
replaceallfast "(.*)", "\t\\1", regular, inselect2;

 こうしたら、列の前後に空列(\tだけの列)が挿入されました。

 TSVモードモードでなく、普通に文字列を1箇所、選択しておいて、

replaceallfast "(.*)", "a\\1", regular, inselect2;

 この1文を実行しても、選択文字列の前後にaが挿入されます。
 使い方が違っていたら、ご指摘、下さい。
[ ]
RE:09710 列の挿入についてNo.09711
秀丸担当 さん 21/12/21 11:57 [ コメントを投稿する ]
  "(.*)"の場合だと、0文字にもヒットしてしまうので、そうなってしまうようでした。
"(.+)"にするといいと思います。
[ ]

[ 新規に投稿する ]