複数の列を一気に削除No.08929
いちもんじ さん 19/03/03 17:07
 
 カンマで区切られた長い一行(400列)のうち、5列目から10列目までと21
列目から25列まで、42列目から55列目まで、というように複数の範囲を指定
して一気に削除する方法があればご教示下さい。
 長い一行が、数百行程度あり、不要なフィールドを削除してファイルを
軽くしたいのです。

複数範囲指定モードで、selectcolumnを使うような、使えないような...

[ ]
RE:08929 複数の列を一気に削除No.08932
秀丸担当 さん 19/03/04 16:48
 

selectcolumnで複数選択を使うこともできなくはないですが、数回に分けて削除する
ほうが早いと思います。
行頭に近いほうを先に削除するとずれるので、後ろのほうからしたほうがいいです。
例:
selectcolumn 4,5;
delete;
selectcolumn 1,2;
delete;

しいて複数選択を使うとしたら、例えば手動操作の場合、ある選択をしてから、「複
数選択予約」コマンド実行、また別の選択をしてから「複数選択予約」コマンド実行、
とすると、予約する部分を増やしていけます。
予約し終わったら「複数選択予約を選択」コマンドで、選択できます。
キー割り当ての場合クリップボード系、[その他]→[メニュー編集]のメニューバーの
場合「編集(E)」の中の下のほうにサブメニューの複数選択があります。
複数選択の場合は、先頭からでもいいです。
例:
selectcolumn 1,2;
reservemultisel;
selectcolumn 4,5;
reservemultisel;
selectreservedmultisel;
//delete; や削除キー

[ ]
RE:08932 複数の列を一気に削除No.08933
秀丸担当 さん 19/03/04 16:59
 

すみません。マクロで複数選択したものを削除する場合、あらかじめsetcompatiblem
odeで複数選択に対応したマクロであることを指定しておく必要がありました。
例えば以下のようにします。
setcompatiblemode 0x00100000;
selectcolumn 1,2;
reservemultisel;
selectcolumn 4,5;
reservemultisel;
selectreservedmultisel;
delete;

[ ]
RE:08933 複数の列を一気に削除No.08934
いちもんじ さん 19/03/04 17:13
 
>すみません。マクロで複数選択したものを削除する場合、あらかじめsetcompatible
>modeで複数選択に対応したマクロであることを指定しておく必要がありました。

素晴らしい!
望んでいた動作です。
「reservemultisel」や「selectreservedmultisel」の使い方も理解できました。

ありがとうございました。

[ ]