読者です 読者をやめる 読者になる 読者になる

Fioの素敵な日々

日々の出来事や何やらをつれづれに

【Script】VBScriptからJavaScriptの関数を使うもっとも簡単な方法

どんな時に使うの?

たとえば、URLリンクを作成したい時に、日本語のままだとリンクにならず、URLエンコードしたい時があります。
つまり、「モーニング娘」のままではなく、
「%e3%83%a2%e3%83%bc%e3%83%8b%e3%83%b3%e3%82%b0%e5%a8%98%e3%80%82」
のように変換したい時です。

VBScriptでは組み込み関数がないけど、JavaScriptなら関数があるencodeURIを使えると簡単にできてしまうというケースですね。

スクリプトコントロールを使ってVBScriptからJavaScriptJScript)の関数を呼び出す

こんな時、スクリプトコントロールを使ってVBScriptからJavaScriptJScript)の関数を呼び出すことができます。(拡張子を.vbs、たとえばtest.vbsで保存してください)

Set SC = CreateObject("ScriptControl")
SC.Language = "JavaScript"
Set JS = SC.CodeObject
EncodeURL = JS.encodeURI(strText)
MsgBox EncodeURL("モーニング娘")

しかし、難点は、スクリプトコントロール(CreateObject("ScriptControl")のところ)は、64ビットWindowsでは使えないのです。

そこで第二の術

WSFファイルにしてVBScriptからJavaScriptJScript)の関数を呼び出す

64ビットWindowsでも使えるもっとも簡単な方法は、WSF(Windows Script File)にして、VBScriptからJavaScriptJScript)の関数を使ってしまうというものです。

たとえばこんな風にします。(拡張子.wsf、たとえばtest.wsfで保存してください)

<job>
<script Language="JavaScript"></script>
<script Language="VBScript">
MsgBox encodeURI("モーニング娘")
</script>
</job>

これだと64ビットWindowsでも動作します。
こんな風にしただけで、JavaScriptJScript)の関数が使えてしまうわけですね。
結構便利な方法だと思います。

広告を非表示にする