Windows Script Component(WSC)は、VBScriptやJScriptを使って作成する再利用可能なコンポーネントで、COM(Component Object Model)オブジェクトとして機能します。
この技術を活用することで、スクリプトのモジュール化と再利用が容易になります。
この記事では、WSCファイルの作成、登録、解除方法について詳しく説明します。
Windows Script Componentとは
Windows Script Component(WSC)は、Windowsスクリプト環境で利用できる再利用可能なコンポーネントです。
これを利用することで、共通の機能を持つスクリプトを簡単に管理し、他のスクリプトから利用することができます。
主な特徴
- COMオブジェクトとして機能:他のプログラムやスクリプトからアクセス可能
- 再利用可能:一度作成したコンポーネントを繰り返し使用
- スクリプト言語対応:VBScriptやJScriptで記述
WSCの基本構造
WSCファイルはXML形式で記述され、スクリプト言語で機能を定義します。
以下は、シンプルなWSCファイルの例です。
<?xml version="1.0"?>
<component>
<registration
progid="MyComponent.MyClass"
version="1.0"
classid="{12345678-1234-1234-1234-123456789012}" />
<public>
<method name="SayHello" />
</public>
<script language="VBScript">
<![CDATA[
Function SayHello()
SayHello = "Hello, World!"
End Function
]]>
</script>
</component>
主な要素の説明
- <registration>:コンポーネントの識別情報を定義
- <public>:外部からアクセス可能なメソッドやプロパティを公開
- <script>:スクリプトの実装を記述
WSCの作成手順
ステップ1: WSCファイルの作成
まず、.wscファイルを作成します。
以下のコードをテキストエディタに貼り付けて、MyComponent.wscとして保存します。
<?xml version="1.0"?>
<component>
<registration
progid="SampleComponent.Hello"
version="1.0"
classid="{A1B2C3D4-E5F6-7890-A1B2-C3D4E5F67890}" />
<public>
<method name="SayHello" />
</public>
<script language="VBScript">
<![CDATA[
Function SayHello()
SayHello = "Hello from WSC!"
End Function
]]>
</script>
</component>
ステップ2: WSCファイルの登録
WSCファイルをシステムに登録するには、コマンドプロンプトを使います。
以下の手順で登録します。
- コマンドプロンプトを管理者として起動
- スタートメニューを右クリックし、「管理者としてコマンドプロンプトを実行」を選択します。
- regsvr32コマンドでWSCファイルを登録
- 次のコマンドを入力して、WSCファイルのパスを指定します。
regsvr32 "C:\path\to\your\MyComponent.wsc"
実際のWSCファイルのフルパスに置き換えて実行します。
ステップ3: WSCファイルの解除
WSCファイルの登録を解除するには、以下の手順を実行します。
- コマンドプロンプトを管理者として起動
- スタートメニューを右クリックし、「管理者としてコマンドプロンプトを実行」を選択します。
- regsvr32コマンドでWSCファイルを解除
- 以下のコマンドを使用してWSCファイルの登録を解除します。
regsvr32 /u "C:\path\to\your\MyComponent.wsc"
解除するファイルのパスを指定して実行します。
ステップ4: WSCファイルの利用
作成したWSCファイルを利用するには、以下のようなVBScriptを用意します。
Set obj = CreateObject("SampleComponent.Hello")
MsgBox obj.SayHello()
このスクリプトを実行すると、SayHelloメソッドが呼び出され、メッセージボックスに「Hello from WSC!」と表示されます。
WSCを利用するメリット
モジュール化と再利用性
WSCを使うことで、共通の機能を一度作成し、複数のスクリプトで再利用できます。
これにより、開発の効率化が図れます。
保守性の向上
機能がモジュール化されているため、変更が必要な場合も該当コンポーネントだけを修正すればよく、他のプロジェクトに影響を与えずに保守が可能です。
WSCの応用例
ステップ1: 計算用コンポーネントの作成
簡単な計算機能を持つコンポーネントを作成します。
以下のコードをCalculator.wscとして保存します。
<?xml version="1.0"?>
<component>
<registration
progid="Calculator.Component"
version="1.0"
classid="{12345678-90AB-CDEF-1234-567890ABCDEF}" />
<public>
<method name="AddNumbers" />
</public>
<script language="VBScript">
<![CDATA[
Function AddNumbers(a, b)
AddNumbers = a + b
End Function
]]>
</script>
</component>
ステップ2: 呼び出しスクリプトの作成
このコンポーネントを呼び出して計算するVBScriptを作成します。
Set calculator = CreateObject("Calculator.Component")
result = calculator.AddNumbers(5, 10)
MsgBox "The result is: " & result
このスクリプトを実行すると、「The result is: 15」と表示されます。
演習問題
この記事の内容を基にした演習問題を通じて、実際に手を動かしながら学習を進めましょう。
問題1
引数として与えられた文字列を逆順に返すコンポーネントを作成してください。
演習1:解答例
<?xml version="1.0"?>
<component>
<registration
progid="StringManipulator.Component"
version="1.0"
classid="{12345678-90AB-CDEF-1234-567890ABCDEF}" />
<public>
<method name="ReverseString" />
</public>
<script language="VBScript">
<![CDATA[
Function ReverseString(inputStr)
Dim i, reversedStr
reversedStr = ""
For i = Len(inputStr) To 1 Step -1
reversedStr = reversedStr & Mid(inputStr, i, 1)
Next
ReverseString = reversedStr
End Function
]]>
</script>
</component>
問題2
上記で作成したコンポーネントを呼び出し、文字列「VBScript」を逆順にして表示するVBScriptを書いてください。
演習2:解答例
Set stringManipulator = CreateObject("StringManipulator.Component")
reversed = stringManipulator.ReverseString("VBScript")
MsgBox "Reversed string: " & reversed
実行結果は「tpircSBV」となります。
まとめ
VBScriptを使ったWindows Script Component(WSC)の作成と利用方法について解説しました。
WSCを利用することで、スクリプトの再利用性や保守性が向上し、効率的な開発が可能になります。
演習問題にも挑戦し、実践的なスキルを身につけてください。