VBSプログラミング最初の一歩 VBScript

サブルーチンの利点

このようにサブルーチン化することに何か意味があるでしょうか?

つまり、前と比べて何が良くなったのでしょう。それはメッセージを変更するときに違いがでます。サブルーチン化していない方では「あたりです」を「あたり~!!」に変えたいと思ったら二カ所変更しなくてなりません。しかし、サブルーチン化している方では一カ所だけ、Subプロシージャ atari の中だけ変えればいいわけです。このように同じことを何度も書かないようにする理由は、変更のしやすさにあります。

サブルーチンの考え方を人にたとえると、今までは自分一人で全ての仕事をやっていたのを、使用人を雇って他の人にも仕事を任せるようになった感じです。上の例では、 atari という仕事と hazure という仕事を他人に(Subに)任せたという感じになります。このように他人に仕事を任せると自分(サブルーチン以外のところ)は楽になります。他人に任せたところは他人がやってくれるのでどのようにやってくれるかを自分が知る必要はありません。ただ「仕事をやっといてね」と言えばいいだけです(つまり atari を呼び出すだけでいい)。

このように処理を分けると、その場面で考えなくてはいけない量が減ります。だから、大きなプログラムでも作りやすくなるのです。たとえば、上の例では、atari や hazure は後で作ることにして主要部分を書いていきます。とりあえずatariは当たったときの処理を何かやる、hazureははずれたときの処理を何かやる、というぐらいに考えてまずはそれ以外の部分を作っていきます。そして、「じゃあ、あたったときに何をやるか考えるか」というように残りの処理を作っていきます。

このようにサブルーチンに分けてプログラムを作っていくやり方を「構造化プログラミング」といいます。「構造化プログラミング」は、ある程度大きなプログラムを作るためには知っておかなければならない技術です。

問題10-2:
このプログラムを以下のように書き換えてみよう。

当たりの場合:「点数10点」と表示する
はずれの場合:「点数-5点」と表示する