促音、拗促音(いわゆる小さいッとかゥなど)を通常の文字(大文字)に変換するためのユーザー定義関数。
ァ、ィ、ゥ、ェ、ォ、ャ、ュ、ョ、ッをそれぞれア、イ、ウ、エ、オ、ヤ、ユ、ヨ、ツに変換する関数。
とあるプログラムのテストをする際に作成したので、せっかくだから覚書しておく。
促音、拗促音を変換するユーザー定義関数のサンプルプログラム
以下に作成したユーザー定義関数のサンプルプログラムを記載する。
ExcelのVBAでもAccessのVBAでも同じように使用することができる。
'促音、拗促音を変換する関数
'ASCIIコード表参考ページ http://www12.plala.or.jp/mz80k2/electronics/ascii/ascii.html
Function ConvYSokuon(strTarget As String) As String
Dim intASC As Integer, i As Integer
'全角カナを半角カナに変換
strTarget = StrConv(strTarget, 8)
'拗促音を変換
For i = 1 To Len(strTarget)
'変換対象文字列の文字を1文字ずつ取り出し、ASCIIコードに変換
intASC = Asc(Mid(strTarget, i, 1))
'ァ、ィ、ゥ、ェ、ォ(ASCIIコードの167~171)に該当するかチェック
If intASC >= 167 And intASC <= 171 Then '該当した場合は大文字に変換 Mid$(strTarget, i, 1) = Chr(intASC + 10) 'ャ、ュ、ョ(ASCIIコードの172~174)に該当するかチェック ElseIf intASC >= 172 And intASC <= 174 Then
'該当した場合は大文字に変換
Mid$(strTarget, i, 1) = Chr(intASC + 40)
'ッ(ASCIIコードが175)に該当するかチェック
ElseIf intASC = 175 Then
'該当した場合は大文字に変換
Mid$(strTarget, i, 1) = Chr(194)
End If
Next i
'全角カナに戻す
strTarget = StrConv(strTarget, 4)
'返り値を設定
ConvYSokuon = strTarget
End Function
解説は時間のあるときにでも...
コメント