列の挿入について
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文字にもヒットしてしまうので、そうなってしまうようでした。
"(.+)"にするといいと思います。
[
△
]