文字列をUTF-8でエンコードするユーザー定義関数

Pocket

ExcelのワークシートからGoogleの検索結果にハイパーリンクを張ることを考えていたところ、URLの一部として日本語をそのまま渡すのではなく、UTF-8でエンコードする必要があることに気付きました。
そこで、本来の目的とは違うのですが、VBAを使い、文字列をUTF-8でエンコードするユーザー定義関数を作りました。
例えば「あア亜」を「%E3%81%82%E3%82%A2%E4%BA%9C」に変換します。
JavaScriptだとescapeやencodeURIに相当します。

設定

VisualBasicエディタの設定をする必要があります。
ツール-参照設定-参照設定ダイアログで「Microsoft ActiveX Data Objects 2.8 Library」にチェックを入れます。
2.5以上であれば動くようです。

コード

Function encodeUTF8(mytext As String) As String
    Dim mystream As New ADODB.Stream
    Dim mybinary, mynumber
    With mystream
        .Open
        .Type = adTypeText
        .Charset = "UTF-8"
        .WriteText mytext
        .Position = 0
        .Type = adTypeBinary
        .Position = 3
        mybinary = .Read
        .Close
    End With
    For Each mynumber In mybinary
        encodeUTF8 = encodeUTF8 & "%" & Hex(mynumber)
    Next
End Function

[ 2012年6月22日 | カテゴリー: Excel | タグ: , , , ]

« | »

コメント

  1. morishita kazuaki より:

    どなたか存じ上げませんか、便利なものをありがとうございました。

  2. stabucky より:

    >morishita kazuakiさん
    ご利用ありがとうございました。

  3. tokutoku より:

    素晴らしい!!
    おかげで救われました。
    ありがとうございます。

  4. stabucky より:

    tokutokuさん
    お役に立てて嬉しいです。

  5. 大内 勝美 より:

    ありがとうございます。
    おかげで、どれだけ無駄な時間・労力が省けたか。
    感謝します。

  6. stabucky より:

    大内さん
    お役に立てて嬉しいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報