Wordを使って、全角文字だけで書かなければならない作業があったのですが、誤って半角文字が紛れ込んでしまい、後で探し出して修正するのにえらい時間がかかってしまった。この作業が今後、たびたび発生するので、なんとしても自動化が必要になり、VBAでプログラムを開発しました。
下記は、Word内で動作するプログラムです。
Option Explicit
Sub halfWidthString2FullWidth()
'仕様
'半角文字を赤色に変え、かつ、全角に変換する
Dim ss As Long 'カーソル位置
'---- 画面更新の停止(高速化)
Application.ScreenUpdating = False
'---- 文字列選択範囲を初期化
Selection.Start = 0
Selection.End = 0
Do
'---- カーソル位置を取得する
ss = Selection.Start
'---- カーソル位置から2文字選択する
Selection.Start = ss
Selection.End = ss + 2
'---- 選択文字列が、2文字半角カナ(濁点、半濁点)ならば全角化する
If Selection.Range.CharacterWidth = wdWidthHalfWidth Then '半角ならば
Selection.Range.Font.ColorIndex = wdRed '選択文字の色を赤色にする
Selection.Range.CharacterWidth = wdWidthFullWidth '文字のサイズを全角にする
'---- 選択文字が、1文字半角ならば全角化する
Else
'---- カーソル位置から1文字選択する
Selection.Start = ss
Selection.End = ss + 1
If Selection.Range.CharacterWidth = wdWidthHalfWidth Then '半角ならば
Selection.Range.Font.ColorIndex = wdRed '選択文字の色を赤色にする
Selection.Range.CharacterWidth = wdWidthFullWidth '文字のサイズを全角にする
End If
End If
'---- カーソルを右に1つ移動する
Selection.MoveRight Unit:=wdCharacter, Count:=1
'---- カーソルが移動していなければ処理終了
If Selection.Start = ss Then Exit Do
Loop
'---- 画面更新の再開
Application.ScreenUpdating = True
End Sub