先日のセミナー にて、ダブルスペースをシングルスペースに変換するマクロの作成をご依頼いただきました。
こういうニーズってありますね。
<目次>
このマクロでできること
ピリオド、?、!の後に2つ以上スペースがあり、その後、半角英数字が記載されていた場合、このスペースを1つにします。
マクロの解説
ワイルドカードを用いた置換を実行しています。
ワイルドカードでは、半角の?と!は役割を持っていますので、?と!そのものを検索するために、\?、\!としました。
マクロ
Sub シングルスペース化() Dim myRange As Range Set myRange = ActiveDocument.Range(0, 0) With myRange.Find .Text = ".[ ]{2,}([a-zA-Z0-9])" .Replacement.Text = ". \1" .Replacement.Highlight = True .Forward = True .Format = True .MatchWildcards = True .Execute Replace:=wdReplaceAll End With With myRange.Find .Text = "\?[ ]{2,}([a-zA-Z0-9])" .Replacement.Text = "? \1" .Replacement.Highlight = True .Forward = True .Format = True .MatchWildcards = True .Execute Replace:=wdReplaceAll End With With myRange.Find .Text = "\![ ]{2,}([a-zA-Z0-9])" .Replacement.Text = "! \1" .Replacement.Highlight = True .Forward = True .Format = True .MatchWildcards = True .Execute Replace:=wdReplaceAll End With Set myRange = Nothing End Sub
-
2. Re:文章の後ろのスペース文字について
H. C. Shinopyさん、
コメントをどうもありがとうございます。
おっしゃるとおり、直接話法の文章の場合には、一工夫がいりますね。ご指摘をありがとうございます。
今回のマクロでは、通常の文章のみを対象にしておりました。
文末のスペースの数ですが、おかしな点というのは、スペース1つの記載がおかしいということでしょうか。
これ、どちらのスタイルもあるみたいですよ。
私も、スペースは2つ入れるものだと思っていましたが、友人から教えてもらいました。
先日のセミナーの受講生の方が必要とされていたので、ニーズ自体はあると思います。
お客さんの仕様によっては、スペースを1つにするというところもあるようです(友人が勤務していた会社の方針がそうでした)。
スタイルガイドとして比較的有名な「The Chicago Manual of Style」では、スペース1つというスタイルを提案しているようです(かつての職場で確認しました。ただ、うろ覚えです)。
お客様のご要望によって使い分けがされているようですね。どちらのスタイルもありではないかと思います。
ただ、私は普段の技術翻訳ではスペースを2つ入れており、特に変更の要請をうけたことがありません。
また、スペースの数については細かく検証したことがありませんので、その点はご了承ください。
なお、「シングルスペース」、「ダブルスペース」については、行間のことを示す言葉のようです。
誤用してしまいました。失礼いたしました。
コメント