【Word VBA】全角数字を半角にするWordマクロ

2015年9月8日

書類に全角数字と半角数字とが混在すると、統一感が損なわれます。

このマクロを実行して、見た目を美しく整えます。

このマクロでできること

本文中に書かれた全角数字を半角数字に置換します。

修正箇所を黄色の蛍光ペンで着色します。

マクロの解説

8行目と11行目で、現在の蛍光ペンの色を保存し、置換用に一時的に黄色の蛍光ペンを設定しています。

処理後、元の蛍光ペンの色に戻しています。

数字の置換には、カウンター変数を用いました。

18行目~38行目のループで、0から9までを順番に置換しています。

21行目で、検索する文字列に全角数字を設定しています。

マクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub 全角数字を半角にする()
 
 Dim i As Integer
 Dim myRange As Range '検索用のRangeオブジェクト
 Dim myColor As Integer '蛍光ペンの色
 
 '現在の蛍光ペンの色を保存
 myColor = Options.DefaultHighlightColorIndex
 
 '蛍光ペンの色を黄色に設定
 Options.DefaultHighlightColorIndex = wdYellow
 
 '画面更新をオフ
 Application.ScreenUpdating = False
 
 Set myRange = ActiveDocument.Range(0, 0)
 
 For i = 0 To 9
 
  With myRange.Find
   .Text = StrConv(i, vbWide) '検索する文字列
   .Replacement.Text = i  '置換後の文字列
   .Replacement.Highlight = True '置換後の文字列の蛍光ペンをオン
   .Forward = True
   .Wrap = wdFindStop
   .Format = True       '書式の設定をオン
   .MatchCase = False     '大文字と小文字の区別する
   .MatchWholeWord = False   '完全に一致する単語だけを検索する
   .MatchAllWordForms = False '英単語の異なる活用形を検索する
   .MatchSoundsLike = False  'あいまい検索(英)
   .MatchFuzzy = False     'あいまい検索(日)
   .MatchWildcards = False   'ワイルドカードを使用する
   .MatchByte = True      '半角と全角を区別する
   .Execute Replace:=wdReplaceAll
   DoEvents
  End With
 
 Next i
 
 '蛍光ペンの色を元に戻す
 Options.DefaultHighlightColorIndex = myColor
 
 '画面更新をオン
 Application.ScreenUpdating = True
 
 'myRangeを解放
 Set myRange = Nothing
 
End Sub

関連記事

【動画】WordマクロでWordをチューニング!Wordマクロの紹介

-コード
-,

S