VBA共通:促音、拗促音を通常の文字(大文字)に変換するユーザー定義関数

Excel

促音、拗促音(いわゆる小さいッとかゥなど)を通常の文字(大文字)に変換するためのユーザー定義関数。

ァ、ィ、ゥ、ェ、ォ、ャ、ュ、ョ、ッをそれぞれア、イ、ウ、エ、オ、ヤ、ユ、ヨ、ツに変換する関数。

とあるプログラムのテストをする際に作成したので、せっかくだから覚書しておく。

スポンサーリンク

促音、拗促音を変換するユーザー定義関数のサンプルプログラム

以下に作成したユーザー定義関数のサンプルプログラムを記載する。

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

解説は時間のあるときにでも...

コメント

タイトルとURLをコピーしました