Lesson2 プロパティ・メソッド・オブジェクトの意味を理解しよう
次に、VBSを理解する上で避けて通れない用語である、プロパティ、メソッドそしてオブジェクトについて実例を挙げながら解説していきたいと思います。まずは下のスクリプトを実行してみてください。
Dim strName
strName=Wscript.ScriptName
Wscript.Echo strName
このスクリプトは、実行したスクリプトのスクリプト名(ファイル名)を表示させるというものです。
まず一行目でstrNameという変数を宣言しています。ちなみにstrとはstringの略で、文字型の変数名の頭によくつけますが、別に規則というわけではありません。
二行目では、strNameという変数に値を代入しています。ここで代入している、Wscript.ScriptNameに注目してください。これは「WScriptオブジェクトのScriptNameプロパティ」です。
三行目では、先ほど値を代入したstrNameを「WScriptオブジェクトのEchoメソッド」で表示しています。
さて、ここでプロパティ、メソッド、オブジェクトという三つのキーワードが登場しました。これらの意味を理解するために、人間(Man)をオブジェクトにたとえてみましょう(ありがちなたとえで恐縮です(^^;)。Manは年齢、性別、身長などの様々な要素を備えています。これらの要素をVBS的に書くと次のようになります。
Man.Age
Man.Sex
Man.Height
つまり、Manオブジェクトは、Ageプロパティ、Sexプロパティ、Heightプロパティを持っている、と考えるわけです。さて、ここでManは20歳で性別は男、身長は170cmであるとします。するとMan.Ageの値は20、Man.Sexの値は"Male"、Man.Heightの値は170となります。
ここで上のスクリプトに話を戻しますと、二行目でWScriptオブジェクト(WSHで様々な機能を提供するオブジェクトと考えていただければ結構です)のScriptNameプロパティ(実行したスクリプトのスクリプト名を表す)を変数strNameに代入していることになります。
次にまたManオブジェクトを考えます。Manは人間ですからいろいろな動作をします。食べる、走る、寝る等々。これらをVBS的に書くとこうなります。
Man.Eat
Man.Run
Man.Sleep
すなわちManはEatメソッド、Runメソッド、Sleepメソッドを持っているというわけです。もし魚を食べるならば
Man.Eat "fish"
のように書くわけです。ここで「"fish"」は「引数」という言い方をします。
また上のスクリプトに話を戻しますと、三行目ではWScriptオブジェクトのEchoメソッドで変数strNameの内容を表示しています。Echoメソッドは、引数(ここではstrName)の内容を表示させる働きをします。msgbox関数と似ていますが、値を返さないなどの点で異なっています(Lesson1参照)。
なお、WScriptオブジェクトには、他にもプロパティ・メソッドが存在します。ここを参考にしてください。
ここで、関数、メソッド、プロパティの違いについて比較しておきましょう。
オブジェクト | 引数を指定できるか | 値を返すかどうか | 値を代入できるか | |
---|---|---|---|---|
関数 | なし | できるものとできないもの、必須のものがある | 返す | できない |
メソッド | あり | できるものとできないもの、必須のものがある | 返すことも返さないこともある | できない |
プロパティ | あり | できない。項目を持つものには番号か項目名を指定できる | 返す | できるものとできないものがある |
Lesson2ではオブジェクト、メソッド、プロパティの意味を解説しましたが、ご理解いただけましたでしょうか?他にどんなオブジェクトがありどうやって呼び出すか、またどんなメソッドやプロパティがあるかについては、VBS講座・応用編や、WSHで使えるオブジェクトの解説で再び述べることになると思います。
次のLesson3ではフロー制御ステートメントなどについて解説していきたいと思います。