非欧文中の算用数字を漢数字に置換してくれるかもしれないマクロ
Macでも使へるやうにとRegExpなしでやってみたものの,よくわからないエラーで動かなかったので動くのかもよく知らない。もっとすっきり書けるのではと思ふが,VBA初心者すぎてよく分らない。
Option Explicit ' ' Arabic2HanInJa by Kazuhiro Okada ' A macro converts Arabic numerals in Japanese context into Han numerals ' Note that this macro converts entire file ' version 16 Oct 2017 Initial version ' Sub Arabic2HanInJa() ' A main body Dim para As Paragraph Dim chr As Range Dim numFlag As Boolean Dim replFlag As Boolean Dim replBegin As Integer Dim replChr As Integer Dim chrNum As Integer For Each para In ActiveDocument.Paragraphs numFlag = False replFlag = True chrNum = 1 For Each chr In para.Range With chr If .Text Like "[!a-zA-Z0-9 ]" Then If replFlag And numFlag Then For replChr = replBegin To chrNum para.Range.Characters(replChr).Text = _ Arabic2Han(CInt(para.Range.Characters(replChr).Text)) Next replChr Else replFlag = True End If Else If .Text Like "[0-9]" Then If numFlag = False Then numFlag = True replBegin = chrNum End If Else replFlag = False End If End If End With chrNum = chrNum + 1 Next chr If numFlag And replFlag Then For replChr = replBegin To chrNum para.Range.Characters(replChr).Text = _ Arabic2Han(CInt(para.Range.Characters(replChr).Text)) Next replChr End If Next para End Sub Function Arabic2Han(num As Integer) As String ' A private function that converts Arabic numerals into Han Dim hanNumeral() hanNumeral = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九") Arabic2Han = hanNumeral(num) End Function