全角の英数字・記号を半角に置換する(書式とカタカナは維持)

Word文書上の全角の英数字・記号を半角にして、カナは全角にするマクロです。いったん半角化が可能な文字をすべて半角にしてから、半角カナを全角にするという処理を行います。

Sub 全角文字を半角に変換()

  Dim rngDoc As Range
  Set rngDoc = ActiveDocument.Content
  'すべて半角に
  rngDoc.CharacterWidth = wdWidthHalfWidth
  '半角カナを全角に
  With rngDoc.Find
    .ClearFormatting
    .Forward = True
    .Wrap = wdFindContinue
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
  End With
  '濁点・半濁点付き2字セットを処理
  Do While rngDoc.Find.Execute(findText:="[ヲ-ン][゙゚]") = True
    rngDoc.Text = StrConv(rngDoc.Text, vbWide)
  Loop
  '残りの半角カナを1字ずつ処理
  Do While rngDoc.Find.Execute(findText:="[。-゚]") = True
    rngDoc.Text = StrConv(rngDoc.Text, vbWide)
  Loop

End Sub
一括で半角変換

rngDoc.CharacterWidth = wdWidthHalfWidth
文書全体を選択して[文字種の変換]-[半角] を実行するのと同等です。英数字、記号、カタカナが半角文字に変換されます。段落・文字の書式は維持されます。

半角カナを検索して全角化

StrConv(半角文字, vbWide) で全角に置き換えます。

置換処理は2回に分けて行います。
1回目は半角2字で全角1字になる濁点・半濁点付きの文字(“[ヲ-ン][゙゚]”)です。個別に全角化すると1字にならないため、半角2字セットで変換する必要があります。
2回目ですべての半角カナ(“[。-゚]”)を置換します。
「パガニーニ」→「パガニーニ」→「パガニーニ」といった具合です。

 

ここで紹介したマクロの処理は、Wordの機能だけでも実現できます。

タイトルとURLをコピーしました