前回は、ScriptControlコンポーネントを利用して、VBAからJavaScriptのコードを呼び出してみました。しかし、この方法にはいくつかの難点があります。というのも、前回のリスト2などを見てもわかるように、JavaScriptのコードを文字列として記述しなければなりません。クオートが入れ子になっていることから、短いコードであるにも関わらず、著しく可読性を損ねています。また、ScriptControlコンポーネント自体が64ビット環境には未対応で、32ビット環境のOfficeでしか動作しません。
そこで、ScriptLetsという別の技術も紹介しましょう。ScriptLetsを一言でいうと「スクリプトをコンポーネント化する技術」です。この特集ではBasp21やScripting.FileSystemObjectのようなコンポーネントを利用してきましたが、これらと同じく、VBAから呼び出せるコンポーネントをJavaScriptで用意してしまおうというわけです。ScriptLetsによって、JavaScriptのコードを別ファイルにできますので、コードの可読性も向上しますし、環境も32ビット/64ビットを選びません。
ScriptLetsの基本構文
例えばリスト1は、前回のリスト2で作成したParseDateTimeプロシージャをScriptLetsで置き換える例です。ファイル名は何でも構いませんが、拡張子は「.wsc」(Windows Script Componentの略)としてください。