自分用にちょっとしたツールをExcelで作っていて、文字列をUTF-8でURLエンコードする処理が必要だったため、その実装方法を調べました。
もう10年以上前になりますが、WindowsNT 4.0上のAccessで、URLエンコード・デコード関連の処理が必要になったことがありました。その当時はWindows標準のCOMなどで、URLエンコードする処理をやってくれるものがなく、信頼できそうなCOMを探したりして、ちょっと苦労した記憶があります。
その当時から考えると、今は無茶苦茶簡単にExcelでもUTF-8のURLエンコードできてしまいます。
以下のようなVBA(Visual Basic for Applications)のコードで、URLエンコードをするユーザー定義関数が作れます。
Function URL_Encode(ByVal strOrg As String) As String
With CreateObject("ScriptControl")
.Language = "JScript"
URL_Encode = .CodeObject.encodeURI(strOrg)
End With
Windows 2000以降のWindowsには標準で含まれているScriputControlを使って、上記のようなユーザー定義関数を作ってやればUTF-8によるURLエンコード処理ができます。
JScriptのencodeURIメソッドを利用しているだけのユーザー定義関数です。
▼サンプルファイル(003722.xls 27KByte)ダウンロード
サンプルファイルでは、上記のユーザー定義関数を作成し、B1セルに「=URL_Encode(A1)」という数式を入力して、A1セルの文字列をUTF-8でURLエンコードさせてあります。
- Newer:文字列のみをセルに表示する−;;;@
- Older:Ctrlキー+クリックでハイパーリンクを表示するチェックはどこに?
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » UTF-8でURLエンコードする