ワードのテキストを成形No.21493
k-yosi さん 06/06/19 13:00
 
マクロ初心者です。
ワードファイルのテキストを成形するために下記のマクロを初めて作りました。
ご存じかもしれませんが、ワードのデータをテキストに変更すると改行後のスペース
(段落の先頭)が無くなることがあります。
きちんと成形する目的でマクロを作ってみたのですが……。
このままでは全ての行頭にスペースが挿入されてしまいます。
できれば「見出し」の部分にはスペースを入れたくありません。
たとえば、行頭から20文字以内で改行が入る場合はスペースを入れないという条件が
作れるのでしょうか?


【改行後にスペースを入れるマクロ】

//2個連続する改行を1個にする
//replaceallfast "\n\n" , "\n" , regular ;

//改行とスペースを一旦「∀」に置き換える
replaceallfast "\n " , "∀" , regular ;

//改行後にスペースを入れる
replaceallfast "\n" , "\n " , regular ;

//一旦置き換えた∀を改行スペースに戻す
replaceallfast "∀" , "\n " , regular ;

//スペース+改行は改行だけに
replaceallfast "^ \n" , "\n" , regular ;

//行頭にもどる//
gofiletop;

endmacro

[ ]
RE:21493 ワードのテキストを成形No.21494
ENCODINGSHIFTJIS さん 06/06/19 15:16
 
>たとえば、行頭から20文字以内で改行が入る場合はスペースを入れないという条件
>が作れるのでしょうか?

正規表現パターンの繰返し指定には n 以上 があります

^([^  ]{10,})

\1\n
 
10文字以上の行には改行追加

[ ]
RE:21493 ワードのテキストを成形No.21498
山紫水明 さん 06/06/19 21:23
 
 k-yosiさん,

>たとえば、行頭から20文字以内で改行が入る場合はスペースを入れないという
>条件が作れるのでしょうか?

マクロで改行を示すには「\n」ではなく,「\\n」 と書く必要があります。
次のようなマクロでできるかどうか試してください。

//------------------------------------------------//
//いったん行頭スペースをすべて削除
replaceallfast "^ " , "" , regular ;

//2個連続する改行を1個にする
replaceallfast "\\n\\n" , "\\n" , regular ;

//20文字以上の行の頭にスペースを入れる
replaceallfast "^.{20,}$" , " \\0" , regular ;

//行頭にもどる//
gofiletop;
endmacro;
//------------------------------------------------//

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:21498 ワードのテキストを成形No.21499
Iranoan さん 06/06/19 23:00
 
 山紫水明さん今日は、Iranoan です。
 本題から離れますが、
> マクロで改行を示すには「\n」ではなく,「\\n」 と書く必要があります。
> 次のようなマクロでできるかどうか試してください。
に付いて。これは間違っています。処理順序の関係で、マクロで改行を表すに
は基本的には「\\n」「\n」のどちらでも構いません。
> replaceallfast "\\n\\n" , "\\n" , regular ;
に対応するものとして、
replaceallfast "\n\n" , "\n" , regular ;
を試してみてください。同じ結果になります。
http://www.maruo.co.jp/hidesoft/2/x21337_.html#21339

 ##regular を使わない時、解らない動作をする場合がありますが、これは秀
丸担当さんに別会議室への投稿で伺います。

[ ]
RE:21499 ワードのテキストを成形No.21503
山紫水明 さん 06/06/20 21:47
 
 Iranoanさん,

>> マクロで改行を示すには「\n」ではなく,「\\n」 と書く必要があります。
>> 次のようなマクロでできるかどうか試してください。
>に付いて。これは間違っています。処理順序の関係で、マクロで改行を表すに
>は基本的には「\\n」「\n」のどちらでも構いません。

 そのとおりでした。自分でも過去に話題にしたことがあると思いますが,うっ
かりしていました。

k-yosiさん,
 上記のこと取り消します。すみません。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]