
濁点/半濁点のカナを2文字のカナに分割する関数 pfDakutenSplit( )
文字列中の「ダ、パ」などの1文字の濁音/半濁音のカナを変換し、清音+濁点/半濁点の2文字のカナに分割した結果の文字列を返します。
全角のカタカナ、ひらがなが対象となります。
例えば、「ダ」→「タ゛」 「パ」→「ハ゜」
対象となる文字は以下の通り、、、
・全角カタカナ
「ガ行」「ザ行」「ダ行」「バ行」「パ行」「ヴ」
・全角ひらがな
「が行」「ざ行」「だ行」「ば行」「ぱ行」
pfDakutenSplit ( pStr )-------------- サンプルコード --------------Input
pStr (必須)変換対象の文字列を指定します
Output
なし
Return
変換された結果の文字列を返します
Public Function pfDakutenSplit(pStr As Variant) As String
Dim ii As Long
Dim tmpChr As String
Dim cnvStr As String
Dim tmpCode As Integer
tmpChr = ""
cnvStr = ""
For ii = 1 To Len(pStr)
tmpChr = Mid(pStr, ii, 1)
tmpCode = Asc(tmpChr)
Select Case tmpCode
'全角カタカナ (ガ、ザ、ダ、バ行)
Case -31925, -31923, -31921, -31919, -31917, -31915, -31913, -31911, -31909, -31907 _
, -31905, -31903, -31900, -31898, -31896, -31889, -31886, -31883, -31880, -31877
tmpChr = Chr(tmpCode - 1) & "゛"
'全角カタカナ (ヴ)
Case -31852
tmpChr = "ウ゛"
'全角ひらがな (が、ざ、だ、ば行)
Case -32086, -32084, -32082, -32080, -32078, -32076, -32074, -32072, -32070, -32068 _
, -32066, -32064, -32061, -32059, -32057, -32050, -32047, -32044, -32041, -32038
tmpChr = Chr(tmpCode - 1) & "゛"
'全角カタカナ (パ行:半濁音)
Case -31888, -31885, -31882, -31879, -31876
tmpChr = Chr(tmpCode - 2) & "゜"
'全角ひらがな (ぱ行:半濁音)
Case -32049, -32046, -32043, -32040, -32037
tmpChr = Chr(tmpCode - 2) & "゜"
Case Else
End Select
cnvStr = cnvStr & tmpChr
Next ii
pfDakutenSplit = cnvStr
End Function