VB(VBA)で、濁点半濁点が1文字になっているものを濁点半濁点付き文字に変換する

 必要に迫られて、というほど迫られてもいないけれど、念のための処理が必要になったので作った。
 「半角カナ」ではなく「全角カナ」になっている前提。

'全角2文字で入力されている濁点、半濁点を全角1文字に変換する(例:カ゛→ガ)
Function convZenkakuDakuten(str As String) As String
Dim tmp     As String
Dim str1    As String
Dim str2    As String
Dim i       As Integer

    tmp = Trim(str)

    str1 = "ガギグゲゴザジズゼゾダヂヅデドバビブベボ"
    str2 = "カキクケコサシスセソタチツテトハヒフヘホ"
    
    For i = Len(str1) To 1 Step -1
        tmp = Replace(tmp, Mid(str2, i, 1) & "゛", Mid(str1, i, 1))
    Next

    str1 = "パピプペポ"
    str2 = "ハヒフヘホ"
    For i = Len(str1) To 1 Step -1
        tmp = Replace(tmp, Mid(str2, i, 1) & "゜", Mid(str1, i, 1))
    Next
    
    tmp = Replace(tmp, "ウ゛", "ヴ")
    
    convZenkakuDakuten = tmp
End Function
Sub test()
    MsgBox convZenkakuDakuten(任意の文字列)
End Sub

のように呼び出して使う。