前回は、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の略)としてください。

リスト1●日付時刻文字列の変換機能をコンポーネント化(Util.wsc)
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら