1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VBScriptでひらがな・カタカナ変換を行う関数

Last updated at Posted at 2020-07-27

下記の記事のロジックの応用で、ひらがな・カタカナ変換を行う関数も作成しました。
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でひらがな・カタカナ変換を行う関数 ※この記事

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?