Skip to content

Instantly share code, notes, and snippets.

@honda0510
Created July 29, 2011 09:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save honda0510/1113516 to your computer and use it in GitHub Desktop.
Save honda0510/1113516 to your computer and use it in GitHub Desktop.
VBAでURLエンコード
Function UrlEncodeUtf8(str As String) As String
Dim script As Object
Set script = CreateObject("ScriptControl")
script.Language = "Jscript"
UrlEncodeUtf8 = script.CodeObject.encodeURIComponent(str)
End Function
@yu-tang
Copy link

yu-tang commented Oct 11, 2011

記事化を期待してもいいですか?(・∀・)ニヤニヤ

x64 版を出さないと M$ が明言した段階で死亡宣告なので、ScriptControl の記事化は基本無いです。

しかし、わずか2ヶ月前にこんな記事を書いている人もいる。
VBAでスクリプトエンジンを直接動かす
面白いですね。

@honda0510
Copy link
Author

x64 版を出さないと M$ が明言した段階で死亡宣告なので、ScriptControl の記事化は基本無いです。

ざんねーん

VBAでスクリプトエンジンを直接動かす

コードをコピペしただけじゃ動かないですねw

@yu-tang
Copy link

yu-tang commented Oct 11, 2011

コードをコピペしただけじゃ動かないですねw

はい。記事末尾に書いてある通り、自分でタイプライブラリ作らないといけないです。
タイプライブラリはふつう MKTYPLIB.EXE で .odl から作りますが、Visual Studio (というか、Visual C++) 持ってないと、このユーティリティは無かったような(元記事執筆者さんの環境は VS 6.0 と思われる。最近の VS には MKTYPLIB.EXE 付いてない模様)。
なので、持ってない人は、誰かが作った tlb を DL して使うことになります。

ま、でも ScriptControl を使えば済む 32bit 版ユーザーにとっては、今のところ関係ない話ですけどね。

@honda0510
Copy link
Author

あ~もうぜんぜんついていけません。
YU-TANGさんすごいっすね。

@yu-tang
Copy link

yu-tang commented Oct 11, 2011

お蔭様で、ここでやり取っているうちに、64bit 環境でURLエンコードする別の方法を思いついたので、暇になったら書きます。
(しかし検証ができんな…)

@honda0510
Copy link
Author

マジッすか。ぜひぜひ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment