演算子
演算子とは、加減乗除や代入など変数などに対する操作を示すものです。
詳しい解説は公式のドキュメントにゆずりますが、VBScriptの主な演算子には以下のものがあります。
+ | 加算 | |
- | 減算 | |
* | 乗算 | |
/ | 除算 | |
^ | 指数演算 |
+ | 文字列の連結 | |
& | 文字列の連結 |
= | 代入 | |
= | 等しい | |
<> | 等しくない | |
> | 大きい | |
< | 小さい | |
>= | 以上 | |
<= | 以下 |
And | 論理積 | |
Or | 論理和 |
数値に対する演算子は特に難しくないと思います。
文字列に対する演算では、+ も & もどちらも連結に使います。文字列の連結とは、
"Hello, " & "VBScript!!"
が、
"Hello, VBScript!!"
を表すことです。
代入と比較との両方で、= がありますが、
MyName = Seo | MyNameにSeoを代入 | |
If MyName = Seo Then | MyNameがSeoならば・・・ |
のように使います(If、Thenは制御構文、詳細は第6回)。
プロシージャ
プロシージャとは、いくつかの処理の集まりを一つの動作として扱うことです。
「XXさんの住所をアドレス帳に書く」というプロシージャは、名前を書きこむ、住所を書きこむ、電話番号を書き込むという処理の集まりだと考えられます。
一人だけの場合にはあまりありがたみがありませんが、例えばAさん、Bさん、Cさんの住所を書くとすると、
Aさんの名前を書きこむ
Aさんの住所を書きこむ
Aさんの電話番号を書きこむ
Bさんの名前を書きこむ
Bさんの住所を書きこむ
Bさんの電話番号を書きこむ
Cさんの名前を書きこむ
Cさんの住所を書きこむ
Cさんの電話番号を書きこむ
と
Aさんの住所をアドレス帳に書く
Bさんの住所をアドレス帳に書く
Cさんの住所をアドレス帳に書く
とでは、圧倒的に後の方がプログラムが見やすいと思います(もちろん後者では「住所をアドレス帳に書く」というプロシージャを別に用意する必要があります)。
VBScriptのプロシージャには、SubプロシージャとFunctionプロシージャの二つがあります。
Subプロシージャは呼び出し側(プロシージャを必要とする場所のこと)に演算の結果を教える必要がない場合に使い、Functionプロシージャは呼び出し側に演算の結果を教える必要がある場合に使います。
例えば、「住所をアドレス帳に書く」というプロシージャは(ページが足りなくて書けないということがないとすれば)呼び出し側は書き込んだ結果を教えてもらう必要はありません。しかし、「kmからマイルに変換する」というプロシージャは変換した値を教えてもらう必要があります。そこで、「アドレス帳に書きこむ」プロシージャはSubプロシージャで、「マイルに変換する」プロシージャはFunctionプロシージャとします。
それぞれ、
Sub Proc1() ' プロシージャの中身 End Sub Function Proc2() ' プロシージャの中身 Proc2 = (返したい値) End Function
のように記述します。Functionの場合には返したい値をプロシージャ名と同じ名前の変数(自動的に用意されるので、「Dim Proc2」のように記述する必要はありません)に代入します。
プロシージャに何かデータ(引数といいます)を渡したい場合は、プロシージャ名の後ろのカッコのカンマで区切って書きます。例えば、
Sub AddAddress(Name, Address, Telephone)
のようにします(アドレス帳に追加したい人の、名前・住所・電話番号を渡す場合はこんな感じになるでしょう)。
プロシージャの呼び出し側は、以下のように記述します。
Call Proc1 または Proc1 Result = Proc2()
引数がある場合には、
AddAddress "Aさん", "東京都なんとか", "03-XXXX-XXXX" または Call AddAddress("Aさん", "東京都なんとか", "03-XXXX-XXXX")
のようにします。Functionプロシージャの場合はプロシージャ名を記述します。Subプロシージャの場合には、プロシージャ名を直接記述するか「Call」に続いてプロシージャ名を記述します。「Call」のあるなしで、プロシージャ名の後のカッコが付くか付かないかが違います。気をつけてください。
次回はいよいよ電卓の仕様を考えます。
瀬尾佳隆 (webmaster@seosoft.net) |