第4回 - VBScriptの文法 (Part 2)

[ 目次へ | 第3回へ | 第5回へ ]

今回の目標
仕様を作成するのに必要な、VBScriptの最低限の文法を覚えます。
長くなるので2回に分けています。

演算子

演算子とは、加減乗除や代入など変数などに対する操作を示すものです。
詳しい解説は公式のドキュメントにゆずりますが、VBScriptの主な演算子には以下のものがあります。

  1. 数値に対する演算子
    + 加算
    - 減算
    * 乗算
    / 除算
    ^ 指数演算
  2. 文字列に対する演算子
    + 文字列の連結
    & 文字列の連結
  3. 代入/比較演算子
    = 代入
    = 等しい
    <> 等しくない
    > 大きい
    < 小さい
    >= 以上
    <= 以下
  4. 論理演算子
    And 論理積
    Or 論理和

数値に対する演算子は特に難しくないと思います。

文字列に対する演算では、+ も & もどちらも連結に使います。文字列の連結とは、

が、

を表すことです。

代入と比較との両方で、= がありますが、

のように使います(If、Thenは制御構文、詳細は第6回)。


プロシージャ

プロシージャとは、いくつかの処理の集まりを一つの動作として扱うことです。
「XXさんの住所をアドレス帳に書く」というプロシージャは、名前を書きこむ、住所を書きこむ、電話番号を書き込むという処理の集まりだと考えられます。
一人だけの場合にはあまりありがたみがありませんが、例えば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」のあるなしで、プロシージャ名の後のカッコが付くか付かないかが違います。気をつけてください。


次回はいよいよ電卓の仕様を考えます。

[ 目次へ | 第3回へ | 5回へ ]


メール 瀬尾佳隆 (webmaster@seosoft.net)