【VBScript】全角を半角に、半角を全角に変換する

VBScript

全角を半角に変換する

VBScriptで、文字列の全角を半角に変換する方法です。

'================================
' 関数部分
'================================
Const SHIFT_CODE = &H7DE1

'指定した文字列の全角英数を半角に変換して返す
Function StrConvNarrow(strWide)

    Dim length, index, retStr, retChar, tempChar, tempCode
    retStr = ""
    StrConvNarrow = retStr
    
    length = Len(strWide)
    For index = 1 To length
        tempChar = Mid(strWide, index, 1)
        tempCode = Asc(tempChar)
        If (tempCode >= &H824F And tempCode <= &H8258) Or _
            (tempCode >= &H8260 And tempCode <= &H8279) Then
            retChar = Chr(tempCode + SHIFT_CODE)
        ElseIf tempCode >= &H8281 And tempCode <= &H829A Then
            retChar = Chr(tempCode + SHIFT_CODE - 1)
        Else
            retChar = tempChar
        End If
        retStr = retStr & retChar
    Next
    
    StrConvNarrow = retStr

End Function



'================================
' 上の関数の実行例
'================================
msgbox StrConvNarrow("abcde")   'abcde

 

 

半角を全角に変換する

VBScriptで、文字列の半角を全角に変換する方法です。

'================================
' 関数部分
'================================
Const SHIFT_CODE = &H7DE1

'指定した文字列の半角英数を全角に変換して返す
Function StrConvWide(strNarrow)

    Dim length, index, retStr, retChar, tempChar, tempCode
    retStr = ""
    StrConvWide = retStr
    
    length = Len(strNarrow)
    For index = 1 To length
        tempChar = Mid(strNarrow, index, 1)
        tempCode = Asc(tempChar)
        If (tempCode >= &H30 And tempCode <= &H39) Or _
            (tempCode >= &H41 And tempCode <= &H5A) Then
            retChar = Chr(tempCode - SHIFT_CODE)
        ElseIf tempCode >= &H61 And tempCode <= &H7A Then
            retChar = Chr(tempCode - SHIFT_CODE + 1)
        Else
            retChar = tempChar
        End If
        retStr = retStr & retChar
    Next
    
    StrConvWide = retStr

End Function



'================================
' 上の関数の実行例
'================================
msgbox StrConvWide("abcde")   'abcde

 

このサイトで使っている関数は、

このサイトで紹介されていたのを使用しています。