ジェネラルプロシージャと変数の適用範囲

・丁半さいころゲーム(掛け金の累計を表示)

これまでの内容がきちんと分かっている人は、ちょっと難しいかもしれないけど、是非知っていて欲しい内容です。
知っていると例えばC言語などの別のプログラムでも非常に役に立つ「ジェネラルプロシージャと変数の適用範囲」について、簡単な説明を記しておきます。但し、申し訳ありませんが、詳細、具体例などについては割愛しますので、教科書を参照してください。説明を読み、自分できちんと理解するという練習にもなるはずです。
なお、わからい部分があれば是非聞いてください。

○ジェネラルプロシージャ

プロシージャは、いわゆる一つのプログラムであり、例えば二つのコマンドボタンにそれぞれに書いたプログラムの各一つをプロシージャと呼びます。

正確には、今まで作成してきたプロシージャは、コマンドボタンのClickイベントプロシージャと呼ばれるものです。
つまりコマンドボタンがクリックされた際に動作するプログラム(プロシージャ)です。
イベントはオブジェクトによって色々なあり、教科書58ページにFormオブジェクトの例が、また教科書136ページにTextBoxオブジェクトのChangeイベントが解説されている。

このようなイベントプロシージャの他に、ジェネラルプロシージャというものが存在し、他のC言語などの多くでは「関数」や「サブルーチン」などと呼ばれるものに対応する。少し本格的なプログラムを作成しようとすると、関数、つまりVBでいうジェネラルプロシージャは、非常に重要となる。
イベントプロシージャと違ってジェネラルプロシージャは、ユーザの何らかのアクションによって実行されるのではなく、プログラマが通常のプログラムの中で利用するものである。
ジェネラルプロシージャは、いわゆる下請け工場のようなもので、同じような処理を何回もしたいような場合などに利用し、プログラムから適宜呼び出して利用することができる。また、プログラムが長くなると間違いやすく、また分かりにくくなり、ジェネラルプロシージャを利用することにより、これらを解消することもできる。

VBにおけるジェネラルには、Subプロシージャと、Functionプロシージャの二つの種類がある。

詳細などについては教科書を参照してください。

○変数の適用範囲

複数のプロシージャを組み合わせて利用した場合、変数の使い方に注意する必要がある。

例えば、あるプロシージャで利用する変数は、実は他のプロシージャでは利用できない。
つまり、折角計算し記憶した変数の内容が、別のプロシージャでは利用できないということで非常に不便な場合がある。一方で各プロシージャ内で他のプロシージャを全く気にすることなく独自にプログラムを作成できるという大きなメリットがある。このように変数は、利用できる範囲があり、これを適用範囲、スコープと呼ぶ。

(General)-(Declarations)に宣言した変数は、(同じモジュール内の)全てのプロシージャで共通して利用できる。
よって、全てで利用したい変数がある場合は、この(General)-(Declarations)で宣言すると良い。
(General)-(Declarations)に宣言命令を書くには、コードウィンドウのプロシージャ名の部分をクリックして、「(General)」を選択すればよい。

詳細などについては教科書を参照してください。

○丁半さいころゲームへの応用例

教科書;
4-7 ジェネラルプロシージャの活用 p136
4-8 変数などの適用範囲について p152


[「C班」プログラミング基礎のTopに戻る]