メモShift-JISをURLEncodeする

Yahoo知恵袋にあったコードを試したので、自分用にメモ。



Sub sample()
    Dim str As String
    str = "検索abcABC123"
    str = urlEncSJis(str) 'エンコード呼び出し
    MsgBox str
End Sub


'Shift-JISにしてエンコード
Function urlEncSJis(txt As String) As String
    Dim bin() As Byte
    Dim i As Integer
    Dim res As String
    
    bin = StrConv(txt, vbFromUnicode) 'Shift-Jisにしてバイナリ配列へ
    
    'バイナリ配列を文字列に変更
    For i = 0 To UBound(bin)
        Select Case bin(i)
            Case &H31 To &H39, &H41 To &H5A, &H61 To &H7A '0-9,A-Z,a-z なら
                res = res & Chr(bin(i)) 'そのままの文字
            Case Else 'それ以外のエンコード対象文字なら
                res = res & "%" & Hex(bin(i)) 'エンコード
                'res = res & "%" & LCase(Hex(bin(i))) '小文字にする場合
        End Select
    Next
    
    urlEncSJis = res
End Function

この記事が気に入ったらサポートをしてみませんか?