一括で算用数字を漢数字に変えたり、漢数字を半角・全角の算用数字に変えたりするワードのマクロ youtubeshort

A 算用数字(半角・全角)を漢数字に変える  ワードで横書きの文章を縦書きの文章にしたとき、算用数字を漢数字に変えたくなります。また、その逆もあります。
 その場合、左のマクロをワードに貼り付ければ、簡単にできます。
 ワードにマクロを貼り付ける方法はいくつかあります。今回は「Alt+F11」と「Alt+F8」のキーを使用する方法を紹介します。
 ワードファイルを開きます。「Alt+F11」キーを押します。下の左の画面が表示されます。マクロを入力する画面です。「Normal」にマウスを置いて右クリックします。下の右図のメニューが表示されるので、「挿入」→「標準モジュール」の順にマウスを移動してクリックします。
 灰色の部分が白くなるので、そこに左のAのマクロを、下の図のようにコピー・貼り付けしてください。
 マクロの画面を終了します。「Alt+F8」キーを押します。下のメニューが表示されます。「算用数字を漢数字に変換」が青くなっています。「実行」を押すと、算用数字が漢数字に変換されます。
 左のBとCのマクロを、「Alt+F11」キーでマクロを入力する画面を表示して、Aの下に追加でコピー・貼り付けします。マクロを入力する画面を終了して、「Alt+F8」キーを押すと、今度は下のメニューが表示されます。マクロを選択して、「実行」を押してください。
※「Normal」で作成したマクロは、同じパソコンなら、別のワードファイルでも普通に使用することができます。
Sub 算用数字を漢数字に変換()
Dim num As Integer
Dim kan() As Variant
kan() = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
For num = 0 To 9
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = num
.Replacement.Text = kan(num)
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchFuzzy = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub
B 漢数字に全角の算用数字に変える
Sub 漢数字を全角算用数字に変換()
Dim kanjiNums As Variant
Dim zenkakuNums As Variant
Dim i As Integer
kanjiNums = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
zenkakuNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
For i = 0 To UBound(kanjiNums)
With ActiveDocument.Content.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = kanjiNums(i)
.Replacement.Text = zenkakuNums(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Next i
End Sub
C 漢数字に半角の算用数字に変える
Sub 漢数字を半角算用数字に変換()
Dim kanjiNums As Variant
Dim arabicNums As Variant
Dim i As Integer
Dim rng As Range
' 漢数字と対応する半角数字の配列
kanjiNums = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
arabicNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set rng = ActiveDocument.Content
' 単純な文字置換(漢数字 → 数字)
For i = 0 To UBound(kanjiNums)
With rng.Find
.ClearFormatting
.Text = kanjiNums(i)
.Replacement.ClearFormatting
.Replacement.Text = arabicNums(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Next i
End Sub

範囲を選択して、算用数字を漢数字に変えたり、漢数字を半角・全角の算用数字に変えたりするワードのマクロを紹介します。

D 範囲を選択して算用数字に漢数字に変える E 範囲を選択して漢数字に全角の算用数字に変える
Sub 算用数字を範囲を指定して漢数字に変換()
Dim num As Integer
Dim kan() As Variant
kan = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
Dim rng As Range
Set rng = Selection.Range ' ← 選択範囲に限定
For num = 0 To 9
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = CStr(num)
.Replacement.Text = kan(num)
.Forward = True
.Wrap = wdFindStop ' ← 範囲内のみ
.MatchWholeWord = False
.MatchWildcards = False
.MatchFuzzy = False
.Execute Replace:=wdReplaceAll
End With
Next num
End Sub
>Sub 漢数字を範囲を指定して全角算用数字に変える()
Dim kanjiNums As Variant
Dim zenkakuNums As Variant
Dim i As Integer
Dim selRange As Range
Dim textContent As String
kanjiNums = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
zenkakuNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set selRange = Selection.Range
textContent = selRange.Text
For i = 0 To UBound(kanjiNums)
textContent = Replace(textContent, kanjiNums(i), zenkakuNums(i))
Next i
selRange.Text = textContent
End Sub
算用数字が半角の場合  算用数字が全角の場合
漢数字を半角算用数字に 漢数字を全角算用数字に
   
F 範囲を選択して漢数字に半角の算用数字に変える
Sub 漢数字を範囲を指定して半角算用数字に変える()
Dim kanjiNums As Variant
Dim zenkakuNums As Variant
Dim i As Integer
Dim selRange As Range
Dim textContent As String
kanjiNums = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
zenkakuNums = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
Set selRange = Selection.Range
textContent = selRange.Text
For i = 0 To UBound(kanjiNums)
textContent = Replace(textContent, kanjiNums(i), zenkakuNums(i))
Next i
selRange.Text = textContent
End Sub