小学3年生を、小学三年生にしたい
Excelで、「小学1年生」から「中学3年生」までのアラビア数字を、
漢数字に置き換えることになった。しかも、100回以上。
ということで急遽、関数を作ってみた。作戦は、こんな感じだ。
- 正規表現で、数字を抽出する。
- 抽出した数字を、漢数字に変換する。
- 変換ののち、元の数字と置換する。
作成してみよう。
Function 漢数字変換(src As Variant) As String Dim myReg As Object Set myReg = CreateObject("VBScript.RegExp") myReg.Pattern = "([0-90-9]+)" myReg.Global = True Dim MC As Object Dim i As Long If myReg.Test(src) Then Set MC = myReg.Execute(src) For i = 0 To MC.Count - 1 src = Replace(src, MC(i), _ WorksheetFunction.Text(MC(i), "[DBNum1]0")) Next End If 漢数字変換 = src End Function
なお、正規表現の変数宣言については、このままコピペされることを想定して
遅延バインディングとした。
試してみた結果がこちら。
やれやれ、何とかなりそうだ。
と、一息ついた私に待っていたのは、新たに告げられたこんな追加条件だった。
「小学3年生」を、「小学生三年」にしてください。
何ですと?
さて、どうしたものか(次回に続きます)。
参考まで。