先日のセミナー にて、ダブルスペースをシングルスペースに変換するマクロの作成をご依頼いただきました。
こういうニーズってありますね。
<目次>
このマクロでできること
ピリオド、?、!の後に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つ入れており、特に変更の要請をうけたことがありません。
また、スペースの数については細かく検証したことがありませんので、その点はご了承ください。
なお、「シングルスペース」、「ダブルスペース」については、行間のことを示す言葉のようです。
誤用してしまいました。失礼いたしました。






コメント