[Scripting] | |||||||||||||
よく利用するジョブをスクリプトレットでコンポーネント化する
|
|||||||||||||
|
解説 |
このWindows TIPSでもさまざまなWSH(Windows Scripting Hosts)のコードを紹介してきた。恐らく多くのロジックを記述しているうちに、複数のコードから頻繁に使用する定型的なロジックが必ず出てくるはずだ。当然のことながら、このようなコードを個々の「.wsf」ファイルに記述するというのは、開発生産性/保守性いずれの観点から見ても好ましいものではない。
しかし部品化を行うといっても、それだけのためにいちいちVisual BasicやC++のような本格的なプログラミング言語を利用しなければならないとしたら、少し大げさすぎる。スクリプト言語くらいしか書けないというレベルの管理者にとっては、敷居が高すぎる。また、WSHスクリプトを記述する際に主に採用されるVBScriptとVisual Basicは、比較的構文が似ているとはいえ、細部では異なる点も少なくない。既存のコードから共通のコードを切り出してコンポーネント化したいという場合に、そうした構文の違いを意識しながら、いちいちコードを書き換えていかなければならないというのは、とても面倒である。このような理由から、WSHスクリプトにおいて共通コードがあることを知りながら、なかなか部品化には踏み切れずにいたという諸氏も多いのではないだろうか。
そこで本稿では、「スクリプトレット(ScriptLets)」というしくみを利用して、Windows TIPS「テンプレートを元に複数のメールを一括配信する」で紹介したコードからメール送信部を取り出し、メール送信コンポーネントを構築する方法について紹介する。スクリプトレットを簡単にいうと、COMコンポーネントをスクリプト言語で作成するための技術だ。スクリプトレットを利用することで、VBScriptやJScriptで記述したコードを任意のWSHスクリプトやVBA(Visual Basic for Application)、ASP(Active Server Pages)などのコードから共通して呼び出すことができるようになる。
なお本TIPSでは、主にスクリプトレット固有の構文について解説する。メール送信ロジックにかかわる詳細や、サンプルの実行に必要な環境の準備については、先のTIPSを併せて参照いただきたい。
操作方法 |
手順1―テキスト・エディタでスクリプトレットのコードを入力する
まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してほしい。なお「<!--〜-->」で囲まれた部分は、コードの意味を解説するためのコメント部分なので、省略してもよい。コメントには、スクリプトレットの簡単な説明を入れておいた。
※ファイルmail.wsc |
- サンプル・ファイルのダウンロード
(注:サンプルmail.wscを実行するには、上のサンプル・ファイルを右クリックしてmail.wscというファイル名で保存する)
- スクリプト コンポーネント チュートリアル(マイクロソフトMSDNサイト)
- Windows Script Components - They Get Around (それらは歩き回る)(マイクロソフトMSDNコラム)
一般的なCOMコンポーネントが使用に先立ってレジストリに登録しておく必要があったように、スクリプトレット・コンポーネントもまた、あらかじめレジストリに登録しておく必要がある(登録には管理者権限が必要)。具体的には、エクスプローラでスクリプトレットのファイルを右クリックし、ポップアップ・メニューから[登録]を選択する。ただしレジストリへの登録後もファイルは削除してはいけないので(登録時の場所にずっと置いておく必要がある)、あらかじめスクリプト登録用のフォルダなどを作成して、保存しておくとよいだろう。
スクリプトレット・コンポーネントの登録 | ||||||
スクリプトレット・コンポーネントを利用するには、最初にレジストリに登録しておく必要がある。いったん登録したコンポーネントは、解除するまでファイルの移動や削除指定をしてはいけないので、専用のフォルダを作って管理するとよいだろう。 | ||||||
|
登録が完了すると、次のようなダイアログが表示されるはずである。
スクリプトレット・コンポーネントの登録完了の通知 |
コンポーネントの登録が正常に完了すると、このようなダイアログが表示される。 |
手順2―テキスト・エディタでWSHスクリプトのコードを入力する
次に、上で作成したスクリプトレット・コンポーネントを利用するためのWSHスクリプトを作成しておこう。あえて注意すべき点があるとしたら、<object>要素のprogid属性に指定するプログラムIDは、スクリプトレット・コンポーネントの<registration>要素で指定したそれに対応していなければならない、という点だ。スクリプトレットだからといって、何ら特別なことはなく、通常のコンポーネントを利用するのとまったく同じ要領で利用できることが分かるはずだ。
※ファイルmail.wsf |
- サンプル・ファイルscriptletsample.zipのダウンロード
(注:サンプルを実行するには、上のサンプル・アーカイブ・ファイルを右クリックしてダウンロードし、.zipファイルを解凍して、mail.dat、mail.mdb、mail.wsc、mail.wsfを同一のフォルダに保存する)
この記事と関連性の高い別の記事
- スクリプトレット・コンポーネントでリソース情報を定義する(TIPS)
- WSHに渡された引数の妥当性を自動検証する(TIPS)
- スクリプトレット・コンポーネントでプロパティを定義する(TIPS)
- WSHからExcelファイルの設定情報を読み込む(TIPS)
- ファイルの文字コードを変換する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|