秀丸マクロ, Word VBA, or the like -23ページ目

即席マクロ(6)-続続replaceallfast

今回紹介するマクロは、行頭と行末の不要な空白を削除するというものです。

言い換えると、段落の最初と最後の余分なスペースやTabを削除するものです。

以下がその基本的なコードです。
replaceallfast "^[  \t]+", "", regular;//行頭の空白を削除
replaceallfast "[  \t]+$", "", regular;//行末の空白を削除

上記コード内の、
^』は、行の頭を表す正規表現です。
$』は、行の末尾を表す正規表現です。
\t』は、TABを表す正規表現です。


なんとも地味なマクロなんですが、これが結構大事だったりするんです。

特に、マクロをよく使う場合、行頭や行末に余分なスペースがあったりすることで、
エラーになったり、思うような結果が得られなかったりするので、
こういう不要な空白は少なくとも作業中は削除しておくことをお勧めします。


もし、仕上げの段階で、インデントのために、全段落の頭にスペース又はTABを入れたければ
以下のコード或いは一括置換で挿入することが出来ます。

■行頭(段落の頭)に半角スペースを追加
replaceallfast "^(.+)", " \\1", regular;

或いは、"^(.+)"を" \1"で置換。


■行頭(段落の頭)に全角スペースを追加
replaceallfast "^(.+)", " \\1", regular;

或いは、"^(.+)"を" \1"で置換。


■行頭(段落の頭)にTabを追加
replaceallfast "^(.+)", "\t\\1", regular;

或いは、"^(.+)"を"\t\1"で置換。



あまり必要な場面が思い浮かびませんが、行末(改行前)に空白を追加する場合も載せておきます。

■行末(改行前)に半角スペースを追加
replaceallfast "(.+)$", "\\1 ", regular;

或いは、"(.+)$"を"\1 "で置換。


■行末(改行前)に全角スペースを追加
replaceallfast "(.+)$", "\\1 ", regular;

或いは、"(.+)$"を"\1 "で置換。


■行末(改行前)にTabを追加
replaceallfast "(.+)$", "\\1\t", regular;

或いは、"(.+)$"を"\1\t"で置換。



補足:
上記コードの
.+』は、任意の文字が1個以上という意味の正規表現です。
\\1』或いは、『\1』は、検索文字列の()でくくられた物を表します。
上記コードの場合、(.+)を表します。

通常の置換の場合は、『\1』です。
マクロで使用する場合は「\」をダブらせて、『\\1』とします。





マクロの作成手順は、『マクロを作ってみよう』の(1)~(5)を参照ください。
マクロの登録は、『マクロの登録方法』を参照ください。
ショートカットキーの割り当ては、『ショートカットキーを割り当てる』を参照ください。