下記の記事のロジックの応用で、ひらがな・カタカナ変換を行う関数も作成しました。
VBScriptで全角・半角変換を行う関数
#ソースコード
Option Explicit
'*****************************************************************************
'[概要] 全角ひらがなを全角カタカナに変換する
'[引数] 変換対象文字列
'[戻値] 変換後文字列
'*****************************************************************************
Function StrConvKana(ByVal strWord)
Dim i, strChar, lngChar
For i = 1 To Len(strWord)
strChar = Mid(strWord, i, 1)
lngChar = Asc(strChar)
If Asc("ぁ") <= lngChar And lngChar <= Asc("み") Then
strChar = Chr(lngChar + Asc("ア") - Asc("あ"))
ElseIf Asc("む") <= lngChar And lngChar <= Asc("ん") Then
strChar = Chr(lngChar + Asc("ン") - Asc("ん"))
End If
StrConvKana = StrConvKana & strChar
Next
End Function
'*****************************************************************************
'[概要] 全角カタカナを全角ひらがなに変換する
'[引数] 変換対象文字列
'[戻値] 変換後文字列
'*****************************************************************************
Function StrConvHira(ByVal strWord)
Dim i, strChar, lngChar
For i = 1 To Len(strWord)
strChar = Mid(strWord, i, 1)
lngChar = Asc(strChar)
If Asc("ァ") <= lngChar And lngChar <= Asc("ミ") Then
strChar = Chr(lngChar - Asc("ア") + Asc("あ"))
ElseIf Asc("ム") <= lngChar And lngChar <= Asc("ン") Then
strChar = Chr(lngChar - Asc("ン") + Asc("ん"))
End If
StrConvHira = StrConvHira & strChar
Next
End Function
途中のミ
とム
で判定を区切っているのは、以下のコードの実行結果で分かるように、カタカナのみミとムの文字コードが1文字分とんでいるためです。
Sub DumpChar()
Dim i, str
str = ""
For i = Asc("ぁ") To Asc("ん")
str = str & Chr(i)
Next
Debug.Print str
str = ""
For i = Asc("ァ") To Asc("ン")
str = str & Chr(i)
Next
Debug.Print str
End Sub
実行結果は以下となります。
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ・ムメモャヤュユョヨラリルレロヮワヰヱヲン
#関連記事
VBScriptで全角・半角変換を行う関数
VBScriptでカタカナの全角・半角変換を行う関数
VBScriptでひらがな・カタカナ変換を行う関数 ※この記事