Kyoko さん、こんにちは。
このマクロはサンプルマクロの QSPACE.MAC をベースにしたものですが、改造は、 一見したよりはむずかしいのです。というのは、現在の行のみを処理するほうが メインにあって、選択部分を処理するときは、1 行ずつ処理して移動しているん です。その 1 行ずつでサブルーチンを呼んでいます。
proc main を次のもので置き換えてみてください。編集中のファイルの先頭から 末尾まで処理するはずになっています。別件はわけます。
proc main
dim startline, endline dim j dim oldline
if @Select > 0 then '選択範囲があるとき @Redraw = 0 startline = @SelectStartLine endline = @SelectEndLine - 1 @BlockSelectEnd @UndoBlock = 1 for j = endline to startline step -1 @Line = j @MoveBeginningLine oldline = @Line addspace1 j = oldline next @XDisplay = 1 @Redraw = 1 @UndoBlock = 0 exit proc end if '選択範囲がある場合、ここまで
@UndoBlock = 1 'まとめて UNDO できるようにしておく @Redraw = 0 '画面出力停止(スピードを稼ぐ) @MoveFileTop '先頭に移動 do while 1 'exit 条件が合致するまで繰り返し addspace1 if @ScrLineToCrLine(@Line) = @ScrLineToCrLine(@LastLine) then exit do @MoveNextLineCr loop @Redraw = 1 @UndoBlock = 0 end proc |