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

引数

サブルーチンを使うと、このように処理に名前を付けて分割していくことができるわけですが、ただ分割して呼び出すだけでは全く同じ処理しかできません。それぞれの呼び出しで微妙に違うことをやりたい場合、サブルーチンに情報(データ)を与えてやることが必要になります。




つまり、人でたとえると今まではただ「仕事をやっといてね」と仕事を頼んでいたのが、「この資料を与えるから仕事をやっといてね」というようになるわけです。同じ仕事をするのでも、資料が違うから結果的に違うことが出来るわけです。例えば、3倍にして表示する、という処理でも何を三倍にするか、という情報が違えば違う処理になります。

サブルーチンにデータを渡すことを「引数」を渡す、という言い方をします。「引数」は「ひきすう」と読み、英語では「パラメータ」といいます。

引数を渡す方法は簡単です。まず、呼び出す側がサブルーチンに引数を渡す方法ですが、これは呼び出すときに、プロシージャ名の後にデータを書きます。たとえば、testというサブルーチンに 10 という引数を渡したかったら、

test 10

と書けばいいわけです。そうすると、testというサブルーチンに10という引数、データが渡されます。testと10の間は空白かタブで区切ります。このように10というデータを直接渡してもかまいませんし、変数にしてもかまいません。

number = 10
test number

この例では変数numberに10という値を入れ、testサブルーチンに渡しています。

今度は、その引数のデータをtestサブルーチンで受け取る方法ですが、Sub サブルーチン名の後に()を書いて、その中に受け取る変数名を書きます。たとえば、

Sub test(data)
	MsgBox data
End Sub

のような感じです。引数として渡されたデータはサブルーチン名の後の( )内に書かれた変数、つまりdataに渡されるわけです。( )内に変数dataを宣言していることになり、その変数はtestの中で普通に変数として使用することができます。

まとめると、

test 10

Sub test(data)
	MsgBox data
End Sub

となります。このとき、testサブルーチンのdataには10が入りますので、画面には「10」と表示されます。

引数を二つ渡すことも出来ます。この場合、渡す側ももらう側もカンマ(,)で区切って引数を書きます。

test 10,20

Sub test(data1,data2)
	MsgBox data1
	MsgBox data2
End Sub

引数は三個以上でも渡すことが出来ます。

☆Subプロシージャの書き方2 引数を使う
呼び出し方:
Subプロシージャ名 引数,引数,・・・

呼び出されるSubプロシージャの書きかた:

Sub プロシージャ名(引数,引数・・)
	処理
End Sub

このようにして、データをサブルーチンに渡すことが出来ます。

問題10-3:
引数を数値で渡し、その引数を2倍して表示するSubプロシージャを作成してみよう。